多位說話者 2
在同一個音訊檔中分辨多位說話者稱為「說話者分離(speaker diarization)」。然而,你已經看過我們一直使用的免費函式 recognize_google(),它沒辦法分別轉寫不同的說話者。
在不使用付費語音轉文字服務的情況下,一個可行的方法是確保音訊檔只有單一說話者。
也就是說,如果你在處理電話通聯資料,就要確保主叫與被叫分別錄製。接著你就能各自轉寫每個檔案。
在這個練習中,我們會個別轉寫此[多位說話者音訊檔](https://assets.datacamp.com/production/repositories/4637/datasets/925c8c31d6e4af9c291c692f13e4f41c7b5e86b2/multiple-speakers-16k.wav)中的每位說話者。
本練習屬於課程
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"))