- Componente necesare
- Diagrama circuitului
- Conectarea difuzorului la Arduino
- Programarea Arduino pentru TTS (Text To Speech)
Textul în vorbire sau sistemul TTS convertește textul normal în vorbire. Această tehnologie permite sistemului să pronunțe textul cu o voce umană. Există multe exemple de conversii text în vorbire, cum ar fi anunțurile de la mijloacele de transport în comun, apelurile de asistență pentru clienți, asistenții vocali în smartphone-urile dvs. sau meniul de navigare al oricărui aparat. Puteți găsi chiar și TTS-ul în Microsoft Word unde îl setați pentru a rosti textul scris în document.
Astăzi, în acest tutorial, vom învăța cum să facem convertorul text în vorbire folosind Arduino. Am folosit anterior TTS cu Raspberry pi în vorbirea Ceasului cu alarmă și, de asemenea, am convertit vorbirea în text în raspberry pi utilizând tastatura vocală Google.
Primul pas în TTS este pre-procesare sau normalizare. Acest pas implică conversia simbolurilor, numerelor și abrevierilor în cuvinte care pot fi citite de mașini precum „?” vor fi convertite în „semn de întrebare”.
Al doilea pas implică conversia textului normalizat în foneme sau transcrieri fonetice. Fonemele sunt părțile mici ale cuvintelor rostite, adică acestea sunt sunetele care formează propoziții. Acest pas este cu adevărat esențial, astfel încât mașina să poată vorbi cuvintele așa cum fac oamenii.
Ultimul pas este sinteza de foneme în voce vorbită. Acest pas poate fi realizat prin diferite metode, cum ar fi prin înregistrarea vocii umane pentru diferite cuvinte / fraze sau prin generarea unor frecvențe de sunet de bază și adunarea lor ca foneme sau prin copierea mecanismului de vorbire umană.
Componente necesare
- Placa Arduino
- Un difuzor
- Un circuit amplificator
- Alimentare reglementată
- Conectarea firelor
Diagrama circuitului
Aici, în acest convertor Text to Speech, am folosit un circuit de amplificare pentru a reduce zgomotul și pentru a obține un sunet clar. Circuitul amplificatorului este realizat prin utilizarea IC LM386. Schema de circuit pentru aceasta este prezentată mai jos:
Un pot de 100K este folosit pentru a regla sunetul. Reglați-l pentru a obține un sunet clar. Dacă aveți confuzii cu privire la acest circuit, verificați Circuitul amplificatorului audio bazat pe LM386. Dacă nu aveți valoarea exactă a rezistențelor și condensatoarelor, utilizați cele apropiate.
Conectarea difuzorului la Arduino
Conexiunile sunt foarte ușoare odată ce creați circuitul amplificatorului.
Conectați sursa de alimentare la circuitul amplificatorului și conectați pinul digital 3 al Arduino la rezistența de 10K și conectați pământul Arduino la pământul circuitului. Acum conectați difuzorul conectând terminalul negativ la masă și terminalul pozitiv la condensatorul 220µF și conectați sursa de alimentare.
Programarea Arduino pentru TTS (Text To Speech)
Programul pentru acest TTS bazat pe Arduino este, de asemenea, foarte ușor, deoarece biblioteca este disponibilă pentru aceasta. Această bibliotecă se numește Talkie și poate fi adăugată de managerul de bibliotecă. Pentru a adăuga biblioteca, accesați Sketch-> Include Library-> Mange Libraries .
Acum, Managerul de bibliotecă va fi pe ecran. În bara de căutare tastați Talkie și faceți clic pe butonul de instalare. Biblioteca va fi instalată.
Această bibliotecă este foarte utilă și are peste 1000 de cuvinte și comenzi. Are mai multe exemple, le puteți încerca pe toate, dar aici folosim un cod simplu pentru a explica funcționarea.
Puteți încerca și alte comenzi date în bibliotecă. Pentru a obține acele comenzi, accesați Documents \ Arduino \ libraries \ Talkie \ src și apoi deschideți fișierele antet și obțineți mai multe comenzi care pot fi utilizate pentru alerte diferite. Există multe alte biblioteci TTS, cum ar fi biblioteca jscrane TTS, biblioteca Google TTS etc. Puteți, de asemenea, să le încercați.
Deci, să începem codificarea. În primul rând, includeți câteva fișiere antet. Talkie.h este folosit pentru a inițializa această bibliotecă și a seta pinul digital 3 al Arduino ca pin de ieșire. Vocab_US_Large.h este folosit pentru a utiliza alerte pe care le folosim și Vocab_Special.h este folosit pentru a utiliza pauza folosim.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
Acum definiți o „valoare” a obiectului pentru a utiliza comenzile:
Voce de tip talkie;
Aici același mesaj va fi repetat în difuzor, așa că păstrați funcția de configurare goală și puneți comenzile în funcție de buclă. Prima comandă voice.say (spPAUSE2) este de a face o scurtă pauză în timp ce repetați mesajul de alertă. Și următoarele comenzi sunt doar cuvinte simple care implică: PERICOL PERICOL FURMĂ ÎN NORD.
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); }
În cele din urmă, încărcați codul în Arduino și conectați sursa de alimentare la acesta. De îndată ce porniți circuitul, veți începe să auziți alertele! Dacă nu obțineți un sunet clar, încercați să reglați butonul potului sau verificați dacă Arduino primește o sursă de alimentare adecvată și asigurați-vă că GND-ul Arduino este conectat la masa circuitului.
Verificați codul complet cu un videoclip demonstrativ sunt prezentate mai jos.