파이썬 라이브러리 중 음성인식 기능을 사용할 수 있는 speech recognition
IDE에서 다음의 명령어로 pip를 통해 간단히 설치가 가능합니다.
pip install SpeechRecognition
설치 완료후 speech recognition은 다음과 같은 인스턴스를 생성하여 모든 작업을 실시합니다.
r = speech_recognition.Recognizer()
아래는 해당 인스턴스에서는 다음 7가지의 API들로 오디오 소스의 음성을 인식합니다. 각 기능에 대한 자세한 설명은 하단 링크를 참조하면 됩니다.
recognize_sphinx | CMU Sphinx (PocketSpnix 설치 필요) |
https://cmusphinx.github.io/ |
recognize_bing() | MS의 Bing speech | https://azure.microsoft.com/en-us/services/cognitive-services/speech-services/ |
recognize_google() | google의 web speech API | https://wicg.github.io/speech-api/ |
recognize_google_cloud() | google의 cloud speech (google-cloud-speech 설치 필요) |
https://cloud.google.com/speech-to-text |
recognize_houndify() | SoundHound의 API | https://www.houndify.com/ |
recognize_ibm() | IBM의 Speech To Text | https://www.ibm.com/cloud/watson-speech-to-text |
recognize_wit() | Wit | https://wit.ai/ |
recognize_sphinx의 경우 오프라인에서도 작동하나 나머지 6개는 모두 인터넷 연결을 필요로 합니다. 또한 사용하기 위해선 API키가 필요하지만 google의 경우 기본 API키가 있어 바로 사용이 가능합니다. 따라서 이번 테스트에서는 recognize_google을 사용해보기로 하겠습니다.
소스코드
import speech_recognition as sr
#import sys #-- 텍스트 저장시 사용
r = sr.Recognizer()
audio_file = sr.AudioFile('./test_file.wav')
with audio_file as source:
audio = r.record(source)
#sys.stdout = open('stdout.txt', 'w') #-- 텍스트 저장시 사용
print(r.recognize_google(audio))
#sys.stdout.close() #-- 텍스트 저장시 사용
텍스트 출력의 필요성을 고려해 각주로 남겨놓았습니다.
기본적으로 영어 베이스이며 한글 출력이 필요한 경우 아래 코드를 참조하면 될 것 같습니다.
import speech_recognition as sr
#import sys #-- 텍스트 저장시 사용
r = sr.Recognizer()
kr_audio = sr.AudioFile('./test_file.wav')
with kr_audio as source:
audio = r.record(source)
#sys.stdout = open('news_out.txt', 'w') #-- 텍스트 저장시 사용
print(r.recognize_google(audio, language='ko-KR')) #-- 한글 언어 사용
#sys.stdout.close() #-- 텍스트 저장시 사용
테스트
영문 드라마의 일부 대사를 통해 출력한 결과
the 같은 묵음의 느낌이 나는 단어는 인식이 잘 안 되지만 전체적으로 잘 인식이 되는 듯 싶습니다. 그러나 문장을 끊어 인식하지는 못한다는 단점이 있습니다.
해당 출력을 txt 파일로 생성하였을 때 마찬가지로 문장을 끊어 인식하지 못해 한 줄로 출력된 모습을 볼 수 있습니다.
한글 뉴스 일부를 출력한 결과
약간 잘못 인식하는 부분이 있지만 영어와 마찬가지로 전체적으로 잘 인식이 되는 느낌입니다.
이 역시도 문장을 끊어 인식하지는 못한다는 단점이 있습니다.
'Python > Speech Recognition' 카테고리의 다른 글
[Python] Speech recognition 음성 인식 - 2 (1) | 2022.01.06 |
---|
댓글