시작하기무료로 시작하기

다중 화자 2

하나의 오디오 파일에서 여러 화자를 구분하는 작업을 speaker diarization(화자 분리)라고 합니다. 하지만 지금까지 사용한 무료 함수인 recognize_google()은 서로 다른 화자를 구분해 필사할 수는 없었죠.

유료 speech-to-text 서비스를 쓰지 않고 이를 우회하는 한 가지 방법은 오디오 파일을 단일 화자 기준으로 준비하는 것입니다.

예를 들어 통화 데이터를 다룬다면, 발신자와 수신자를 각각 별도로 녹음해 파일을 나누면 됩니다. 그런 다음 각 파일을 개별적으로 필사할 수 있어요.

이번 연습에서는 여러 화자가 있는 오디오 파일에서 각 화자 부분을 개별적으로 필사해 보겠습니다.

이 연습은 강의의 일부입니다

Python으로 배우는 음성 언어 처리

강의 보기

연습 안내

  • enumerate() 함수에 speakers를 넘겨 각 화자를 순회하세요.
  • recognizer에서 record()를 호출해 AudioFileAudioData로 변환하세요.
  • 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"))
코드 편집 및 실행