開始使用免費開始

使用 PyDub 將立體聲音訊分割為單聲道

如果你要轉錄電話通話,錄音很可能是立體聲格式,每個聲道各有一位說話者。

如你所見,當音訊中有多位說話者時,轉錄會變得困難。一個做法是先把多位說話者的音訊分割成各自單獨的檔案。

PyDubsplit_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_1phone_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 = ____
編輯並執行程式碼