การแยกไฟล์เสียงสเตอริโอเป็นโมโนด้วย 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 = ____