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

ผู้พูดหลายคน 2

การแยกแยะผู้พูดหลายคนในไฟล์เสียงเดียวกันเรียกว่า speaker diarization อย่างไรก็ตาม ฟังก์ชันฟรีที่เราใช้อยู่อย่าง recognize_google() ไม่รองรับการถอดความแบบแยกผู้พูด

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

หมายความว่าหากทำงานกับข้อมูลสายโทรศัพท์ ควรแยกบันทึกเสียงของผู้โทรและผู้รับออกจากกัน แล้วจึงถอดความทีละไฟล์

ในแบบฝึกหัดนี้ เราจะถอดความเสียงของแต่ละผู้พูดในไฟล์เสียงที่มีผู้พูดหลายคน ทีละคน

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

Spoken Language Processing ด้วย Python

ดูคอร์ส

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

  • ส่ง speakers ไปยังฟังก์ชัน enumerate() เพื่อวนลูปผ่านผู้พูดแต่ละคน
  • เรียก record() บน recognizer เพื่อแปลง AudioFile เป็น AudioData
  • ใช้ recognize_google() เพื่อถอดความออบเจ็กต์ speaker_audio แต่ละรายการ

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

recognizer = sr.Recognizer()

# Multiple speakers on different files
speakers = [sr.AudioFile("speaker_0.wav"), 
            sr.AudioFile("speaker_1.wav"), 
            sr.AudioFile("speaker_2.wav")]

# Transcribe each speaker individually
for i, speaker in enumerate(____):
    with speaker as source:
        speaker_audio = recognizer.____(source)
    print(f"Text from speaker {i}:")
    print(recognizer.____(____,
         				  language="en-US"))
แก้ไขและรันโค้ด