라즈베리파이 환경이 아니어도 파이썬만 된다면 가능합니다
저는 비쥬얼스튜디오에서 예를 보여드렸지만 라즈베리파이에서도 가능합니다.
라즈베리파이에서 구글의 stt api 없이 사용 가능합니다
https://prlabhotelshoe.tistory.com/8
0. SpeechRecognition 설치
pip install SpeechRecognition
리눅스 환경에서 오류가 난다면
sudo apt-get install flac
1. 이미 존재하는 오디오 파일을 텍스트로 변환하고 싶을 때
1-1 오디오 파일이 wav 파일일 때
파이썬에서
import speech_recognition as sr
r = sr.Recognizer()
audio_file = sr.AudioFile('경로.wav')
with audio_file as source:
audio = r.record(source)
print(r.recognize_google(audio, language='ko-KR'))
1-2 오디오 파일이 wav 파일이 아닐 때
오디오 파일을 사용하려면 형식이 wav 파일이어야 합니다!!
gtts에서 .wav로 저장해도 이름만 그렇게 .wav로 저장되는 것일 뿐 wav파일이 된 것이 아닙니다
오류
해결 방법: ffmpeg라는 음성 변환 패키지를 사용합니다
https://ubunlog.com/ko/como-convertir-audio-a-otros-formatos-desde-el-terminal-con-ffmpeg/
리눅스 환경에서 ffmpeg 설치
sudo apt install ffmpeg
파이썬에서 ffmpeg 설치
https://www.delftstack.com/ko/howto/python/ffmpeg-python/
저는 코랩을 이용했습니다
코랩의 경우 리눅스 명령어 앞에 ! 를 붙여주시면 됩니다
코랩에서 ffmpeg 설치
!sudo apt install ffmpeg
ffmpeg 사용 방법
ffmpeg -i <변환하고픈 음성 파일 경로> <변환될 음성 파일 이름 + 형식 경로>
예를 들어
ffmpeg -i /content/before.m4a /content/after.wav
를 하면 content 디렉토리 안에 wav 형식의 after.wav라는 새로운 음성파일이 생깁니다
저는 유튜브 뉴스 기사를 음성으로 변환했습니다
https://www.youtube.com/watch?v=jyO0bxq3anQ
ffmpeg -i 날씨.mp3 weather.wav
그러면 wav 파일이 생성됩니다
weather.wav 파일 속 음성을 텍스트로 변환해보겠습니다
일요일은 오늘도 어제와 마찬가지로 전국에 포근한 가운데 오후부터는 남부지방 등 일부 지역에 5mm 안팎의 비가 오겠습니다 낮 최고 기온은 서울이 15도 광주 18도 등 11도에서 19도로 어제에 이어 오늘도 평년보다 높겠습니다 미세먼지 농도는 충북 충남 전북은 나쁨 그밖에 권역은 보통 수준이 예상됩니다 바다의 물결은 동해 앞바다에서 최고 3.5m 서해와 남의 앞바다에서 최고 1.5m 등으로 읽겠습니다
정확도 99.9999%
!!!
2. 사용자로부터 음성을 받고, 그 음성을 텍스트로 변환하고 싶을 때
파이썬에서
import speech_recognition as sr
r = sr.Recognizer()
mic = sr.Microphone()
with mic as source:
print("인식됨")
audio = r.listen(source, timeout = 5, phrase_time_limit = 5)
try:
text = r.recognize_google(audio, language = "ko-KR")
except sr.UnknownValueError:
print("음성을 인식하지 못했습니다.")
except sr.RequestError as e:
print(f"에러가 발생하였습니다. 에러원인 : {e}")
else:
print(text)
직접 해봤습니다
버튼을 GPIO로 연결하여 음성인식이 시작되도록 동작하도록 만들어 보아요~
'라즈베리파이4' 카테고리의 다른 글
라즈베리파이 yolov5 설치 오류 프로파일링 (1) | 2024.01.06 |
---|---|
[라즈베리파이4] GPIO를 이용하여 버튼 입력 받기 (0) | 2023.11.03 |
[라즈베리파이4] python-vlc를 사용하여 파이썬으로 음성 출력 (2) | 2023.10.31 |
[라즈베리파이4] gtts로 텍스트를 음성으로 변환하기 (2) | 2023.10.29 |
[라즈베리파이4] 라즈베리파이4에 yolov5 설치하기 업데이트 (0) | 2023.10.28 |