Python 을 사용해 음성 인식하고 텍스트로 변환하기 가이드
어느 정도 프로그램 개발을 경험해 본 이들이라면 AI 스피커(or 비서)를 사용시, 궁금 혹은 신기함과 동시에 음성에 기반한 서비스를 개발해 보고 싶다고 생각해 보았을 것입니다. ^^
이러한 분들은 물론 개발 경험이 길지 않거나, 자연어 처리 또는 음성 인식에 대한 지식이 아직은(?) 없는 이들이라도 쉽게 따라해 볼 수 있는 몇 가지 패키지가 있어 이를 소개 하고자 합니다.
각자의 주어진 상황 맞게 활용하시면 되겠습니다.
Speech_recognition
(영어 기준)
(영어 이외의 언어로 된 음성 인식 - language키워드 인수를 허용 항목)
recognize_bing()
recognize_google()
recognize_google(audio, language='fr-FR')
recognize_google_cloud()
recognize_ibm()
recognize_sphinx()
본인의 경우 speech_recognition 라이브러리를 사용해 recognize_google '한국어'으 로 음성을 text 로 변환해 보고자 합니다.
- 환경 설정
- 음성인식
- pip를 사용하여 터미널에서 SpeechRecognition을 설치 확인
- $ pip install SpeechRecognition
- 설치 확인
- >> import speech_recognition as sr
- SpeechRecognizer로 마이크에 액세스하려면 PyAudio 패키지 설치 필요
- [윈도우] $ pip install pyaudio
- [데비안 리눅스] $ sudo apt-get install python-pyaudio python3-pyaudio
- 준비물 : wav 등 음성 파일
- 지원 되는 파일 유형
- WAV : PCM / LPCM 형식
- AIFF
- AIFF-C
- FLAC : 기본 FLAC 형식, OGG-FLAC는 지원되지 않음.
- 세부 개발 정보
import speech_recognition as sr
recognizer = sr.Recognizer()
recognizer.energy_threshold = 300
## wav 파일 읽어오기
harvard_audio = sr.AudioFile("./TEST.wav")
# audio file을 audio source로 사용합니다
r = sr.Recognizer()
with harvard_audio as source:
audio = r.record(source) # 전체 audio file 읽기
# 구글 웹 음성 API로 인식하기 (하루에 제한 50회)
try:
print("Google Speech Recognition thinks you said : " + r.recognize_google(audio, language='ko'))
except sr.UnknownValueError:
print("Google Speech Recognition could not understand audio")
except sr.RequestError as e:
print("Could not request results from Google Speech Recognition service; {0}".format(e))
"""
recognize_bing(): Microsoft Bing Speech
recognize_google(): Google Web Speech API
recognize_google_cloud(): Google Cloud Speech - requires installation of the google-cloud-speech package
recognize_houndify(): Houndify by SoundHound
recognize_ibm(): IBM Speech to Text
recognize_sphinx(): CMU Sphinx - requires installing PocketSphinx
recognize_wit(): Wit.ai
"""
print(recognizer)