Speech Recognition 이란?
SpeechRecognition은 Python에서 음성 인식을 위한 라이브러리입니다. SpeechRecognition은 다양한 음성 인식 API를 지원하며, Google Cloud Speech API, Microsoft Azure Speech API, Amazon Transcribe API 등을 사용할 수 있습니다. SpeechRecognition은 또한 오디오 파일이나 마이크를 통해 음성을 인식할 수 있습니다.
라이브러리 설치
어떻게 사용하는지 살펴보기 전에 라이브러리를 설치해야겠죠!?
python이기 때문에 pip로 설치합니다.
pip install SpeechRecognition
사용 방법
이제 사용방법을 알아볼건데요.
예제코드로 살펴보겠습니다.
import speech_recognition as sr
# wav 파일을 로드합니다.
recognizer = sr.Recognizer()
file_path = "python/note.wav"
with sr.AudioFile(file_path) as source:
audio = recognizer.record(source)
# 음성 파일을 텍스트로 변환합니다.
text = recognizer.recognize_google(audio, language='ko-KR')
# 텍스트를 출력합니다.
print(text)
예제코드는 먼저 speech_recognition 을 import 하면서 시작합니다.
그리고 wav 파일을 로드하여 text로 변환합니다.
예제 코드에서 중요한 점
여기서 중요한 두가지가 있습니다.
파일 형식은 wav 로 해야합니다.
wav 파일 형식으로 해야 text가 추출 가능합니다. 음성파일의 위치를 코드 안의 path와 잘 맞춰놔야합니다.
만약 다른 포멧이라면 wav로 변환해야합니다.
다른 형식의 오디오 파일을 처리하기 위해 PyDub와 같은 외부 라이브러리를 사용할 수 있습니다.
설치는 동일하게 아래 명령어로 간단히 설치할 수 있습니다.
pip install pydub
아래 예시처럼 pydub를 이용한 오디오 파일 형식 변환을 할 수 있습니다.
from pydub import AudioSegment
# 오디오 파일 로드
file_path = "python/note.mp3" # 다른 형식의 오디오 파일 경로
audio = AudioSegment.from_file(file_path)
# PyDub를 사용하여 오디오를 WAV 형식으로 변환
wav_path = "python/note.wav" # 변환된 WAV 파일 경로
audio.export(wav_path, format="wav")
language는 ko-KR 로 해야합니다.
물론 영어 음성 파일이라면 영어로 하면 됩니다. 주의해야할 건, 한국어 대화인데 영어로 하면 이상한 문자만 추출되고 끝나게 됩니다.
아래는 speech_recognition 에서 지원하는 언어목록입니다.
af-ZA: 아프리칸스 언어 (남아프리카 공화국)
am-ET: 암하라어 (에티오피아)
hy-AM: 아르메니아어 (아르메니아)
az-AZ: 아제르바이잔어 (아제르바이잔, 라틴)
id-ID: 인도네시아어 (인도네시아)
ms-MY: 말레이어 (말레이시아)
bn-BD: 벵골어 (방글라데시)
bn-IN: 벵골어 (인도)
ca-ES: 카탈로니아어 (스페인)
cs-CZ: 체코어 (체코 공화국)
da-DK: 덴마크어 (덴마크)
de-DE: 독일어 (독일)
en-AU: 영어 (오스트레일리아)
en-CA: 영어 (캐나다)
en-GH: 영어 (가나)
en-GB: 영어 (영국)
en-IN: 영어 (인도)
en-IE: 영어 (아일랜드)
en-KE: 영어 (케냐)
en-NZ: 영어 (뉴질랜드)
en-NG: 영어 (나이지리아)
en-PH: 영어 (필리핀)
en-ZA: 영어 (남아프리카 공화국)
en-TZ: 영어 (탄자니아)
en-US: 영어 (미국)
es-AR: 스페인어 (아르헨티나)
es-BO: 스페인어 (볼리비아)
es-CL: 스페인어 (칠레)
es-CO: 스페인어 (콜롬비아)
es-CR: 스페인어 (코스타리카)
es-EC: 스페인어 (에콰도르)
es-SV: 스페인어 (엘살바도르)
es-ES: 스페인어 (스페인)
es-US: 스페인어 (미국)
es-GT: 스페인어 (과테말라)
es-HN: 스페인어 (온두라스)
es-MX: 스페인어 (멕시코)
es-NI: 스페인어 (니카라과)
es-PA: 스페인어 (파나마)
es-PY: 스페인어 (프라그와이)
es-PE: 스페인어 (페루)
es-PR: 스페인어 (푸에르토리코)
es-DO: 스페인어 (도미니카 공화국)
es-UY: 스페인어 (우루과이)
es-VE: 스페인어 (베네수엘라)
eu-ES: 바스크어 (스페인)
fil-PH: 필리핀어 (필리핀)
fr-CA: 프랑스어 (캐나다)
fr-FR: 프랑스어 (프랑스)
gl-ES: 갈리시아어 (스페인)
ka-GE: 조지아어 (조지아)
gu-IN: 구자라트어 (인도)
hr-HR: 크로아티아어 (크로아티아)
zu-ZA: 줄루어 (남아프리카 공화국)
is-IS: 아이슬란드어 (아이슬란드)
it-IT: 이탈리아어 (이탈리아)
jv-ID: 자바어 (인도네시아)
kn-IN: 칸나다어 (인도)
km-KH: 크메르어 (캄보디아)
lo-LA: 라오어 (라오스)
lv-LV: 라트비아어 (라트비아)
lt-LT: 리투아니아어 (리투아니아)
hu-HU: 헝가리어 (헝가리)
ml-IN: 말라얄람어 (인도)
mr-IN: 마라티어 (인도)
nl-NL: 네덜란드어 (네덜란드)
ne-NP: 네팔어 (네팔)
nb-NO: 노르웨이어, 보크말 (노르웨이)
pl-PL: 폴란드어 (폴란드)
pt-BR: 포르투갈어 (브라질)
pt-PT: 포르투갈어 (포르투갈)
ro-RO: 루마니아어 (루마니아)
si-LK: 싱할라어 (스리랑카)
sk-SK: 슬로바키아어 (슬로바키아)
sl-SI: 슬로베니아어 (슬로베니아)
su-ID: 순다어 (인도네시아)
sw-TZ: 스와힐리어 (탄자니아)
sw-KE: 스와힐리어 (케냐)
fi-FI: 핀란드어 (핀란드)
sv-SE: 스웨덴어 (스웨덴)
ta-IN: 타밀어 (인도)
ta-SG: 타밀어 (싱가포르)
ta-LK: 타밀어 (스리랑카)
ta-MY: 타밀어 (말레이시아)
te-IN: 텔루구어 (인도)
vi-VN: 베트남어 (베트남)
tr-TR: 터키어 (터키)
ur-PK: 우르두어 (파키스탄)
ur-IN: 우르두어 (인도)
el-GR: 그리스어 (그리스)
bg-BG: 불가리아어 (불가리아)
ru-RU: 러시아어 (러시아)
sr-RS: 세르비아어 (세르비아)
uk-UA: 우크라이나어 (우크라이나)
he-IL: 히브리어 (이스라엘)
ar-IL: 아랍어 (이스라엘)
ar-JO: 아랍어 (요르단)
ar-AE: 아랍어 (아랍에미리트)
ar-BH: 아랍어 (바레인)
ar-DZ: 아랍어 (알제리)
ar-SA: 아랍어 (사우디아라비아)
ar-IQ: 아랍어 (이라크)
ar-KW: 아랍어 (쿠웨이트)
ar-MA: 아랍어 (모로코)
ar-TN: 아랍어 (튀니지아)
ar-OM: 아랍어 (오만)
ar-PS: 아랍어 (팔레스타인)
ar-QA: 아랍어 (카타르)
ar-LB: 아랍어 (레바논)
ar-EG: 아랍어 (이집트)
fa-IR: 페르시아어 (이란)
hi-IN: 힌디어 (인도)
th-TH: 태국어 (태국)
ko-KR: 한국어 (대한민국)
cmn-Hans-CN: 중국어 간체 (중국 본토)
cmn-Hans-HK: 중국어 간체 (홍콩)
cmn-Hant-TW: 중국어 번체 (대만)
ja-JP: 일본어 (일본)
'다양한 TIP' 카테고리의 다른 글
linux java 17 설치 방법(ubuntu) (0) | 2023.06.14 |
---|---|
python != 과 is not의 차이점은? (0) | 2023.06.05 |
Apache Tomcat 설치방법(윈도우) (0) | 2023.06.02 |
댓글