본문 바로가기
다양한 TIP

Speech recognition Python 설치해보기(Speech to text Python)

by 유기농프로그래밍 2023. 6. 6.
반응형

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

댓글