Python에서 Speech를 텍스트로 변환하는 방법
12274 단어 machinelearningpythondatasciencenlp
구어의 문구를 텍스트 정보로 변환합니다.
Sci-fi와 Siri, Cortana 및 Google Assistant와 같은 개인 비서 및 음성을 통해 상호 작용하는 기타 가상 비서에서 본 적이 있을 것입니다.
이 AI 비서는 당신의 음성을 이해하기 위해 당신이 방금 말한 것을 이해하기 위해 음성 인식을 해야 합니다.
음성 인식은 복잡한 프로세스이므로 기계 학습/딥 러닝 모델을 교육하는 방법을 가르치지 않고 대신 Google 음성 인식 API를 사용하여 이를 수행하는 방법을 알려드리겠습니다.
Python의 기본 사항이 있는 한 이 자습서를 성공적으로 완료하고 Python에서 완벽하게 작동하는 음성 인식 프로그램을 빌드할 수 있습니다.
요구 사항
이 튜토리얼을 성공적으로 완료하려면 머신에 다음 Python 라이브러리가 설치되어 있어야 합니다.
-파이오디오 라이브러리
- SpeechRecognition 라이브러리
설치
pip install PyAudio
pip install SpeechRecognition
SpeechRecognition 라이브러리를 사용하면 온라인 및 오프라인에서 여러 엔진 및 API를 지원하여 음성 인식을 수행할 수 있습니다.
다음은 지원되는 엔진 중 일부입니다.
Snowboy Hotword 감지(오프라인에서 작동)
이 튜토리얼에서는 기본적으로 무료인 Google Speech recognition API를 사용할 것입니다. 아마도 특정 시간 동안 보낼 수 있는 요청에 제한이 있을 것입니다.
이 자습서 전체에서 파일의 오디오 소스를 사용하여 마이크에서 직접 공급되는 사운드를 사용하여 음성 인식을 수행하는 방법을 배웁니다.
마이크에서 음성 인식
마이크에서 음성 인식을 수행할 때 마이크에서 오디오를 녹음한 다음 Google Speech에 텍스트 인식 엔진으로 보내야 합니다. 그러면 인식을 수행하고 변환된 텍스트를 반환합니다.
*관련 단계 *
아래는 바로 확인할 수 있는 샘플 app.py 코드입니다.
*app.py *
import speech_recognition as sr
recognizer = sr.Recognizer()
''' recording the sound '''
with sr.Microphone() as source:
print("Adjusting noise ")
recognizer.adjust_for_ambient_noise(source, duration=1)
print("Recording for 4 seconds")
recorded_audio = recognizer.listen(source, timeout=4)
print("Done recording")
''' Recorgnizing the Audio '''
try:
print("Recognizing the text")
text = recognizer.recognize_google(
recorded_audio,
language="en-US"
)
print("Decoded Text : {}".format(text))
except Exception as ex:
print(ex)
오디오 파일에서 음성 인식
오디오 라인에서 음성 인식을 수행할 때 마이크를 오디오 소스로 사용하는 대신 한 줄의 코드만 변경하면 텍스트로 변환하려는 오디오 파일에 대한 경로를 제공합니다.
데모에서는 아래 샘플 오디오를 사용했습니다.
Sample Audio
아래 코드는 파일에서 오디오의 음성 인식을 수행하는 샘플 스크립트입니다.
import speech_recognition as sr
recognizer = sr.Recognizer()
''' recording the sound '''
with sr.AudioFile("./sample_audio/speech.wav") as source:
recorded_audio = recognizer.listen(source)
print("Done recording")
''' Recorgnizing the Audio '''
try:
print("Recognizing the text")
text = recognizer.recognize_google(
recorded_audio,
language="en-US"
)
print("Decoded Text : {}".format(text))
except Exception as ex:
print(ex)
산출
kalebu@kalebu-PC:~$ python3 app_audio.py
Done recording
Recognizing the text
Decoded Text: python programming is the best of all by Jordan
긴 오디오 소스에서 음성 인식
매우 긴 오디오가 있는 경우 전체 오디오를 메모리에 로드하고 API를 통해 전송하는 것은 매우 느린 프로세스가 될 수 있습니다. 이를 극복하기 위해 긴 오디오 소스를 작은 청크로 분할한 다음 해당 개별 청크에서 음성 인식을 수행해야 합니다.
우리는 pydub을 사용하여 Long Audio Source를 작은 청크로 분할할 것입니다.
pydub을 설치하려면 pip를 사용하십시오.
$~ pip install pydub
아래 링크를 사용하여 샘플 긴 오디오를 다운로드하려면
Long Sample Audio
아래는 긴 오디오를 로드하고 세그먼트로 분할한 다음 해당 개별 청크에서 음성 인식을 수행하여 오디오 분할에 대해 자세히 알아볼 수 있는 DataCamp 자습서를 확인하는 샘플 Python 코드입니다.
import os
from pydub import AudioSegment
import speech_recognition as sr
from pydub.silence import split_on_silence
recognizer = sr.Recognizer()
def load_chunks(filename):
long_audio = AudioSegment.from_mp3(filename)
audio_chunks = split_on_silence(
long_audio, min_silence_len=1800,
silence_thresh=-17
)
return audio_chunks
for audio_chunk in load_chunks('./sample_audio/long_audio.mp3'):
audio_chunk.export("temp", format="wav")
with sr.AudioFile("temp") as source:
audio = recognizer.listen(source)
try:
text = recognizer.recognize_google(audio)
print("Chunk : {}".format(text))
except Exception as ex:
print("Error occured")
print(ex)
print("++++++")
산출
$ python long_audio.py
Chunk : by the time you finish reading this tutorial you have already covered several techniques and natural then
Chunk : learn more
Chunk : forgetting to subscribe to be updated on upcoming tutorials
++++++
이제 수행 방법을 알게 된 것을 축하합니다. 지식으로 무엇을 만들지 기대됩니다.
Original Article은 kalebujordan.com에서 찾을 수 있습니다.
의견, 제안 또는 어려움이 있는 경우 아래에 의견을 남겨 주시면 최대한 빨리 연락 드리겠습니다.
Reference
이 문제에 관하여(Python에서 Speech를 텍스트로 변환하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kalebu/how-to-convert-speech-to-text-in-python-5h1p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)