Python을 사용하여 음성을 텍스트로 변환하는 방법 [단계별 프로세스]
게시 됨: 2020-08-07목차
Speech to Text 소개
우리는 기계와 상호 작용하는 방식이 다양하고 복잡해지는 시대에 살고 있습니다. 우리는 두툼한 기계식 버튼에서 터치스크린 인터페이스로 진화했습니다. 그러나 이러한 진화는 하드웨어에만 국한되지 않습니다. 컴퓨터 입력의 현상 유지는 개념 이래로 텍스트였습니다. 그러나 NLP(자연어 처리) 및 ML(기계 학습), 데이터 과학의 발전으로 음성을 가제트와 상호 작용하는 매체로 통합하는 도구가 있습니다.
이러한 도구는 이미 우리를 둘러싸고 있으며 가장 일반적으로 가상 비서 역할을 합니다. Google, Siri, Alexa 등은 디지털 세계와 상호 작용하는 또 다른 개인적이고 편리한 차원을 추가한 이정표입니다.
대부분의 기술 혁신과 달리 Speech to Text 기술은 소비 및 프로젝트 구축을 위해 모든 사람이 탐색할 수 있습니다.
Python은 세계에서 가장 일반적인 프로그래밍 언어 중 하나이며 음성을 텍스트로 변환하는 응용 프로그램을 만드는 도구가 있습니다.
Speech to Text의 역사
Python에서 문장을 텍스트로 탐색하기 전에 이 분야에서 우리가 얼마나 많은 진전을 이루었는지 평가해 볼 가치가 있습니다. 다음은 간소화된 타임라인입니다.
- Audrey , 1952: 3 Bells 연구소 연구원이 개발한 최초의 음성 인식 시스템. 숫자만 인식할 수 있었습니다.
- IBM Showbox(1962): 숫자 외에 16개의 단어를 코일로 인식하는 IBM 최초의 음성 인식 시스템. 간단한 산술 받아쓰기를 풀고 결과를 인쇄할 수 있습니다.
- DARPA( Defense Advanced Research Projects Agency )(1970): DARPA는 음성 이해 연구에 자금을 지원하여 Harpy가 1011개의 단어를 인식하도록 개발했습니다.
- 1980년대 HMM( Hidden Markov Model ): HMM은 순차적 정보가 필요한 문제를 모델링하는 통계 모델입니다. 이 모델은 음성 인식의 추가 발전에 적용되었습니다.
- Google의 음성 검색 , 2001: Google은 사용자가 음성을 사용하여 검색할 수 있도록 하는 음성 검색 기능을 도입했습니다. 이것은 매우 인기를 얻은 최초의 음성 지원 응용 프로그램이었습니다.
- Siri , 2011: Apple은 장치와 실시간으로 편리한 방식으로 상호 작용할 수 있는 Siri를 도입했습니다.
- Alexa ,2014 및 google home ,2016: 음성 명령 기반 가상 비서는 google home과 Alexa가 총 1억 5천만 대 이상 판매되면서 주류가 되었습니다.
또한 읽기: 상위 7개 Python NLP 라이브러리

Speech to Text의 도전
음성을 텍스트로 변환하는 것은 여전히 진정한 완성품이 아닌 복잡한 문제입니다. 몇 가지 기술적인 어려움으로 인해 이 도구는 기껏해야 불완전한 도구입니다. 음성 인식 기술의 일반적인 문제는 다음과 같습니다.
1. 나는 정확한 해석
음성 인식이 항상 말을 올바르게 해석하는 것은 아닙니다. VUI(Voice User Interface)는 단어와 문장의 관계를 바꾸는 이해 컨텍스트에서 인간만큼 능숙하지 않습니다. 따라서 기계는 문장의 의미를 이해하는 데 어려움을 겪을 수 있습니다.
2. 시간
음성 인식 시스템이 처리하는 데 시간이 너무 오래 걸리는 경우가 있습니다. 이것은 인간이 가지고 있는 음성 패턴의 다양성 때문일 수 있습니다. 이러한 음성 인식의 어려움은 말을 느리게 하거나 발음을 더 정확하게 함으로써 도구의 편의성을 떨어뜨리는 것을 방지할 수 있다.
3. 악센트
VUI는 평균과 다른 방언을 이해하기 어려울 수 있습니다. 같은 언어 내에서 화자들은 같은 단어를 말하는 방식이 크게 다를 수 있습니다.
4. 배경 소음 및 음량
이상적인 세계에서는 이러한 것들이 문제가 되지 않지만 단순히 그런 경우가 아니므로 VUI는 시끄러운 환경(공공 장소, 큰 사무실 등)에서 작업하는 것이 어려울 수 있습니다.
필독: Python에서 챗봇을 만드는 방법
Python의 텍스트 음성 변환
처음부터 텍스트에 대한 진술을 작성하는 힘든 과정을 겪고 싶지 않다면 다음을 지침으로 사용하십시오. 이 가이드는 음성을 텍스트로 변환하는 응용 프로그램을 만드는 방법에 대한 기본적인 소개일 뿐입니다. 비교적 최신 버전의 Python 외에도 작동하는 마이크가 있는지 확인하십시오.
1단계 :
다음 Python 패키지를 다운로드하십시오.
- Speech_recogntion (pip install SpeechRecogntion): 이것은 음성을 텍스트로 변환하는 가장 중요한 단계를 실행하는 기본 패키지입니다. 다른 대안에는 어필, 어셈블리, google-cloud-search, pocketsphinx, Watson-developer-cloud, wit 등과 같은 장단점이 있습니다.
- 내 오디오 (pip install Pyaudio)
- Portaudio (Pip install Portaudio)
2단계 :
프로젝트를 만들고(이름을 원하는 대로 지정) speech_recogntion을 sr로 가져옵니다.
인식기 클래스의 많은 인스턴스를 만듭니다.
3단계 :
이러한 인스턴스를 생성했으면 이제 입력 소스를 정의해야 합니다.

지금은 소스를 마이크 자체로 정의하겠습니다(기존 오디오 파일을 사용할 수 있음).
4단계 :
이제 입력을 저장할 변수를 정의합니다. 우리는 'listen' 방법을 사용하여 소스에서 정보를 가져옵니다. 따라서 우리의 경우 마이크를 이전 코드 줄에서 설정한 소스로 사용합니다.
5단계 :
이제 입력(소스로 마이크)이 정의되고 변수('오디오')에 저장되었으므로 단순히 텍스트로 변환하기 위해 인식_구글 메서드를 사용하기만 하면 됩니다. 결과를 변수에 저장하거나 단순히 결과를 인쇄할 수 있습니다. Google은 Recognize_google에만 의존할 필요가 없으며 다른 API를 사용하는 다른 방법도 사용할 수 있습니다. 이러한 방법의 예는 다음과 같습니다.
인식_빙()
recongize_google_cloud()
recongize_houndify()
recongize_ibm()
recongize_Sphinx() (오프라인에서도 작동)
다음 방법은 처음부터 음성을 텍스트 인식 소프트웨어로 개발해야 하는 번거로움을 줄이는 데 도움이 되는 기존 패키지를 사용했습니다. 이러한 패키지에는 보다 구체적인 문제를 해결하는 프로젝트를 구축하는 데 도움이 되는 더 많은 도구가 있습니다. 유용한 기능의 한 예는 기본 언어를 영어에서 힌디어로 변경할 수 있다는 것입니다. 이렇게 하면 힌디어로 인쇄되는 결과가 변경됩니다(현재 상태에서는 음성을 텍스트로 변환하는 것이 영어를 이해하기 위해 가장 많이 개발되었지만).
그러나 그러한 소프트웨어가 어떻게 실행되는지 이해하는 것은 심각한 개발자의 좋은 생각 연습입니다.
분해해 봅시다.
가장 기본적으로 말은 단순히 음파입니다. 이러한 음파 또는 오디오 신호에는 진폭, 마루와 골, 파장, 주기 및 주파수와 같은 몇 가지 특성(음향 물리학에 친숙해 보일 수 있음)이 있습니다.
이러한 오디오 신호는 연속적이므로 데이터 포인트가 무한합니다. 이러한 오디오 신호를 컴퓨터가 처리할 수 있도록 디지털 신호로 변환하려면 네트워크에서 오디오 신호의 연속성과 매우 유사한 샘플의 이산 분포를 취해야 합니다.
적절한 샘플링 주파수가 있으면(대부분의 음성 주파수가 이 범위에 있으므로 8000Hz가 좋은 표준임) 이제 LibROSA 및 SciPy와 같은 Python 라이브러리에서 오디오 신호를 처리할 수 있습니다. 그런 다음 데이터 세트를 2로 분할하고 모델을 훈련하고 다른 하나는 모델의 결과를 검증하여 이러한 입력을 기반으로 구축할 수 있습니다.
이 단계에서 한 차원만 수행하는 컨볼루션 신경망인 Conv1d의 모델 아키텍처를 사용할 수 있습니다. 그런 다음 모델을 구축하고 손실 함수를 정의하고 신경망을 사용하여 음성을 텍스트로 변환하는 최상의 모델을 저장할 수 있습니다. 딥 러닝과 NLP(자연어 처리)를 사용하여 보다 광범위한 적용 및 채택을 위해 문장을 텍스트로 구체화할 수 있습니다.
음성 인식의 응용
우리가 배웠듯이, 이 기술 혁신을 실행하는 도구는 대부분 소프트웨어 혁신이고 아무도 소유하지 않기 때문에 더 쉽게 접근할 수 있습니다. 이러한 접근성은 제한된 리소스의 개발자가 이 기술을 적용할 수 있는 기회를 제공했습니다.

음성 인식이 성장하고 있는 분야 중 일부는 다음과 같습니다.
- 검색 엔진의 진화: 음성 인식은 구두와 서면 커뮤니케이션 사이의 격차를 메워 검색 정확도를 높이는 데 도움이 될 것입니다.
- 의료 산업에 미치는 영향: 음성 인식은 의료 보고의 완성을 지원함으로써 의료 분야에서 일반적인 기능이 되고 있습니다. VUI가 의료 전문 용어를 더 잘 이해하게 됨에 따라 이 기술을 채택하면 의사의 행정 업무에서 시간을 절약할 수 있습니다.
- 서비스 산업: 자동화가 증가하는 추세에서 고객이 사람의 질문에 응답할 수 없는 경우가 있을 수 있으며, 따라서 음성 인식 시스템이 이 격차를 메울 수 있습니다. 공항, 대중 교통 등에서 이 기능이 빠르게 성장하는 것을 보게 될 것입니다.
- 서비스 제공업체: 통신 제공업체는 발신자의 요구 사항을 설정하고 적절한 지원으로 안내함으로써 대기 시간을 줄일 수 있는 음성-텍스트 기반 시스템에 훨씬 더 의존할 수 있습니다.
더 읽어보기: 음성 검색 기술 – 흥미로운 사실
결론
Speech to Text는 곧 유비쿼터스 될 강력한 기술입니다. Python(세계에서 가장 널리 사용되는 프로그래밍 언어 중 하나)과 함께 사용하면 합리적으로 직관적이므로 응용 프로그램을 더 쉽게 만들 수 있습니다. 우리는 이 분야에 발을 내디디면서 손끝에서 뿐만 아니라 입으로 말하는 디지털 세계로의 접근이 가능한 세상으로 가는 길을 열어가고 있습니다.
자연어 처리에 대해 더 자세히 알고 싶다면 일하는 전문가와 450시간 이상의 엄격한 교육을 위해 설계된 기계 학습 및 AI 프로그램의 경영진 PG를 확인하십시오.
데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크숍 , 업계 전문가와의 멘토링, 1 - 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.
음성을 텍스트로 변환이란 무엇입니까?
음성 인식의 초기에는 전사자가 헤드셋을 착용하고 음성을 녹음했습니다. 이 과정은 오랜 시간이 걸리고 품질이 낮은 성적표를 생성했습니다. 오늘날 음성 인식 시스템은 컴퓨터를 사용하여 음성을 텍스트로 변환합니다. 이것을 음성-텍스트 변환이라고 합니다. 음성 인식(음성-텍스트 변환이라고도 함)은 음성 단어를 기계가 읽을 수 있는 데이터로 변환하는 프로세스입니다. 그 목적은 사람이 음성으로 기계와 통신할 수 있도록 하고 기계가 음성을 생성하여 사람과 통신할 수 있도록 하는 것입니다. 음성-텍스트 소프트웨어는 이 변환을 수행하는 데 사용됩니다.
음성을 텍스트로 변환하는 데 있어 어떤 어려움이 있습니까?
음성에서 텍스트로의 변환에는 많은 어려움이 있습니다. 주요 과제는 다음과 같습니다. 정확성, 여기서 시스템은 사용자 의도를 추출하기 위해 말을 올바르게 해야 합니다. 속도, 시스템은 사용자가 수용할 수 있을 만큼 충분히 빠르게 위의 작업을 수행할 수 있어야 합니다. 자연스러움, 시스템은 가능한 한 자연스러워야 사용자가 부자연스럽게 말해야 한다고 느끼지 않습니다. 견고성, 시스템은 많은 양의 배경 소음, 기타 음성 및 변환 프로세스를 방해할 수 있는 기타 효과를 처리할 수 있어야 합니다.
음성을 텍스트 처리에 적용하는 것은 무엇입니까?
음성을 텍스트로 변환해야 하는 이유는 매우 빠르고 편리한 의사 소통 방법이기 때문입니다. 음성 대 텍스트 처리는 다양한 응용 프로그램에서 사용할 수 있습니다. 예를 들어 사용자가 키보드로 타이핑하는 대신 음성을 사용하여 메시지를 보내고 전화를 걸 수 있는 모바일 통신 장치에서 사용할 수 있습니다. 음성을 텍스트 처리에 적용하는 또 다른 응용 프로그램은 기계 제어입니다. 엔진이나 기타 산업기계에 말을 걸어 제어하는 방식입니다.