Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

Hướng dẫn bài tập

  • Truyền speakers vào hàm enumerate() để lặp qua các người nói khác nhau.
  • Gọi record() trên recognizer để chuyển các AudioFile thành AudioData.
  • Dùng recognize_google() để phiên âm từng đối tượng speaker_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"))
Chỉnh sửa và Chạy Mã