- Components necessaris
- Esquema de connexions
- Connexió de l'altaveu a Arduino
- Programació d'Arduino per a TTS (text a veu)
El text a veu o el sistema TTS converteix el text normal en veu. Aquesta tecnologia permet al sistema pronunciar el text amb veu humana. Hi ha molts exemples de conversions de text a veu, com ara anuncis al transport públic, trucades d’atenció al client, assistents de veu als vostres telèfons intel·ligents o el menú de navegació de qualsevol màquina. Fins i tot podeu trobar el TTS a Microsoft Word on el configureu per pronunciar el text escrit al document.
Avui, en aquest tutorial, aprendrem a fer un convertidor de text a veu mitjançant Arduino. Anteriorment hem utilitzat TTS amb Raspberry pi per despertar parlant i també hem convertit la veu en text a raspberry pi mitjançant el teclat de veu de Google.
El primer pas de TTS és el pre-processament o la normalització. Aquest pas implica la conversió dels símbols, números i abreviatures en paraules que poden llegir les màquines com "?" es convertirà en “signe d’interrogació”.
El segon pas consisteix en la conversió de text normalitzat en fonemes o transcripcions fonètiques. Els fonemes són les petites parts de les paraules parlades, és a dir, aquests són els sons que formen frases. Aquest pas és realment essencial perquè la màquina pugui pronunciar les paraules com ho fan els humans.
L’ últim pas és la síntesi de fonemes en veu parlada. Aquest pas es pot aconseguir mitjançant diferents mètodes, com mitjançant l'enregistrament de la veu humana per a diferents paraules / frases o generant freqüències de so bàsiques i acumulant-les com a fonemes o copiant un mecanisme de parla humana.
Components necessaris
- Taula Arduino
- Un altaveu
- Un circuit amplificador
- Font d'alimentació regulada
- Connexió de cables
Esquema de connexions
Aquí, en aquest convertidor de text a veu, hem utilitzat un circuit amplificador per reduir el soroll i obtenir un so clar. El circuit amplificador es realitza mitjançant l'IC LM386. A continuació es mostra el diagrama de circuits:

S’utilitza una olla de 100K per ajustar el so. Ajusteu-lo per obtenir un so clar. Si teniu cap confusió sobre aquest circuit, consulteu Circuit d'amplificador d'àudio basat en LM386. Si no teniu el valor exacte de resistències i condensadors, feu servir els de valor proper.
Connexió de l'altaveu a Arduino
Les connexions són molt fàcils un cop feu el circuit amplificador.

Connecteu la font d'alimentació al circuit de l'amplificador i connecteu el pin digital 3 del vostre Arduino a una resistència de 10K i connecteu la terra d'Arduino a la terra del circuit. Ara connecteu l’altaveu connectant el terminal negatiu a terra i el terminal positiu al condensador de 220 µF i connecteu la font d’alimentació.

Programació d'Arduino per a TTS (text a veu)
El programa per a aquest TTS basat en Arduino també és molt fàcil, ja que la biblioteca està disponible per a això. Aquesta biblioteca s’anomena Talkie i el gestor de la biblioteca pot afegir-la. Per afegir la biblioteca, aneu a Esbós-> Inclou biblioteca-> Gestiona les biblioteques .

Ara el Gestor de biblioteques apareixerà a la pantalla. A la barra de cerca, escriviu Talkie i feu clic al botó d'instal·lació. La biblioteca s'instal·larà.

Aquesta biblioteca és molt útil i té més de 1000 paraules i ordres. Té diversos exemples, els podeu provar tots, però aquí estem fent servir un codi senzill per explicar el funcionament.
També podeu provar altres ordres donades a la biblioteca. Per obtenir aquestes ordres, aneu a Documents \ Arduino \ libraries \ Talkie \ src i, a continuació, obriu els fitxers de capçalera i obteniu diverses ordres que es poden utilitzar per a diferents alertes. Hi ha moltes altres biblioteques TTS com la biblioteca Tsc de jscrane, la biblioteca Google TTS, etc. També podeu provar-les.
Comencem, doncs, a codificar. En primer lloc, incloeu alguns fitxers de capçalera. Talkie.h s’utilitza per inicialitzar aquesta biblioteca i configurar el pin digital 3 d’Arduino com a pin de sortida. El Vocab_US_Large.h s’utilitza per utilitzar les alertes que estem fent servir i Vocab_Special.h s’utilitza per fer servir la pausa que estem fent servir.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
Ara definiu un "valor" d'objecte per utilitzar les ordres:
Veu de talkie;
Aquí es repetirà el mateix missatge a l'altaveu, de manera que mantingueu la funció de configuració buida i poseu les ordres en funció de bucle. La primera ordre voice.say (spPAUSE2) consisteix a fer una pausa curta mentre es repeteix el missatge d'alerta. I les següents ordres són només paraules simples que impliquen: PERILL TEMPORADA DE PERILL AL 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); }
Finalment, pengeu el codi a l'Arduino i connecteu-hi la font d'alimentació. Tan bon punt engegueu el circuit, començareu a sentir les alertes. Si no obteniu un so clar, proveu d’ajustar el comandament del pot o comproveu si l’Arduino obté una font d’alimentació adequada i assegureu-vos que el GND d’Arduino estigui connectat a terra del circuit.

Consulteu el codi complet amb un vídeo de demostració a continuació.
