- Szükséges alkatrészek
- Kördiagramm
- Hangszóró csatlakoztatása az Arduino-hoz
- Az Arduino programozása TTS-hez (szövegből beszédbe)
A szövegfelolvasó vagy TTS rendszer a normál szöveget beszéddé alakítja. Ez a technológia lehetővé teszi a rendszer számára, hogy emberi hangon megszólaljon a szöveg. Számos példa van a szövegfelolvasás-konverziókra, például a tömegközlekedési eszközökön megjelenő bejelentésekre, az ügyfélszolgálati hívásokra, az okostelefonok hangsegédjeire vagy bármely gép navigációs menüjére. A TTS-t még a Microsoft Word-ben is megtalálja, ahol úgy állította be, hogy kimondja a dokumentumba írt szöveget.
Ma ebben az oktatóanyagban megtanuljuk, hogyan készítsünk szöveg-beszéd konvertert az Arduino segítségével. Korábban használtuk a TTS-t Raspberry pi-vel az ébresztőóra beszédében, és a beszédet málna pi-ben szöveggé alakítottuk át a Google hangbillentyűzetének használatával is.
A TTS első lépése az előfeldolgozás vagy a normalizálás. Ez a lépés magában foglalja a szimbólumok, számok és rövidítések szavakká történő átalakítását, amelyeket a gépek olvashatnak, például a "?" „kérdőjelre” konvertáljuk.
A második lépés a normalizált szöveg fonémákká vagy fonetikus átiratokká alakítását jelenti. A fonémák a kimondott szavak apró részei, azaz ezek azok a hangok, amelyek mondatokat alkotnak. Ez a lépés valóban elengedhetetlen ahhoz, hogy a gép úgy beszélhessen, mint az emberek.
Az utolsó lépés a fonémák szintetizálása beszélt hanggá. Ez a lépés különböző módszerekkel érhető el, például az emberi hang különböző szavakhoz / kifejezésekhez történő rögzítésével, vagy az alapvető hangfrekvenciák létrehozásával és fonémaként történő felhalmozásával, vagy az emberi beszéd mechanizmusának másolásával.
Szükséges alkatrészek
- Arduino tábla
- Egy hangszóró
- Erősítő áramkör
- Szabályozott tápegység
- Vezetékek csatlakoztatása
Kördiagramm
Ebben a szöveg-beszéd átalakítóba egy erősítő áramkört használtunk a zaj csökkentése és a tiszta hang elérése érdekében. Az erősítő áramkört az IC LM386 IC segítségével állítják elő. A kapcsolási rajz az alábbiakban látható:
100K potot használunk a hang beállításához. Állítsa be, hogy tiszta hangot kapjon. Ha bármilyen zavara van ezzel az áramkörrel kapcsolatban, akkor nézze meg az LM386 alapú hangerősítő áramkört. Ha nincs pontos ellenállások és kondenzátorok értéke, akkor használja a közeli értéket.
Hangszóró csatlakoztatása az Arduino-hoz
Az erősítő áramkörének elkészítése után a csatlakozás rendkívül egyszerű.
Csatlakoztassa az áramellátást az erősítő áramkörhöz, és csatlakoztassa Arduino digitális 3-as érintkezőjét 10K ellenálláshoz, és csatlakoztassa az Arduino földjét az áramkör földjéhez. Most csatlakoztassa a hangszórót úgy, hogy negatív kivezetését a földhöz, a pozitív csatlakozóját pedig a 220µF kondenzátorhoz köti, és csatlakoztassa az áramellátást.
Az Arduino programozása TTS-hez (szövegből beszédbe)
Ennek az Arduino alapú TTS-nek a programja is nagyon egyszerű, mivel a könyvtár erre rendelkezésre áll. Ezt a könyvtárat Talkie- nak hívják, és a könyvtárkezelő hozzáadhatja. A könyvtár hozzáadásához lépjen a Sketch-> Include Library-> Mange Libraries oldalra .
Most a Könyvtárkezelő jelenik meg a képernyőn. A keresősávba írja be a Talkie parancsot, és kattintson a telepítés gombra. A könyvtár telepítésre kerül.
Ez a könyvtár nagyon hasznos, és több mint 1000 szót és parancsot tartalmaz. Számos példája van, mindegyiket kipróbálhatja, de itt egy egyszerű kódot használunk a működés magyarázatára.
Kipróbálhat más, a könyvtárban megadott parancsokat is. Ezeknek a parancsoknak a megszerzéséhez lépjen a Documents \ Arduino \ libraries \ Talkie \ src oldalra , majd nyissa meg a fejlécfájlokat, és szerezzen be több parancsot, amelyek különböző riasztásokhoz használhatók. Sok más TTS könyvtár létezik, mint például a jscrane TTS könyvtár, a Google TTS könyvtár stb. Kipróbálhatja őket is.
Kezdjük tehát a kódolást. Először tartalmazzon néhány fejlécfájlt. A Talkie.h a könyvtár inicializálására és az Arduino 3-as digitális érintkezőjének kimeneti tűként történő beállítására szolgál. A Vocab_US_Large.h az általunk használt riasztások használatára szolgál, a Vocab_Special.h pedig az általunk használt szünet használatára.
#include "Talkie.h" #include "Vocab_US_Large.h" #include "Vocab_Special.h"
Most adjon meg egy objektum „értéket” a parancsok használatához:
Talkie hangja;
Itt ugyanazt az üzenetet ismételjük meg a hangszóróban, ezért tartsa üresen a beállítási funkciót, és helyezze a parancsokat ciklus funkcióba. Az első voice.say (spPAUSE2) parancs rövid szünetet tart, miközben megismétli a riasztási üzenetet. A következő parancsok pedig csak egyszerű szavak, amelyek a következőket sugallják: VESZÉLY VESZÉLY ÉRTÉKBEN.
void setup () { } void loop () { voice.say (spPAUSE2); hang.mondd (sp2_DANGER); hang.mondd (sp2_DANGER); hang.mondd (sp3_STORM); hang.mondd (sp3_IN); hang.mondd (sp3_THE); hang.mondd (sp3_NORTH); }
Végül töltse fel a kódot az Arduino-ba, és csatlakoztassa hozzá a tápegységet. Amint bekapcsolja az áramkört, hallani fogja a figyelmeztetéseket! Ha nem kap tiszta hangot, próbálja meg beállítani a pot gombját, vagy ellenőrizze, hogy az Arduino megfelelő áramellátást kap-e, és ellenőrizze, hogy az Arduino GND-je csatlakozik-e az áramkör földjéhez.
Ellenőrizze a teljes kódot egy bemutató videóval.