**pydub**:
**scipy**:
**numpy**:
**matplotlib**: データの視覚化に使用。
**praat-parselmouth**: 音声データからフォルマント解析を行うために使用することができる。
install pydub
scipy
numpy
matplotlib praat-parselmouth
pydub
= AudioSegment.from_file("path_to_your_file.mp3")
= audio.set_frame_rate(16000)
= np.array(audio.get_array_of_samples())
= parselmouth.Sound(samples, sampling_frequency=16000)
= sound.to_formant_burg()
= np.arange(0, sound.duration, time_step)
= [(formant.get_value_at_time(1, t), formant.get_value_at_time(2, t)) for t in times]
plt.xlabel('First Formant (F1)')
plt.ylabel('Second Formant (F2)')
plt.title('Formant Trajectory')
ファイルパス、サンプルレートなどは環境に合わせて調整してください。
フォルマントの解析は音声の質に大きく依存します。録音環境や発声のクリアさが結果に影響を与える可能性があります。
**ffmpegのインストール**:
pydubは内部でffmpegを使用してオーディオファイルを処理します。M4Aファイルを扱う場合、システムにffmpegがインストールされている必要があります。
sudo apt-get install ffmpeg
**コードの修正**:
MP3ファイルをM4Aファイルに置き換えるだけで、基本的には同様の処理が可能です。
pydub
numpy
= AudioSegment.from_file("path_to_your_file.m4a")
= audio.set_frame_rate(16000)
= np.array(audio.get_array_of_samples())
= parselmouth.Sound(samples, sampling_frequency=16000)
= sound.to_formant_burg()
= np.arange(0, sound.duration, time_step)
= [(formant.get_value_at_time(1, t), formant.get_value_at_time(2, t)) for t in times]
plt.xlabel('First Formant (F1)')
plt.ylabel('Second Formant (F2)')
plt.title('Formant Trajectory')
このように、MP3と同じライブラリと手法を使用して、M4Aファイルからも音声データを解析することができます。ただし、環境によってはffmpegの設定が異なる場合があるので、その点は注意が必要です。