Bắt đầu ngayBắt đầu miễn phí

Tách âm thanh stereo thành mono với PyDub

Nếu bạn đang cố gắng chuyển lời thoại của các cuộc gọi điện thoại, rất có thể chúng được ghi ở định dạng stereo, với mỗi kênh là một người nói.

Như bạn đã thấy, việc chuyển lời một tệp âm thanh có nhiều hơn một người nói là khá khó. Một cách giải quyết là tách tệp âm thanh có nhiều người nói thành các tệp đơn, mỗi tệp chỉ có một người.

Hàm split_to_mono() của PyDub có thể giúp việc này. Khi gọi trên một AudioSegment được ghi ở stereo, hàm sẽ trả về một danh sách gồm hai AudioSegment riêng biệt ở định dạng mono, tương ứng với mỗi kênh.

Trong bài tập này, bạn sẽ thực hành bằng cách tách bản ghi cuộc gọi stereo (stereo_phone_call.wav) thành kênh 1kênh 2. Việc này sẽ tách hai người nói, giúp quá trình chuyển lời dễ dàng hơn.

Bài tập này là một phần của khóa học

Xử lý Ngôn ngữ Nói bằng Python

Xem khóa học

Hướng dẫn bài tập

  • Import AudioSegment từ pydub.
  • Tạo một đối tượng AudioSegment tên stereo_phone_call với stereo_phone_call.wav.
  • Tách stereo_phone_call thành channels bằng split_to_mono() và kiểm tra các kênh trong kết quả đầu ra.
  • Lưu mỗi kênh vào biến mới, phone_call_channel_1phone_call_channel_2.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

# 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 = ____
Chỉnh sửa và Chạy Mã