- Vereiste componenten
- Schakelschema
- Luidspreker verbinden met Arduino
- Arduino programmeren voor TTS (Text To Speech)
Het tekst-naar-spraak- of TTS-systeem zet normale tekst om in spraak. Met deze technologie kan het systeem de tekst met een menselijke stem uitspreken. Er zijn veel voorbeelden van tekst-naar-spraak-conversies, zoals de aankondigingen in het openbaar vervoer, de telefoontjes naar de klantenservice, spraakassistenten op uw smartphones of het navigatiemenu van een machine. U kunt de TTS zelfs in Microsoft Word vinden, waar u deze instelt om de tekst uit het document uit te spreken.
Vandaag zullen we in deze tutorial leren hoe je een tekst-naar-spraak-converter kunt maken met Arduino. We gebruikten eerder TTS met Raspberry pi bij het spreken van een wekker en zetten ook spraak om in tekst in Raspberry Pi met behulp van het Google-spraaktoetsenbord.
De eerste stap in TTS is voorbewerking of normalisatie. Deze stap omvat de omzetting van de symbolen, cijfers en afkortingen in woorden die door de machines kunnen worden gelezen, zoals '?' wordt omgezet in "vraagteken".
De tweede stap omvat de omzetting van genormaliseerde tekst in fonemen of fonetische transcripties. De fonemen zijn de kleine delen van gesproken woorden, dwz dit zijn de geluiden die zinnen maken. Deze stap is echt essentieel, zodat de machine de woorden kan uitspreken zoals mensen dat doen.
De laatste stap is de synthese van fonemen in gesproken stem. Deze stap kan worden bereikt door verschillende methoden, zoals door de menselijke stem op te nemen voor verschillende woorden / zinnen of door basisgeluidsfrequenties te genereren en ze op te stapelen als fonemen of door het menselijke spreekmechanisme te kopiëren.
Vereiste componenten
- Arduino-bord
- Een luidspreker
- Een versterkercircuit
- Gereguleerde stroomvoorziening
- Verbindingsdraden
Schakelschema
Hier in deze tekst-naar-spraak-converter hebben we een versterkercircuit gebruikt om de ruis te verminderen en een helder geluid te krijgen. Het versterkercircuit is gemaakt met behulp van de IC LM386. Het schakelschema wordt hieronder weergegeven:
Een 100K pot wordt gebruikt om het geluid aan te passen. Pas het aan om een helder geluid te krijgen. Als je enige verwarring hebt over dit circuit, bekijk dan het LM386 Based Audio Amplifier Circuit. Als je niet de exacte waarde van weerstanden en condensatoren hebt, gebruik dan de dichte waarden.
Luidspreker verbinden met Arduino
De aansluitingen zijn supergemakkelijk als je eenmaal het versterkercircuit hebt gemaakt.
Sluit de voeding aan op het versterkercircuit en sluit de digitale pin 3 van je Arduino aan op 10K weerstand en verbind de aarde van Arduino met aarde van het circuit. Verbind nu de luidspreker door de negatieve pool met aarde en de plus met de 220 µF condensator te verbinden en sluit de voeding aan.
Arduino programmeren voor TTS (Text To Speech)
Het programma voor deze op Arduino gebaseerde TTS is ook erg eenvoudig aangezien de bibliotheek hiervoor beschikbaar is. Deze bibliotheek wordt Talkie genoemd en kan door bibliotheekbeheerder worden toegevoegd. Om de bibliotheek toe te voegen, gaat u naar Sketch-> Bibliotheek opnemen-> Mange-bibliotheken .
Nu verschijnt de Bibliotheekbeheerder op uw scherm. Typ Talkie in de zoekbalk en klik op de installatieknop. De bibliotheek wordt geïnstalleerd.
Deze bibliotheek is erg handig en heeft meer dan 1000 woorden en opdrachten. Het heeft verschillende voorbeelden, je kunt ze allemaal proberen, maar hier gebruiken we een eenvoudige code om de werking uit te leggen.
U kunt ook andere opdrachten uit de bibliotheek proberen. Om die commando's op te halen, ga je naar Documents \ Arduino \ libraries \ Talkie \ src en open je de header-bestanden en verkrijg je verschillende commando's die kunnen worden gebruikt voor verschillende waarschuwingen. Er zijn veel andere TTS-bibliotheken zoals jscrane TTS-bibliotheek, google TTS-bibliotheek enz. Je kunt ze ook uitproberen.
Dus laten we beginnen met coderen. Voeg eerst enkele headerbestanden toe. Talkie.h wordt gebruikt om deze bibliotheek te initialiseren en de digitale pin 3 van Arduino als outputpin in te stellen. De Vocab_US_Large.h wordt gebruikt om de waarschuwingen die we gebruiken te gebruiken en Vocab_Special.h wordt gebruikt om de pauze te gebruiken die we gebruiken.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
Definieer nu een object 'waarde' om de opdrachten te gebruiken:
Talkie stem;
Hier wordt hetzelfde bericht herhaald in de luidspreker, dus laat de setup- functie leeg en zet de commando's in de loop-functie. Het eerste commando voice.say (spPAUSE2) is om een korte pauze te nemen tijdens het herhalen van het waarschuwingsbericht. En de volgende commando's zijn slechts simpele woorden die impliceren: GEVAAR GEVAAR STORM IN HET NOORDEN.
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); }
Upload tenslotte de code in de Arduino en sluit hier de voeding op aan. Zodra je het circuit opstart, hoor je de waarschuwingen! Als je geen duidelijk geluid krijgt, probeer dan de knop van de pot aan te passen of controleer of de Arduino de juiste voeding krijgt en zorg ervoor dat de GND van de Arduino is verbonden met de aarde van het circuit.
Controleer de volledige code met een demonstratievideo hieronder.