เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การแยกไฟล์เสียงสเตอริโอเป็นโมโนด้วย PyDub

หากต้องการถอดความการสนทนาทางโทรศัพท์ มีโอกาสที่ไฟล์เสียงเหล่านั้นจะถูกบันทึกในรูปแบบสเตอริโอ โดยมีผู้พูดแต่ละคนอยู่คนละช่องสัญญาณ

ดังที่ได้เห็นแล้ว การถอดความไฟล์เสียงที่มีผู้พูดมากกว่าหนึ่งคนนั้นทำได้ยาก วิธีแก้ปัญหาหนึ่งคือการแยกไฟล์เสียงที่มีผู้พูดหลายคนออกเป็นไฟล์แยกต่างหากสำหรับผู้พูดแต่ละคน

ฟังก์ชัน split_to_mono() ของ PyDub ช่วยได้ในส่วนนี้ เมื่อเรียกใช้กับ AudioSegment ที่บันทึกในรูปแบบสเตอริโอ จะคืนค่าเป็นรายการของ AudioSegment แบบโมโนสองรายการแยกกัน โดยมีหนึ่งรายการต่อหนึ่งช่องสัญญาณ

ในแบบฝึกหัดนี้ จะได้ฝึกแยกการโทรแบบสเตอริโอ (stereo_phone_call.wav) ออกเป็นช่องสัญญาณที่ 1 และช่องสัญญาณที่ 2 เพื่อแยกผู้พูดทั้งสองออกจากกัน ทำให้ถอดความได้ง่ายขึ้น

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Spoken Language Processing ด้วย Python

ดูคอร์ส

คำแนะนำการฝึกหัด

  • Import AudioSegment จาก pydub
  • สร้าง AudioSegment ชื่อ stereo_phone_call จากไฟล์ stereo_phone_call.wav
  • แยก stereo_phone_call ออกเป็น channels โดยใช้ split_to_mono() และตรวจสอบช่องสัญญาณของผลลัพธ์ที่ได้
  • บันทึกแต่ละช่องสัญญาณลงในตัวแปรใหม่ชื่อ 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 = ____
แก้ไขและรันโค้ด