텍스트 음성 변환 또는 TTS 시스템은 일반 텍스트를 음성으로 변환합니다. 이 기술을 통해 시스템은 사람의 목소리로 텍스트를 말할 수 있습니다. 대중 교통의 알림, 고객 관리 전화, 스마트 폰의 음성 도우미 또는 컴퓨터의 내비게이션 메뉴와 같은 텍스트 음성 변환의 많은 예가 있습니다. 문서에 쓰여진 텍스트를 말하도록 설정 한 Microsoft Word에서 TTS를 찾을 수도 있습니다.
오늘이 튜토리얼에서는 Arduino를 사용하여 Text To Speech 변환기를 만드는 방법을 배웁니다. 우리는 이전에 알람 시계를 말할 때 Raspberry pi와 함께 TTS를 사용했으며 Google 음성 키보드를 사용하여 음성을 raspberry pi의 텍스트로 변환했습니다.
TTS 의 첫 번째 단계는 전처리 또는 정규화 입니다. 이 단계에는 기호, 숫자 및 약어를 '?'와 같은 기계에서 읽을 수있는 단어로 변환하는 작업이 포함됩니다. "물음표"로 변환됩니다.
두 번째 단계는 정규화 된 텍스트를 음소 또는 음성 대본으로 변환하는 것입니다. 음소는 말의 작은 부분입니다. 즉, 문장을 만드는 소리입니다. 이 단계는 기계가 인간처럼 말을 할 수 있도록 정말 필수적입니다.
마지막 단계는 음성 음성으로 음소의 합성이다. 이 단계는 다른 단어 / 구문에 대해 사람의 목소리를 녹음하거나 기본 사운드 주파수를 생성하여 음소로 쌓거나 사람이 말하는 메커니즘을 복사하는 것과 같은 다른 방법으로 달성 할 수 있습니다.
필수 구성 요소
- Arduino 보드
- 스피커
- 증폭기 회로
- 규제 된 전원 공급 장치
- 전선 연결
회로도
이 텍스트 음성 변환 변환기에서는 소음을 줄이고 깨끗한 사운드를 얻기 위해 증폭기 회로를 사용했습니다. 증폭 회로가 IC LM386을 사용하여 이루어진다. 이에 대한 회로도는 다음과 같습니다.
100K 포트는 사운드를 조정하는 데 사용됩니다. 선명한 사운드를 얻으려면 조정하십시오. 이 회로에 대해 혼동이 있다면 LM386 기반 오디오 증폭기 회로를 확인하십시오. 저항과 커패시터의 정확한 값이 없으면 가까운 값을 사용하십시오.
Arduino에 스피커 연결
앰프 회로를 만들면 연결이 매우 쉽습니다.
전원 공급 장치를 증폭기 회로에 연결하고 Arduino의 디지털 핀 3을 10K 저항에 연결하고 Arduino의 접지를 회로의 접지에 연결합니다. 이제 음극 단자를 접지에 연결하고 양극 단자를 220µF 커패시터에 연결하고 전원 공급 장치를 연결하여 스피커를 연결합니다.
TTS를위한 Arduino 프로그래밍 (텍스트 음성 변환)
이 Arduino 기반 TTS 의 프로그램 은 라이브러리를 사용할 수 있기 때문에 매우 쉽습니다. 이 라이브러리를 Talkie 라고하며 라이브러리 관리자가 추가 할 수 있습니다. 라이브러리를 추가하려면 Sketch-> Include Library-> Mange Libraries로 이동 합니다.
이제 라이브러리 관리자가 화면에 표시됩니다. 검색 창에 Talkie를 입력하고 설치 버튼을 클릭합니다. 라이브러리가 설치됩니다.
이 라이브러리는 매우 편리하며 1000 개 이상의 단어와 명령이 있습니다. 여기에는 몇 가지 예가 있으며 모두 시도해 볼 수 있지만 여기서는 간단한 코드를 사용하여 작업을 설명합니다.
라이브러리에있는 다른 명령을 시도 할 수도 있습니다. 이러한 명령을 얻으려면 Documents \ Arduino \ libraries \ Talkie \ src 로 이동 한 다음 헤더 파일을 열고 다른 경고에 사용할 수있는 여러 명령을 가져옵니다. jscrane TTS 라이브러리, google TTS 라이브러리 등과 같은 다른 많은 TTS 라이브러리가 있습니다. 시도해 볼 수도 있습니다.
이제 코딩을 시작하겠습니다. 먼저 일부 헤더 파일을 포함합니다. Talkie.h 는이 라이브러리를 초기화하고 Arduino의 디지털 핀 3을 출력 핀으로 설정하는 데 사용됩니다. Vocab_US_Large.h는 우리가 사용하고있는 경고를 사용하는 데 사용되며 Vocab_Special.h는 우리가 사용하고있는 일시 정지를 사용하는 데 사용됩니다.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
이제 명령을 사용하기 위해 객체 '값'을 정의하십시오.
Talkie 음성;
스피커에서 동일한 메시지가 반복되므로 설정 기능을 비워두고 명령을 루프 기능에 넣으십시오. 첫 번째 명령 voice.say (spPAUSE2) 는 경고 메시지를 반복하면서 잠시 멈추는 것입니다. 그리고 다음 명령은 다음을 암시하는 간단한 단어입니다. DANGER DANGER STORM IN THE NORTH.
void setup () { } void loop () { voice.say (spPAUSE2); voice.say (sp2_DANGER); voice.say (sp2_DANGER); voice.say (sp3_STORM); voice.say (sp3_IN); voice.say (sp3_THE); voice.say (sp3_NORTH); }
마지막으로 Arduino에 코드를 업로드하고 전원 공급 장치를 연결하십시오. 회로의 전원을 켜면 경고음이 들리기 시작합니다! 명확한 소리가 나지 않으면 냄비의 손잡이를 조정하거나 Arduino에 적절한 전원이 공급되고 있는지 확인하고 Arduino의 GND가 회로의 접지에 연결되어 있는지 확인하십시오.
데모 비디오 로 전체 코드를 확인하십시오.