Szinkronizálja a száját; egy humanoid robot, a Quai Lab
Ez a cikk megoldást nyújt a szinkronizálja a robot szája mozgását humanoid a hangjával. A hang valós időben kerül feldolgozásra egy nem erősített forráson: PC, telefon, tablet kimenet stb.
A cél egy szervomotor vezérlése, amely működteti a fang függőleges tengelyén a nyitást/zárást. Ez a mozgás nagyon leegyszerűsödik az ajkak/állkapcsok mozgatásához képest ... A realizmus érdekében a fonémák felismerésére is szükség lenne, hogy utánozzák a kiejtésüket, figyelembe véve a beszélt nyelvet is (angol, francia stb. .).

Ez kívül esik témánkon, itt elégedettek leszünk egy olyan hatással, amely közel áll ahhoz, amelyet a bábosok és a hasbeszélők animációval a kezükkel produkálnak.
Töltse le az Arduino kódot InMoov szájszinkron
Sok játék szimulálja a száj mozgását, nem kellett sokáig keresgélnem, hogy a gyerekjátékokban találjak egy Barbie-t jack csatlakozóval az audio csatlakozáshoz, aminek egy pillanatig reménykedtem abban, hogy helyreállítsam az áramkört ... de sajnos a a szinkronizálás csak a két vagy három előre rögzített mondaton működik megfelelően.
Ez a fajta játék valószínűleg a memóriában hajtja végre a mozdulatokat, elkerülve ezzel a jelfeldolgozást. Kár ... de legalább Barbie-t megmentették 🙂
Az elv megmaradt
Hangértékek között hanghang ingadozik negatív és pozitív többé-kevésbé nagy amplitúdóval. A szervomotor vezérléséhez kiszámoljuk az RMS-nek (angolul Root Mean Square) is nevezett jel effektív teljesítményét (wattban) annak érdekében, hogy kisebb-nagyobb amplitúdót kapjunk az állkapocs nyílásához a hang ereje szerint. A rendszer önkalibrál, zárt szájjal és a szervomotor lekapcsolásával, ha nincs hang.
Megadom a képletet az RMS kiszámításához egy függvény számára egy T1 és T2 közötti intervallumban.
F (t) a mintavételezett hangjelünkkel és (T1-T2) mintavételezésünk időtartama.
Néhány emlékeztető a hangról:
A hang frekvenciája között van 800 Hz és 3 kg Hz (az emberi fül észleli a frekvenciákat egészen 20 khz).
Az audio jel a számítógép kimenetén elég gyenge, általában -0,5 és + 0,5v, és fel kell erősíteni, amikor kimenetet külsõ hangsugárzókhoz küldenek.
A jel digitalizálásának minimális frekvenciájának a jelének kétszerese kell lennie, hogy ne legyen veszteség (Nyquist - Shannon mintavételi tétel), CD-n a hangot 44,1 kHz-en 16 biten is mintázzák.
Az audio jel vizualizálása a bemeneten (piros) és 0,5 V eltolás után készen áll a digitalizálásra
Célunk, hogy ezt a rendszert Arduino Uno alapon építsük fel, tudjuk, hogy az arduino analóg bemenetei (A0-A5) 0 és 5v közötti feszültséget mérnek 10 biten, azaz 1024 értéken.