PyDub でステレオ音声をモノラルに分割する
電話の通話録音を文字起こしするとき、ステレオ形式で録音され、左右のチャンネルに話者がそれぞれ割り当てられている可能性があります。
ご覧のとおり、複数の話者がいる音声ファイルをそのまま文字起こしするのは難しいです。解決策の一つは、複数話者の音声ファイルを、話者ごとの単一ファイルに分割することです。
PyDub の split_to_mono() 関数が役立ちます。ステレオで録音された AudioSegment に対して呼び出すと、各チャンネルに対応する 2 つのモノラルの AudioSegment のリストを返します。
この演習では、ステレオの通話音声(stereo_phone_call.wav)を チャンネル1 と チャンネル2 に分割します。これにより話者を分離でき、文字起こしが容易になります。
この演習はコースの一部です
Pythonで学ぶ音声言語処理
演習の手順
pydubからAudioSegmentをインポートします。stereo_phone_call.wavを使って、AudioSegmentインスタンスstereo_phone_callを作成します。split_to_mono()を使ってstereo_phone_callをchannelsに分割し、結果のチャンネルを確認します。- 各チャンネルを新しい変数
phone_call_channel_1とphone_call_channel_2に保存します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import AudioSegment
from ____ import ____
# Import stereo audio file and check channels
stereo_phone_call = AudioSegment.from_file(____)
print(f"Stereo number channels: {stereo_phone_call.channels}")
# Split stereo phone call and check channels
channels = stereo_phone_call.____
print(f"Split number channels: {channels[0].____}, {channels[1].____}")
# Save new channels separately
phone_call_channel_1 = channels[0]
phone_call_channel_2 = ____