Nhiều người nói 2
Phân biệt nhiều người nói trong cùng một tệp âm thanh được gọi là speaker diarization. Tuy nhiên, như bạn đã thấy, hàm miễn phí mà chúng ta đang dùng, recognize_google(), không có khả năng phiên âm theo từng người nói khác nhau.
Một cách xử lý, nếu không dùng các dịch vụ chuyển giọng nói thành văn bản trả phí, là đảm bảo các tệp âm thanh của bạn chỉ có một người nói.
Điều này có nghĩa là nếu bạn làm việc với dữ liệu cuộc gọi điện thoại, bạn sẽ đảm bảo người gọi và người nghe được ghi âm tách biệt. Khi đó bạn có thể phiên âm từng tệp riêng lẻ.
Trong bài tập này, chúng ta sẽ phiên âm từng người nói trong tệp âm thanh nhiều người nói một cách riêng biệt.
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
Hướng dẫn bài tập
- Truyền
speakersvào hàmenumerate()để lặp qua các người nói khác nhau. - Gọi
record()trênrecognizerđể chuyển cácAudioFilethànhAudioData. - Dùng
recognize_google()để phiên âm từng đối tượngspeaker_audio.
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.
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"))