여러 유형의 오디오 다루기

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

Daniel Bourke

Machine Learning Engineer/YouTube Creator

언어는 무엇일까요?

# 인식기 클래스 생성
recognizer = sr.Recognizer()

# 일본어 오디오를 recognize_google에 전달 text = recognizer.recognize_google(japanese_good_morning, language="en-US")
# 텍스트 출력 print(text)
Ohio gozaimasu
Python으로 배우는 음성 언어 처리

언어는 무엇일까요?

# 인식기 클래스 생성
recognizer = sr.Recognizer()

# 일본어 오디오를 recognize_google에 전달 text = recognizer.recognize_google(japanese_good_morning, language="ja")
# 텍스트 출력 print(text)
おはようございます
Python으로 배우는 음성 언어 처리

음성이 아닌 오디오

# 표범 포효 오디오 파일 불러오기
leopard_roar = sr.AudioFile("leopard_roar.wav")

# AudioFile을 AudioData로 변환 with leopard_roar as source: leopard_roar_audio = recognizer.record(source)
# AudioData 인식 recognizer.recognize_google(leopard_roar_audio)
UnknownValueError:
Python으로 배우는 음성 언어 처리

음성이 아닌 오디오

# 표범 포효 오디오 파일 불러오기
leopard_roar = sr.AudioFile("leopard_roar.wav")

# AudioFile을 AudioData로 변환 with leopard_roar as source: leopard_roar_audio = recognizer.record(source)
# show_all을 켠 상태로 인식 recognizer.recognize_google(leopard_roar_audio, show_all=True)
[]
Python으로 배우는 음성 언어 처리

모두 표시

# 일본어 오디오를 show_all=True로 인식
text = recognizer.recognize_google(japanese_good_morning, 
                                   language="en-US",
                                   show_all=True)
# 텍스트 출력
print(text)
{'alternative': [{'transcript': 'Ohio gozaimasu', 'confidence': 0.89041114},
  {'transcript': 'all hail gozaimasu'},
  {'transcript': 'ohayo gozaimasu'},
  {'transcript': 'olho gozaimasu'},
  {'transcript': 'all Hale gozaimasu'}],
 'final': True}
Python으로 배우는 음성 언어 처리

여러 화자

# 여러 화자가 있는 오디오 가져오기
multiple_speakers = sr.AudioFile("multiple-speakers.wav")

# AudioFile을 AudioData로 변환 with multiple_speakers as source: multiple_speakers_audio = recognizer.record(source)
# AudioData 인식 recognizer.recognize_google(multiple_speakers_audio)
speech_recognition 라이브러리의 한계 중 하나는 서로 다른 화자와 음성을
구분하지 못한다는 점입니다. 모든 내용을 하나의 텍스트 블록으로 반환합니다.
Python으로 배우는 음성 언어 처리

여러 화자

# 오디오 파일을 개별적으로 불러오기
speakers = [sr.AudioFile("s0.wav"), sr.AudioFile("s1.wav"), sr.AudioFile("s2.wav")]

# 각 화자를 개별 전사 for i, speaker in enumerate(speakers): with speaker as source: speaker_audio = recognizer.record(source) print(f"Text from speaker {i}: {recognizer.recognize_google(speaker_audio)}")
Text from speaker 0: one of the limitations of the speech recognition library
Text from speaker 1: is that it doesn't recognise different speakers and voices
Text from speaker 2: it will just return it all as one block a text
Python으로 배우는 음성 언어 처리

소음 있는 오디오

  • 당신이 듣기 어렵다면, API도 마찬가지입니다.
# 배경 소음이 있는 오디오 파일 불러오기
noisy_support_call = sr.AudioFile(noisy_support_call.wav)

with noisy_support_call as source: # 주변 소음 보정 후 녹음 recognizer.adjust_for_ambient_noise(source, duration=0.5) noisy_support_call_audio = recognizer.record(source)
# 오디오 인식 recognizer.recognize_google(noisy_support_call_audio)
hello ID like to get some help setting up my calories
Python으로 배우는 음성 언어 처리

Laten we oefenen!

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

Preparing Video For Download...