당신은 주제를 찾고 있습니까 “파이썬 음성 인식 – 파이썬으로 음성 인식하는 방법“? 다음 카테고리의 웹사이트 you.tfvp.org 에서 귀하의 모든 질문에 답변해 드립니다: https://you.tfvp.org/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 퓨터 [PUTER] 이(가) 작성한 기사에는 조회수 3,332회 및 좋아요 68개 개의 좋아요가 있습니다.
파이썬 음성 인식 주제에 대한 동영상 보기
여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!
d여기에서 파이썬으로 음성 인식하는 방법 – 파이썬 음성 인식 주제에 대한 세부정보를 참조하세요
화질 왜 이래 이거 ㄷㄷ;;
영상에 나온 프로그램 코드는 고정 댓글이나, 아래의 더보기 ▼ 에 있습니다.
다만 설정이 제 컴퓨터에 맞춰져 있기 때문에 에러가 나는 경우가 대부분입니다.
노가다 하고싶으신 분들만 추천드립니다.
디스코드 채널:
—————————————–
https://discord.gg/X3f9MnNmhW
(사실 와도 아무것도 없음)
—————————————–
영상에 나온 코드:
—————————————–
프로그램 코드
http://colorscripter.com/s/KyMaN9I
—————————————–
—————————————–
필요한 모듈을 설치하는 코드
http://colorscripter.com/s/bKxC8kL
—————————————–
#python #코딩 #프로그래밍 #파이썬 #음성인식 #speech_recognition #pyautogui #매크로 #keyboard
파이썬 음성 인식 주제에 대한 자세한 내용은 여기를 참조하세요.
[파이썬/Python] STT, 한국어 음성 인식 라이브러리 … – 기록하는삶
[파이썬/Python] STT, 한국어 음성 인식 라이브러리(SpeechRecognition). mingchin 2021. 11. 23. 02:06. 320×100. 반응형. SpeechRecognition은 한국어를 포함해 영어 …Source: mingchin.tistory.com
Date Published: 2/30/2022
View: 2154
파이썬으로 음성인식 봇 만들기(1) – 개발 정리
음성인식(STT)에 필요한 모듈. pip install SpeechRecognition. pip install Pyaudio. 1.SpeechRecognition (사용법)(주의사항들). 2.Pyaudio.
Source: fast-it.tistory.com
Date Published: 11/7/2021
View: 5320
6.4 응용 예제: 음성 인식을 활용한 일본어 퀴즈
파이썬으로 음성을 텍스트로 바꾸는 방법을 검색해보니 SpeechRecognition이라는 패키지가 있네요. 이것을 설치하고 간단히 테스트해보겠습니다. 준비. 아나콘다 가상환경 …
Source: wikidocs.net
Date Published: 8/27/2022
View: 5794
[Python] Speech recognition 음성 인식 – 2
[Python] Speech recognition 음성 인식 – 2. hotelshoe 2022. 1. 6. 14:02. 반응형. 이전 포스팅에서 영상 파일 속 음성을 인식하였고, 이번에는 직접 마이크 출력을 …Source: prlabhotelshoe.tistory.com
Date Published: 1/22/2021
View: 6048
Python 기초 강좌 4 음성 인식 프로그램 개괄
파이썬을 이용해서 간단한 음성인식 프로그램을 만들어 보자. 사실 지금 이 포스팅은 이 음성 인식 프로그램을 활용해서 쓰이고 있다.
Source: acknowledge.tistory.com
Date Published: 9/13/2021
View: 4794
[Python] 5분만에 음성 인식 구현하기
2019-02-04-speech_recognition 이 글은 Dav Amos님의 The Ultimate Gue To Speech Recognition With Python 글을 참고하였습니다. 여러 음성인식 …
Source: wdprogrammer.tistory.com
Date Published: 3/18/2021
View: 6544
6라인] 가장 쉬운 음성인식 (STT) 해 보기 – 리치윈드 (RichWind)
[관련 글] 2022.05.24 – [개발 이야기/Python] – [코딩 테스트] 파이썬 코딩테스트 핵심 요약 (CheatSheet) – 코테 1시간전에 꼭 보자.Source: richwind.co.kr
Date Published: 7/14/2022
View: 9519
6줄로 음성 인공지능 구현하기(STT :Speech to Text) – 코딩도상국
[파이썬 응용] 4탄 SpeechRecognition : 6줄로 음성 인공지능 구현하기(STT :Speech to … 과연 우리의 사람 말을 인식해서 글로 표현할 수 있을까?Source: coding-yoon.tistory.com
Date Published: 10/27/2022
View: 1438
파이썬 음성을 텍스트로 변환 하고, 내 말에 대답하는 AI 로봇 …
음성 인식하는 라이브러리 import speech_recognition as sr # gTTs (Google Text to speech)의 약자로, TEXT를 speech 형식으로 출력해주는 …
Source: davey.tistory.com
Date Published: 10/16/2022
View: 3869
주제와 관련된 이미지 파이썬 음성 인식
주제와 관련된 더 많은 사진을 참조하십시오 파이썬으로 음성 인식하는 방법. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.
주제에 대한 기사 평가 파이썬 음성 인식
- Author: 퓨터 [PUTER]
- Views: 조회수 3,332회
- Likes: 좋아요 68개
- Date Published: 2021. 2. 26.
- Video Url link: https://www.youtube.com/watch?v=oSyQOtNF0Wk
Python] STT, 한국어 음성 인식 라이브러리(SpeechRecognition)
728×90
반응형
SpeechRecognition은 한국어를 포함해 영어, 프랑스어, 중국어 등 다양한 언어의 음성 인식 관련 라이브러리로, 내부적으로 구글, 마이크로소프트, ibm등 빅테크 기업들의 우수한 알고리즘이 사용된 api를 이를 통해 쉽게 사용할 수 있다.
# 필요 library 설치 !pip install SpeechRecognition !pip install librosa
위와 같이 설치하고 난 뒤, 사용 예시는 아래와 같다.
import speech_recognition as sr r = sr.Recognizer() # recognize_google() : Google Web Speech API # recognize_google_cloud() : Google Cloud Speech API # recognize_bing() : Microsoft Bing Speech API # recognize_houndify() : SoundHound Houndify API # recognize_ibm() : IBM Speech to Text API # recognize_wit() : Wit.ai API # recognize_sphinx() : CMU Sphinx (오프라인에서 동작 가능) import librosa sample_wav, rate = librosa.core.load(‘D:\[train] 음성데이터_wav/EX45RB113_EX0355_20210826.wav’) korean_audio = sr.AudioFile(‘D:\[train] 음성데이터_wav/EX45RB113_EX0355_20210826.wav’) with korean_audio as source: audio = r.record(source) r.recognize_google(audio_data=audio, language=’ko-KR’)
Google Web Speech API의 경우 위처럼 audio 파일과 언어를 변수로 지정하면 음성의 텍스트 변환이 가능하다.
728×90
반응형
파이썬으로 음성인식 봇 만들기(1)
728×90
SMALL
음성인식(STT)에 필요한 모듈
pip install SpeechRecognition
pip install Pyaudio
1.SpeechRecognition (사용법)(주의사항들)
2.Pyaudio
Pyaudio는 직접적으로 사용하진 않지만
SpeechRecognition의 Microphone 메서드를
사용하기 위해선 Pyaudio를 설치해주셔야 합니다.
Pyaudio를 다운로드하는데 에러가 생긴다면 이 글을 봐주세요
1. STT(Speech To Text)
import speech_recognition as sr Recognizer = sr.Recognizer() #인스턴스 생성 mic = sr.Microphone() with mic as source: #안녕~이라고 말하면 audio = Recognizer.listen(source) try: data = Recognizer.recognize_google(audio, language=”ko”) except: print(“이해하지 못했음”) print(data) #안녕 출력
listen메서드에 timeout , phrase_time_limit
과 같은 인자로 옵션을 넘겨줄 수 있는데
phrase_time_limit=1은 음성을 1초만 듣겠다는 거고
timeout=1은 1초 동안 음성이 들어오지 않으면 에러를 뱉습니다
듣는 시간을 제한할 수 있다는 거죠
근데 전 둘 다 안 쓰는 게 제일 자연스러운 거 같습니다.
2.TTS(Text To Speech)
pip install gTTS
그리고 mp3를 재생하기 위한 모듈이 필요합니다
mp3재생해주는 playsound라는 모듈이 따로 있긴 한데
저는 맥북이라 os.system(“afplay./~”)를
사용했습니다. 윈도우도 저렇게 mp3를 재생해주는 명령어가 있다면
사용하셔도 상관없습니다.
def speak(text ,lang=”ko”, speed=False): tts = gTTS(text=text, lang=lang , slow=speed) tts.save(“./tts.mp3”) #tts.mp3로 저장 os.system(“afplay ” + “./tts.mp3”) #말하기
따로 설명할 게 없을 정로도 직관적입니다.
속도랑 언어를 인자로 줄 수 있는데
속도는 그냥 True로 하든 False로 하든
진짜 조금 달라지긴 하지만 느낄 수 있는 정도 고
언어는 text에 맞는 언어를 정해주셔야 합니다.
근데 대부분 한국어를 쓸 거니까 default값을 ko로 정해줬어요
한국어인데 lang을 영어(en)로 해버리면
구글 번역기 영어 칸에 한국어 넣고 말하기 하는 거처럼
알령하셰요 이렇게 들립니다.
목소리는 구글 번역기랑 똑같고요
소리 큼
3. 대답을 해
이제 말하기, 음성인식 둘 다 되니까
봇의 이름을 정하셔야 합니다
저는 Eris(에리스)라고 지었습니다.
제가 어렸을 때 좋아하던 아이언맨 인공지능 비서 이름이 자비스여서
얼추 비슷하게 만들었어요
근데 약간 있을법한 이름이라 검색해보니까 에리스가 그리스 신화에 등장하는
불화의 신이라고 하더라고요 좀 신기했습니다.
1. 에리스 앨리스 엘리스
여러 번 에리스라고 불러봤는데
자꾸 얘가 에리스를 앨리스 엘리스 이렇게 인식을 해서
노트북 앞에 앉아갖고 에리스~에리스 이러고 있다 보니
현타도 오고 그래서 그냥 에리스라고 들어도 대답
앨리스라고 들어도 대답
엘리스라고 들어도 대답하게 했습니다.
인식된 음성에 에리스, 엘리스, 앨리스 이 세 가지 중 하나라도
부분 일치한다면 대답하면 되겠죠
data = “에리스 야”
data in “에리” = True
data in “에릴” = False
in을사 용해서 포함돼있기만 해도 대답하게 하는 이유는
문장에 에리스가 포함되어있다면 무조건 대답하게 할 거기 때문입니다.
“에리스 야 대답해”
“에리스 야”
“에리스 야 말해봐”
이런 것들도 다 대답하게요
이제 대답을 시켜보겠습니다.
from gtts import gTTS import os import speech_recognition as sr def speak(text ,lang=”ko”, speed=False): tts = gTTS(text=text, lang=lang , slow=speed) tts.save(“./tts.mp3”) os.system(“afplay ” + “./tts.mp3″) Recognizer = sr.Recognizer() mic = sr.Microphone() while True: with mic as source: audio = Recognizer.listen(source) try: data = Recognizer.recognize_google(audio ,language=”ko”) except: speak(“이해하지 못하는 말이에요”) print(data) if “에리스” in data or “엘리스” in data or “앨리스” in data: speak(“넹”) print(“에리스 : 넹”) else: speak(“다시 불러주세요”)
대답 제대로하네요 알고리즘 하다가 이런거하니까 좀 새롭고 재밌는거같아요
728×90
LIST
6.4 응용 예제: 음성 인식을 활용한 일본어 퀴즈
요즘 일본어 공부를 다시 시작했습니다. 옛날에 잠깐 배운 적이 있지만 너무 오래 돼서 히라가나도 잊어버렸어요. ㅠ
그래서 일본어 공부를 도와주는 프로그램을 파이썬으로 만들어 보려고 합니다.
구현하려는 기능은 단순합니다.
화면에 일본어로 출력된 단어를 읽으면, 마이크로 소리를 받아서 맞게 읽었는지 알려주는 것이죠.
음성(speech)을 텍스트(text)로 바꿔주는 기능을 구현할 수 있다면 영어 퀴즈 연습 문제와도 크게 다르지 않습니다.
파이썬으로 음성을 텍스트로 바꾸는 방법을 검색해보니 SpeechRecognition이라는 패키지가 있네요. 이것을 설치하고 간단히 테스트해보겠습니다.
준비
아나콘다 가상환경 생성
저는 아나콘다 가상 환경을 만들어서 작업했습니다.
> conda create -n japanese_study Python=3.8 > conda activate japanese_study
SpeechRecognition 설치
pip로 SpeechRecognition 패키지를 설치합니다.
> pip install SpeechRecognition
PyAudio 설치
SpeechRecognition에서 마이크를 사용하려면 PyAudio도 필요하다고 해서 설치했는데, pip로는 잘 안 되어서 다음 방법으로 설치했습니다.
> pip install pipwin > pipwin install pyaudio
마이크 테스트
설치한 패키지들이 잘 작동하는지 파이썬 셸에서 테스트합니다.
> python >>> import speech_recognition as sr >>> sr.__version__ ‘3.7.1’ >>> r = sr.Recognizer() >>> mic = sr.Microphone()
영어:
>>> with mic as source: … audio = r.listen(source) … >>> r.recognize_google(audio) ‘hello how are you’
한국어:
>>> with mic as source: … audio = r.listen(source) … >>> r.recognize_google(audio, language=”ko-KR”) ‘아 아 마이크 테스트 하나 둘 셋’
일본어:
>>> with mic as source: … audio = r.listen(source) … >>> r.recognize_google(audio, language=”ja”) ‘おはようございます’
프로그램 작성
여기까지 잘 되는 것을 확인했으니 이제 프로그램을 작성해보겠습니다.
데이터 파일
데이터 파일은 와세다 대학교 일본어 기초 수업 영상을 참고해서 제가 직접 작성했습니다. 처음에는 히라가나와 영어 발음만 넣었는데, 나중에 테스트하다보니 음성인식 결과는 주로 한자로 나오는 것을 알게 되었습니다. 그래서 히라가나 , 한자어 , 영어 발음 의 데이터 형태가 되었습니다.
파일: ch06/japanese_word.csv
あい,愛,ai えき,駅,eki いえ,家,ie ここ,此処,koko うえ,上,ue (생략)
파이썬 코드
코드는 다음과 같습니다.
코드: ch06/japanese_quiz.py
import random import time import speech_recognition as sr f = open(‘japanese_words.csv’, encoding=’utf-8′) lines = f.readlines() random.shuffle(lines) r = sr.Recognizer() mic = sr.Microphone() for line in lines: hiragana, kanji, pronunciation = line.split(‘,’) correct = None # 틀리면 맞힐 때까지 같은 단어를 반복 while not correct: if correct is None: print(‘Read this word!:’) else: print(‘Let\’s try again:’) print(hiragana) # 답을 생각하느라 머뭇거리고 있으면 음성 인식이 종료되어 버려서 # 엔터 키 입력 후부터 인식하게 하려고 넣었습니다. input(‘Press Enter when you ready and then read it …’) with mic as source: audio = r.listen(source) a = r.recognize_google(audio, language=’ja’) print(‘Your answer:’, a) if kanji == a: correct = True print(‘You\’re right!’) else: correct = False print(hiragana, ‘is pronounced’, pronunciation) print(‘-‘ * 20) time.sleep(2)
실행 결과:
(japanese_study) C:\wikidocs-chobo-python\ch06>python japanese_quiz.py Read this word!: さかな Press Enter when you ready and then read it … Your answer: たかな さかな is pronounced sakana Let’s try again: さかな Press Enter when you ready and then read it … Your answer: 魚 You’re right! ——————– Read this word!: あさ Press Enter when you ready and then read it … Your answer: 羽田 あさ is pronounced asa Let’s try again: あさ Press Enter when you ready and then read it … Your answer: 羽田 あさ is pronounced asa Let’s try again: あさ Press Enter when you ready and then read it … Your answer: 朝 You’re right! ——————– Read this word!: えき Press Enter when you ready and then read it … Your answer: 駅 You’re right! ——————– Read this word!: かお Press Enter when you ready and then read it … Process finished with exit code -1
참고
다음 문서를 참고했습니다.
[Python] Speech recognition 음성 인식 – 2
반응형
이전 포스팅에서 영상 파일 속 음성을 인식하였고, 이번에는 직접 마이크 출력을 통해 음성을 인식하도록 하겠습니다.
소스코드
import speech_recognition as sr #import sys #– 텍스트 저장시 사용 r = sr.Recognizer() with sr.Microphone() as source: print(“Say Something”) speech = r.listen(source) #sys.stdout = open(‘audio_output.txt’, ‘w’) #– 텍스트 저장시 사용 try: audio = r.recognize_google(speech, language=”ko-KR”) print(“Your speech thinks like
” + audio) except sr.UnknownValueError: print(“Your speech can not understand”) except sr.RequestError as e: print(“Request Error!; {0}”.format(e)) #sys.stdout.close() #– 텍스트 저장시 사용
한글 음성을 기본으로 하였고, 필요에따라 텍스트 파일 출력이 가능하도록 하였습니다. 또한 불명확한 음성이나 요청 오류가 있을 시 예외 처리를 하도록 하였습니다.
테스트
출력 예시 출력 예시 출력 예시
단어의 경우 적절하게 인식하였을 때 띄어쓰기는 잘 되나, 마찬가지로 한줄로 출력이 됩니다.
출력 예시
txt 파일 생성하여 출력한 결과
단어 하나하나만의 출력은 기대 이상의 결과를 볼 수 있겠습니다.
반응형
Python 기초 강좌 4 음성 인식 프로그램 개괄
반응형
파이썬을 이용해서 간단한 음성인식 프로그램을 만들어 보자. 사실 지금 이 포스팅은 이 음성 인식 프로그램을 활용해서 쓰이고 있다. 이는 포스팅을 작성하는데 노력을 줄여준다. 하지만 종종, 원활하게 동작하지 않고 전문 용어는 정확성이 떨어지는 단점도 있다
시연 동영상
프로그램이 동작하는 모습은 아래와 같다
마이크가 파란색일 때 녹음이 가능하다
녹음된 내용을 처리 중에 있을 때 마이크가 붉은색으로 변한다
다음 녹음을 준비할 때 마이크가 주황색으로 변한다
마이크 그림은 Top Layer에 있으므로 항상 화면에 보인다
사용된 언어는 파이썬이며 무료로 추정(?)되는 Google STT(Speech to Text) API를 활용하였다
참고로 이 프로그램은 아래 유튜브 동영상을 참고하여 만들어졌다. 이는 다국어 음성인식이 가능한 GUI 프로그램이다. 다국어 지원 기능이 그렇게 어려운 것은 아니지만, 개인적으로는 그럴 필요성을 못 느꼈다.
[출처] YouTube 채널 GR Tech School, Voice Typer System ( Source link – Click this picture)코드 공유
코드는 Github의 다음 링크에 공개되어있다.
음성 인식 라이브러리 한계
우리가 윈도우에서 사용할 수 있는 음성 인식 라이브러리는, 사용할 때마다 일정 금액을 지불해야 하는 유료 라이브러리 거나, 무료이지만 한글을 사용할 수 없는 라이브러리들이 많다.
개인적으로 서치를 많이 해 봤지만 한글 사용이 가능하고 무료일 것으로 예상되는 라이브러리는 파이썬용 Google Speech Recognition 뿐이었다. 이는 사용료를 지불해야 하는 Google Cloud Speech API와 기능은 거의 비슷하지만 다른 서비스이며 무료 서비스로 추측된다. 하지만 추측이 될 뿐 확실한 것은 아니다. 쓰다가 혹시 돈 달라고 뭐가 날아오면 제 탓은 아닌 것으로..(;;;;)
단지, 이 Google Speech Recognition이 무료인 것으로 추측되는 이유는 다음과 같다.
이 API가 무료로 추측되는 근거
API 사용을 위한 개인키의 부재
음성 인식 API는 크게 내 로컬 환경에 핵심 로직을 모두 다운로드하여서 사용하는 오픈소스 형 API와 그 핵심 기능이 온라인상에 있어서 서버와 커뮤니케이션만 하는 API들이 있다.
보통 유료 음성인식 서비스는 후자인데, API를 사용하기 위해 웹상에 자신만의 계정을 만들고 그 계정마다 고유의 키 값을 받게 된다, 그리고 우리가 음성인식 API를 써서 만드는 개발물에는 이 키값이 들어가야 한다. (함수 인자나, 설정값으로)
반면 같은 온라인 API 서비스임에도 Google Speech Recognition은 본인의 계정을 만들지 않으며 개인 정보를 입력하지도 않는다.
계정을 만들지 않으므로 당연히 키값 역시 할당받지 않으며 대신, 어떤 공통의 키를 사용한다고 한다.
또한 pip install SpeechRecognition 명령어를 통해 API 패키지를 설치를 하면 아래와 같이 바로 음성 인식 기능을 확인해 볼 수 있다. 이렇게 바로 쓸 수 있는 게 유료일까? 일단 페이를 청구하기 위해선 내가 누구인지 알아야 할 것이다. 그런데 단순히 모듈을 설치하고 테스트해보는 과정에서 나를 식별해줄 만한 정보를 기입한 적이 없다.
이 API가 무료라고 주장하는 파편적인 정보들
이 API가 무료 서비스라고 쓰여있는 공식적인 정보는 찾지 못했다. 구글은 개발자들로 하여금 비교적 근래에 만들어진 음성인식 서비스(유료 서비스)인 Cloud Speech API의 사용을 유도하기 위해 이 Google Speech Recognition 서비스는 폐기 처분하려 하려고 노력하는 것으로 보인다, 공식 정보라고 링크가 있어서 가보면 보통 웹페이지가 남아있지 않다.
우리가 사용하는 파이썬 음성인식 라이브러리 패키지 (SpeechRecognition)에서도 해당 API만 정보 링크가 없는 게 보인다.
단지 어떤 이유로 완전히 없애지 못하고 남길 수밖에 없지 않을까 한다. 예를 들어 지금 쓰는 파이썬 API 패키지 등에 이미 연계가 되어있어서 그 기능을 지워 버리면 관련 개발물들이 먹통이 될 수 있으니까 그럴 수 있다.
여기저기 해당 API가 무료라는 언급은 있다. 단지 공식 정보가 아니며 그 내용이 각기 달라서 신뢰할 수는 없다. 예를 들어 어떤 곳에서는 이 음성인식 기능이 하루에 50회만 사용 가능하다고 말하는데 개인적으로 테스트해본 결과 그런 제약 없이 잘 되더라…
[출처] 음성인식 Github 오픈소스 커뮤니티 ( 사이트 링크 – 사진 클릭 )모바일 환경이나 맥북 환경에서는 이미 무료인 음성인식 기능들
Windows 10은 현재 OS가 지원하는 음성인식 기능이 몇 개의 언어에 한정되어 있다. 하지만 맥북이나, 핸드폰에서는 이미 다양한 언어로 이런 기능들을 사용할 수 있으며 Windows 11에서도 한글 음성인식이 포함될 것으로 보인다.
심지어 Windows의 이전 환경에서는 이미 이런 기능이 지원된 적이 있다고 한다. 넣었다 다시 뺀 것.
당시의 그 음성인식 기능은 퀄리티가 조금 떨어져서 뺐을 수도 있다, 어쩌면 PC 환경에서 음성인식 기능을 활용하면 다양한 경제성을 가지기 때문에 개발사 측에서 이 서비스를 통해 이윤을 내고자 하는 액션일 수도 있다. 자세한 정황은 모르겠다.
아무튼 이런 이유로 개인적으로는 이 API가 무료라고 (강하게) 추측하고 있다. (혹시 공식 정보 어디서 찾으시는 분 계시면 댓글 좀 부탁드립니다.)
그 밖의 음성인식 API들
음성 기술은 크게 두 가지로 나뉜다
STT (Speech to Text): 사람의 육성이나, 영상, 음악 파일의 언어를 텍스트로 전환하는 기능, 보통 머신러닝을 이용
TTS (Text to Speech): 텍스트를 사람이 말하는 것처럼 소리 내주는 기술, (리코딩 데이 터과 적절한 소리 변형 로직을 이용)
이 두 종류는 개발 방향이나 개발 난이도가 조금 다른 것으로 보인다. STT가 된다고 TTS가 되지는 않더라
앞서 말했듯, 개인적으로 한글 지원이 되는 무료 오픈소스 API들을 애타게 찾았으나 완벽하게, 한글을 지원하는 건 발견하지 못했으며, “한글 지원되나요?”라는 질문에는 보통 “여러분이 그것을 구현할 수 있습니다~!”라고 쓰여있기만 하더라. 누구 좀 만들어봐라 ㅠㅠ, 하긴 Windows 11 나오면 된다고 하니..
가장 유명한 오픈소스 API는 CMUSphinx로서 이는 다양한 프로그래밍 언어에서 다양한 이름으로 불리고 있다. 예를 들어 C언어에서 Poketcphinx로 불리며 공식 정보는 아래와 같다.
[출처] CMUSphix 공식 사이트 ( 사이트 링크 – 사진 클릭 )이밖에도 네이버 측에서 서비스하고 있는 클로바 API (CLOVA Speech Recognition API), IBM Speech 등에 관하여 시연 영상들을 보거나, 사이트에서 제공하는 테스트 환경을 사용해 보았는데 솔직히 성능은 Google의 유료 서비스인 Cloud Cloud Speech를 따라갈 수가 없어 보인다.
말을 할 때 구현되는 텍스트들의 정확도나 속도가 매우 중요한 게 녹음할 때 피로도가 다르다. 어떤 경우에는 타이핑하는 게 더 편할 만큼 못 알아먹는다. 심지어 이 프로그램도 말이다.
하지만 이런 요소들에 있어서, 그나마 구글 API 계열들이 현재로선 가장 쓸만해 보였다.
음성인식 기능 시연해보기
지금 내 프로그램의 성능 정도는 웹상에서 무료로 확인할 수 있는 방법이 있다. Google 사이트에 가서 검색엔진을 누르면 다음과 같은 아이콘이 보인다.
이 항목으로 들어가 새로운 문서를 만든다
메뉴 -> 도구 -> 음성 입력
위의 내 프로그램과 비슷한 마이크 모양이 나온다. (사실 여기서 따왔다)
클릭 후 음성 인식을 해보면 보여주는 성능이 내 프로그램의 성능과 비슷한 걸로 봐서 같은 서비스를 사용하는 거 아닐까 한다
다음 포스팅부터는 이 프로그램 코드를 통해 파이썬에서 패키지 세팅하는 방법과, 객체, 스레드, GUI 프로그래밍 등을 설명하도록 하겠다.
반응형
[Python] 5분만에 음성 인식 구현하기
이 글은 David Amos님의 The Ultimate Guide To Speech Recognition With Python 글을 참고하였습니다.
여러 음성인식 API를 사용하여 파이썬에서의 음성 인식을 손쉽게 할 수 있게 하는 SpeechRecognition 패키지를 소개하고자 합니다.
python3에서의 설치는 pip를 이용해서 간단히 설치할 수 있습니다.
pip install SpeechRecognition
python2에서의 설치는 약간의 추가적인 단계가 필요하니 python2는 여기를 참고하세요.
위 명령어를 통해 설치를 했으면, 다음 코드를 실행해서 잘 설치되었는지 확인해보세요.
import speech_recognition as sr sr . __version__
2019.02.05 기준 ‘3.8.1’이 최신입니다.
SpeechRecognition에서 모든 작업들은 Recognizer 클래스에서 일어납니다. Recognizer 인스턴스는 단순히 다음과 같이 만들 수 있습니다.
r = sr . Recognizer ()
Recognizer 인스턴스는 다양한 API들을 이용하여 음성인식을 합니다. 총 7가지의 API를 사용한 음성 인식 메서드가 존재하고 사용법은 거의 비슷합니다.
다만, sphinx를 제외하고 나머지 6개의 메서드는 인터넷 연결이 필요합니다. recognize_sphinx() 메서드는 CMU Sphinx engine를 사용해 오프라인에서 작업합니다.
모두 사용하기 위해서는 API Key가 필요한데 google web speech API는 기본 API 키가 있어서 바로 사용할 수 있습니다. 그러므로 이 글에서는 google web speech API를 사용합니다. 모든 API가 그렇듯 사용 한도가 있는데 여기 글에 따르면 이 API의 한도는 API를 따로 생성한다고 해도 올릴 수 없고 google cloud를 사용하라고 되어있습니다. 만약, 많은 양의 데이터를 처리하고자 하면 Google Cloud Speech의 API Key를 생성하여 사용하는 것이 좋습니다. 자세한 방법은 위 링크를 참고하세요.
각 recognize_*() 메서드는 API에 접근할 수 없으면 speech_recognition.RequestError 예외를 던집니다. 또한 recognize_sphinx() 메서드는 Sphinx 설치가 제대로 안 되어있으면 역시 같은 예외를 던지고, 나머지 6개의 메서드는 한도 초과가 되거나 인터넷 연결이 안 되어있으면 같은 예외를 던집니다.
Audio 파일에 대한 음성 인식
SpeechRecognition 패키지가 지원하는 오디오 파일 포맷은 다음과 같습니다.
WAV: must be in PCM/LPCM format
AIFF
AIFF-C
FLAC: must be native FLAC format; OGG-FLAC is not supported
일단 여기선 ‘harvard.wav’ 파일을 다운로드하여 사용하겠습니다.
recognize_*() 메서드는 audio 데이터를 인수로 요구합니다. 이 audio 데이터는 SpeechRecognition의 AudioData 인스턴스여야 합니다. 다행히, AudioFile 클래스로 쉽게 변환할 수 있습니다. 이 클래스는 audio 파일 경로로 초기화되고 파일을 읽고 작업할 수 있게 하는 context manager interface를 제공합니다.
초기화된 AudioFile 객체로 Recognizer 객체의 record 메서드를 통해 AudioData를 얻을 수 있습니다.
harvard = sr . AudioFile ( ‘harvard.wav’ ) with harvard as source : audio = r . record ( source )
type ( audio ) < class 'speech_recognition.AudioData' >
그런 다음 recognize_* 메서드를 사용해 인식된 결과를 얻을 수 있습니다.
r . recognize_google ( audio )
duration 과 offset 인수를 통해 audio 파일을 중간부터 혹은 일정 구간만 다룰 수 있습니다.
with harvard as source : audio1 = r . record ( source , duration = 4 ) audio2 = r . record ( source , duration = 4 )
위와 같이 duration=4 로 설정하면 audio1 객체에는 4초 간의 audio 데이터가 저장됩니다. 그런 다음 똑같이 duration=4 로 설정하여 다시 한 번 객체를 얻으면 audio2 객체에는 audio1 객체에 저장된 audio 데이터 이후의 4초 간의 데이터가 저장됩니다. 즉, audio1 객체에는 0~4초 간의 audio 데이터가 저장되고 audio2 객체에는 4~8초 간의 audio 데이터가 저장됩니다.
아래 코드를 실행해보면 이어지는 audio 데이터가 저장되어 있음을 알 수 있습니다.
r . recognize_google ( audio1 ) r . recognize_google ( audio2 )
이번엔 offset 인수도 같이 사용해보겠습니다.
xxxxxxxxxx with harvard as source : audio = r . record ( source , offset = 4 , duration = 3 ) recognizer . recognize_google ( audio )
위 코드를 실행하면 audio 객체는 4~7초 간의 audio 데이터를 저장하고 있음을 알 수 있습니다.
위 인수들을 사용할 때 고려해야 될 점이 있습니다. audio 데이터의 어떤 시점에 하나의 단어가 언급되고 있다면 그 단어는 잘려서 이상하게 인식될 것입니다. 이 harvard 데이터는 실험 목적으로 녹음된 것이기 때문에 초 단위로 잘라도 단어가 잘리지 않은 것 입니다.
이 글에서는 Audio 파일에 대한 음성인식 방법만을 다루었습니다. 노이즈가 있는 audio 데이터를 인식하는 방법 (adjust_for_ambient_noise 메서드 사용) 과 마이크를 통한 audio를 인식하는 방법 (PyAudio 사용) 은 본 글을 참고해주세요.
6라인] 가장 쉬운 음성인식 (STT) 해 보기
반응형
가장 간단한 6줄로 만드는 음성인식. Python Speech Recognition (STT)
[관련 글]2022.05.24 – [개발 이야기/Python] – [코딩 테스트] 파이썬 코딩테스트 핵심 요약 (CheatSheet) – 코테 1시간전에 꼭 보자.
2022.04.30 – [개발 이야기] – [코테] 코딩 테스트 플랫폼 4종 – 백준, 리트코드, 프로그래머스, 코드시그널
2021.12.16 – [개발 이야기/Python] – 파이썬 오디오 라이브러리 Top 5종 (Python Audio Library )
2020.12.16 – [분류 전체보기] – [개발] 피보나치(Fibonacci) 수열 구현 7가지 방법 – 파이썬 실습/확인 바로하기
2020.05.09 – [개발 이야기] – [개발] 파이썬 문법 5분만에 읽히기 – 파이썬 기본 문법 요약/정리 8 가지
2018.03.03 – [개발 이야기/Python] – 피보나치(Fibonacci) 수열을 구현하는 7가지 방법 – 파이썬(Python) 피보나치 구현 7선
Python으로 가장 단순한 음성인식 (STT) 해 보기
PyPi 에서는 음성인식 (STT)를 위해서 Speech Recognition (SpeechRecognition 3.8.1) 모듈을 제공하고 있다. https://pypi.org/project/SpeechRecognition/
설치는 아래와 같이 pip install을 통해서 쉽게 설치 할 수 있다. (위 PyAudio의 설치가 필요하다.)
!pip install SpeechRecognition
PyAudio 모듈 설치를 필요로 한다. PyAudio 모듈 설치 관련하여 하단을 참조하기 바란다. 단, 마이크 입력을 필요로 하기 때문에, 서버환경에서는 진행되지 않음에 유의하기 바란다. Notebook 또는 Desktop 환경에서 가능할 것이다. 혹, 서버환경에 마이크 입력 장비가 있다면 될지도…..
모듈 설치가 완료되면, 아래와 같이 간략히 음성인식(STT: Speech to Text)를 테스트 해 볼 수 있다.
import speech_recognition as sr r = sr.Recognizer() with sr.Microphone() as source: print(“Say something! : “) audio = r.listen(source) print( r.recognize_google(audio))
위 예제는 google 엔진을 사용한 예이며, 아래와 같은 다양한 엔진을 지원 한다. 좀 더 적극적으로 사용하려면, API_KEY 발급/등록이 필요하다.
CMU Sphinx (works offline)
Google Speech Recognition
Google Cloud Speech API
Wit.ai
Microsoft Azure Speech
Microsoft Bing Voice Recognition (Deprecated)
Houndify API
IBM Speech to Text
Snowboy Hotword Detection (works offline)
Tensorflow Vosk API (works offline)
PyAudio 설치 및 Error 해결 하기
python 프로젝트 중 일부, 필요에 따라서 `pyaudio`를 사용하는 경우가 있다. 대표적으로 위에서 소개한 `speechrecognition` 라이브러리에서 pyaudio를 필요로 한다. pyaudio를 설치하기 위해서 아래와 같이 실행해 주자.
!pip install -U pip !pip install -U pyaudio
특별한 경우가 아니라면 정상 설치가 될것이다. 다만, Linux or Mac 환경인 경우 아래와 같은 에러메세지를 볼 수 있다. ㅜ_ㅜ
그런데, 이 pyaudio가 아래와 같은 에러를 발생하는 경우가 `매우 매우` 많다.
PyAudio 설치 오류. PortAudio
pyaudio는 기본적으로 Windows Desktop 환경을 타겟으로 개발된듯 하다. 이 때문에, Linux or Mac에서는 조금 번거로운 설치작업을 추가로 해주어야 한다.
필자는 주 개발 환경이 서버 환경이다 보니, 처음에 왜 이 간단한것이 안되는지 한참 고생 했었다. 잘 생각해 보면, PyAudio는 마이크/음성입력 장비가 설비된 환경에서만 동작한다.
Linux와 MacOS 환경은 다음 설치 명령을 참조하도록 한다.
Linux (Ubuntu)
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0 sudo apt-get install ffmpeg libav-tools sudo pip install pyaudio
MacOS
brew reinstall portaudio
또는
xcode-select –install brew remove portaudio brew install portaudio pip3 install pyaudio
반응형
[파이썬 응용] 4탄 SpeechRecognition : 6줄로 음성 인공지능 구현하기(STT :Speech to Text)
반응형
안녕하세요. 오늘은 정말 신기하고 재미있는 라이브러리를 가지고 왔습니다.
제가 요즘 딥러닝을 위해 파이썬으로 여러가지를 만들어 보고 있는데, 음성쪽을 찾다보니 발견하였습니다.
단, 6줄로 구현하는 구글 음성 인공지능 API!
저도 구현은 그렇다치더라도 과연 잘될까? 라는 고민을 했지만,
과연 우리의 사람 말을 인식해서 글로 표현할 수 있을까?
상상 이상으로 잘되어 깜짝놀랐습니다.
바로 실습해보도록 하겠습니다.
파이참을 키고 설치를 준비합니다.
speechRecognition을 검색합니다.
설치가 완료되었네요.
만약 pycharm이 아니시라면, cmd에
python -m pip install speechrecognition
오늘자 기준으로 3.8.1 최신버젼기준입니다.
코딩이 엄청 짧으니 한 번에 올리도록 하겠습니다.
import speech_recognition as sr
r = sr.Recognizer()
harvard = sr.AudioFile(‘test.wav’)
with harvard as source:
audio = r.record(source)
print(r.recognize_google(audio))
test.wav 0.28MB
제가 실습한 음성입니다. 한 번 이 음성에 맞게 인식했는지 print해보겠습니다.
결과
와… 이 실험 음성이 혀를 너무 굴려서 무슨말인지 몰랐는데, 구글 api는 저보다 확실히 알아냅니다.
만약 한글로 인식시키고 싶으시면 저렇게 하시면 됩니다.
음성파일은 4가지가 가능합니다.
WAV: must be in PCM/LPCM format
AIFF
AIFF-C
FLAC: must be native FLAC format; OGG-FLAC is not supported
google API뿐만 아니라
7가지나 제공합니다… 이야…
하지만… sphinx를 제외한 나머지 6개는 인터넷이 연결되어 있어야 합니다.
제가 때마침 음성을 filter프로그램을 만들고 있는데… 노이즈가 잔뜩 낀 음성을 필터링한 이 후에 인공지능을 돌려봐도 재밌을 것 같습니다.
구간을 지정할 수도 있습니다.
이런 식으로 구간을 1초씩 쪼개면 어떻게 될까요?
잉??
초 단위로 단어를 쪼개게 되면 단어 또한 함께 쪼개지게 됩니다.
녹음된 파일뿐만 아니라 실시간으로 음성을 인식해 Text를 뽑아내는 방법도 있습니다.
https://pythonspot.com/speech-recognition-using-google-speech-api/
실시간으로 음성을 텍스트로 변환하고 싶으시다면 위 사이트로 올라가시면 됩니다.
728×90
반응형
파이썬 음성을 텍스트로 변환 하고, 내 말에 대답하는 AI 로봇 만들기 + gTTs, SpeechRecognition 라이브러리
728×90
안녕하세요, 이번 포스팅 할 내용은, gTTs, SpeechRecognition 라이브러리를 이용해서 음성을 텍스트로 변환하는 코드에 대해서 다룰려고 합니다. 더불어 제가 말한 거에 대답하는 AI 로봇 코드도 설명 드리도록 하겠습니다.
TTS 관련 이미지 참조, 출처: https://morioh.com/p/3bed9a246077 TTS-관련-이미지
그럼 제가 나름대로 이해한 gTTs, SpeechRecognition 라이브러리에 대해서 차근 차근 설명해 드리도록 하겠습니다.
음성 -> 텍스트 변환 파이썬(python) 라이브러리
:음성을 텍스트 변환하는 파이썬(python) 라이브러리는 아래와 같습니다.
=========================================================
import speech_recognition as sr – 내부 함수로는 아래와 같습니다. 1) Recognizer() 2) Microphone() 3) listen() 4) recognize_google()
=========================================================
– 아래 라이브러리를 사용하기 위해서는 일단, 라이브러리를 설치를 해야 합니다. 근데 보통 라이브러리 이름과 설치하는 명령어가 똑같은데, “speech_recognition” 라이브러리 설치 명령어는 아래와 같습니다.
: pip install speechrecognition (자세히 보면 “_” 가 없습니다. 주의해서 입력하시면 됩니다.)
– 설치를 하면 아래와 같은 구문이 나오고, 성공적으로 설치 된 상태를 표현해 줍니다.
파이썬-TTS-코드-구현-사진1
내말에 대답하는 AI 로봇 만들기 위한 라이브러리
: 위에서 내 말을 텍스트로 전환 해주는 코드에 더불어, 내 말에 대답해 주는 AI 로봇을 만들어 보려고 합니다. AI 로봇 구현을 위해서는 아래 라이브러리가 필요합니다.
============================================================================
# gTTs (Google Text to speech)의 약자로, TEXT를 speech 형식으로 출력해주는 라이브러리 입니다. from gtts import gTTS # 기본 라이브러리로서, 추가적인 작업을 가미할 때 필요한 라이브러리 입니다. # 생성된 음성파일을 중복으로 인한 Error를 피하기 위해서, 사용하는 파일 삭제하는 라이브러리를 사용할 예정. import os import time # gTTs (Google Text to speech)의 약자로, TEXT를 speech 형식으로 출력해주는 라이브러리 입니다. import playsound
============================================================================
– os, time의 라이브러리는 기본적으로 제공하는 라이브러리 이므로, gTTs만 추가적으로 설치하시면 됩니다. 설치 구문은 아래와 같습니다. 위와 같이 설치 완료 화면이 나오면 설치가 완료가 된 것입니다.
: pip install gTTs
전체 코드 구현
: 위에 1, 2번 항목의 라이브러리를 다 설치 완료하였으니, 본격적으로 코드를 구현해보도록 하겠습니다. 코드 구현은 아래와 같습니다.
================================================================================
# 음성 인식하는 라이브러리 import speech_recognition as sr # gTTs (Google Text to speech)의 약자로, TEXT를 speech 형식으로 출력해주는 라이브러리 입니다. from gtts import gTTS # 기본 라이브러리로서, 추가적인 작업을 가미할 때 필요한 라이브러리 입니다. import os import time # gTTs (Google Text to speech)의 약자로, TEXT를 speech 형식으로 출력해주는 라이브러리 입니다. import playsound def reply(text, a): tts= gTTS(text=text, lang=’en’) filename = ‘D:\\’ + text + str(a) +’.mp3′ # 음성 파일을 저장하는 경로와 파이명 지정 # if os.path.isfile(filename): # os.remove(file) tts.save(filename) playsound.playsound(filename) def Voice_Recognition(): # 음성 인식하는 함수 선언 r = sr.Recognizer() with sr.Microphone() as source: audio = r.listen(source) said = ” ” try: said = r.recognize_google(audio) print(said) except Exception as e: print(“Exception: ” + str(e)) return said i = 0 list01 = [] while True: # 원하는 만큼 물어보고 위한 무한 루트 선언 text = Voice_Recognition() if “hi” in text: # 1번째 음성 인식에 따른, AI 로봇의 답변 입력 answer01 = ‘hilongtimenoseehowareyou’ reply(answer01, i) i = i + 1 # 2번째 음성 인식에 따른, AI 로봇의 답변 입력 elif “how are you, can you tell me your name” in text: answer01 = ‘MynameisDavey’ reply(“MynameisDavey”,i) i = i + 1 # 코드를 끝내는 음성 선언 elif “bye” in text: break # 음성파일 이름을 리스트화 하는 코드 list01.append(answer01 + str(i-1) + ‘.mp3’) # 코드가 끝나면 음성파일을 삭제하는 코드 for item in list01: # modi = ‘.’ print(item) os.remove(‘D:/’ +item)
================================================================================
– 위의 코드를 실행을 출력창에는 아래와 같이 출력되는 걸 확인 하실 수 있습니다. 아래 결과 창을 보시면, 2번째 질문은 제가 3번 했고, 그거에 대해서 답변을 한게, 저장이 된 파일이, MynameisDavey0~3.mp3 파일이고, 이게 리스트 화 되었습니다. 그리고 나서, 이걸 For 문을 돌려서 삭제를 한 것이지요. 왜냐하면, 똑같은 질문을 하면 오류가 나기 때문입니다. 한 번 아래 코드를 생략하고 돌려보시면, 인지하실 것입니다.
파이썬-TTS-코드-구현-사진2
이상입니다. 지금까지 gTTs, SpeechRecognition 라이브러리를 이용해서 음성을 텍스트로 변환하는 코드에 대해서 포스팅 작성하였습니다. 물론 다른 라이브러리를 사용해서 구현을 했지만, 중간 중간에, 제가 구현하고 싶은 사항에 대해서 trouble shooting 하느라고 시간을 좀 많이 허비한 거 같습니다. 정말, 이런 거 보면, 프로그래밍 하시는 분들, 존경 스럽습니다.
너무 멋있지 않나요?! 물론 모든 일을 하시는 분들 다 멋있지만, 요즘 너무 프로그래밍에 꼿혀 있는 거 같아서 그런가, 너무 Fancy 한 거 같습니다. 무튼, 한 번 보시고, 공부 해보시길 추천 드립니다. 그럼 같이 공부하고 같이 성장해 나가시죠! 감사합니다.
제 Posting이 조금이나마 정보 전달에 도움이 되셨길 빌며, 되셨다면, 구독, 댓글, 공감 3종 세트 부탁 드립니다. 감사합니다.
[저작권이나, 권리를 침해한 사항이 있으면 언제든지 Comment 부탁 드립니다. 검토 후 수정 및 삭제 조치 하도록 하겠습니다. 그리고, 기재되는 내용은 개인적으로 습득한 내용이므로, 혹 오류가 발생할 수 있을 가능성이 있으므로, 기재된 내용은 참조용으로만 봐주시길 바랍니다. 게시물에, 오류가 있을때도, Comment 달아 주시면, 검증 결과를 통해, 수정하도록 하겠습니다.]728×90
키워드에 대한 정보 파이썬 음성 인식
다음은 Bing에서 파이썬 음성 인식 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.
이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!
사람들이 주제에 대해 자주 검색하는 키워드 파이썬으로 음성 인식하는 방법
- 동영상
- 공유
- 카메라폰
- 동영상폰
- 무료
- 올리기
파이썬으로 #음성 #인식하는 #방법
YouTube에서 파이썬 음성 인식 주제의 다른 동영상 보기
주제에 대한 기사를 시청해 주셔서 감사합니다 파이썬으로 음성 인식하는 방법 | 파이썬 음성 인식, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.