开始使用免费开始使用

使用 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 = ____
编辑并运行代码