Multiple Speakers 2
1 つの音声ファイルの中で複数話者を見分けることは、speaker diarization(話者分離)と呼ばれます。しかし、これまで使ってきた無料の関数 recognize_google() には、話者ごとに書き起こす機能はありません。
有料の音声認識サービスを使わずに対応する方法の 1 つは、音声ファイルを単一話者にしておくことです。
つまり、電話の通話データを扱う場合は、発信者と受信者を別々に録音しておくということです。そうすれば、各ファイルを個別に文字起こしできます。
この演習では、複数話者の音声ファイルに含まれる各話者をそれぞれ個別に文字起こしします。
この演習はコースの一部です
Pythonで学ぶ音声言語処理
演習の手順
speakersをenumerate()関数に渡して、各話者をループ処理してください。recognizerのrecord()を呼び出して、AudioFileをAudioDataに変換してください。recognize_google()を使って、各speaker_audioオブジェクトを文字起こししてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
recognizer = sr.Recognizer()
# Multiple speakers on different files
speakers = [sr.AudioFile("speaker_0.wav"),
sr.AudioFile("speaker_1.wav"),
sr.AudioFile("speaker_2.wav")]
# Transcribe each speaker individually
for i, speaker in enumerate(____):
with speaker as source:
speaker_audio = recognizer.____(source)
print(f"Text from speaker {i}:")
print(recognizer.____(____,
language="en-US"))