使用 PyDub 將立體聲音訊分割為單聲道
如果你要轉錄電話通話,錄音很可能是立體聲格式,每個聲道各有一位說話者。
如你所見,當音訊中有多位說話者時,轉錄會變得困難。一個做法是先把多位說話者的音訊分割成各自單獨的檔案。
PyDub 的 split_to_mono() 函式能幫上忙。當你在立體聲的 AudioSegment 上呼叫它時,會回傳一個清單,裡面有兩個分開的單聲道 AudioSegment,各對應一個聲道。
在這個練習中,你會把這段【立體聲電話通話】(https://assets.datacamp.com/production/repositories/4637/datasets/810bb65e2e681e086e90bc2c6c2372bc4bd2cb52/ex3stereocall.wav)(stereo_phone_call.wav)分割成【聲道 1】(https://assets.datacamp.com/production/repositories/4637/datasets/0aa876f5cb924035481d7b786a3701624e86d1e7/ex3stereocallchannel1.wav) 和【聲道 2】(https://assets.datacamp.com/production/repositories/4637/datasets/2a16db969efc35186fe25ca45a4dbd506318a1cd/ex3stereocallchannel2.wav)。這樣就能把兩位說話者分開,更容易進行轉錄。
本練習屬於課程
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 = ____