開始使用免費開始

多位說話者 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"))
編輯並執行程式碼