ผู้พูดหลายคน 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"))