Hlasové ovládání

Je tu další článek pro hardwarové kutily a bastlíře. Pokud patříte mezi lidi, pro které nejsou pojmy jako tranzistor, rezistor, páječka a Amiga neznámé věci, je to právě ten pravý článek pro vás.

Známe to z filmů (třeba z Mouchy :), někdo to má na mobilu, a občas slyšíme, že to snad dnes umí i PC. Hlasové ovládání. Zatímco u mobilu je to věc celkem nanic, protože paměť mobilu je na hlasové vytáčení celkem malá, u počítače to může být i poměrně užitečná věc. Prostě jenom s ležérní nedbalostí vyslovíme jméno nějakého programu a on se sám spustí. Možná si myslíte, že tohle je na Amize utopie. Není. Dokonce hlasové ovládání funguje a bylo možné ho na Amize provozovat již v době kdy většina PCčkářů ještě snila o okenním systému :). Pokud vás to fascinuje stejně jako mě a chcete vědět jak na to, čtěte dál.

První co je potřeba je samozřejmě Amiga. Postačí i holá A1200, ale lepší samozřejmě není k zahození :) Dále je nutný nějaký hardware, pomocí kterého dostaneme náš hlas do počítače v digitální podobě. Tady je nutný nějaký sampler. Postačí samozřejmě klasický osmibitový na paralelní port a ani nemusí být stereo. Já sám vlastním sound sampler HDP, ale můžete mít i jiný, případně si nějaký můžete vyrobit podle nějakého plánku z internetu. Každý jak je mu libo.

Takže okruh zájemců se nám snížil na lidi mající Amigu a sampler. Ale pojďme dál. Protože vstup sampleru je poměrně málo citlivý na výstup ze samotného mikrofonu, je celkem dobré pořídit si mezi sampler a mikrofon nějaký předzesilovač. Tady máte na výběr celou škálu zapojení, ale pokud chcete něco vyzkoušeného co funguje, můžete použít to co mám i já. Výhodou celého zapojení je to, že je můžete sehnat i jako stavebnici za nějakých 170,- KČ, třeba od firmy Compo. V ceně je vyvrtaný tištěný spoj součástky včetně citlivého elektretového mikrofonu a návod. Jedná se o stavebnici J-211 Malý odposlouchávač. Pokud jste už něco někdy letovali, nemělo by být sestavení tohohle zařízení žádný problém. Samozřejmě pokud si pořídíte součástky zvlášť přijde to levněji, takže pokud se k tomu odhodláte, můžete to zkusit podle plánku. Protože ovšem předpokládám, že si přece jen radši zakoupíte stavebnici, nebudu se svépomocnou stavbou mnoho zabývat. Na přiloženém schématu je uvedeno prakticky vše potřebné a v případě problémů mě můžete zkontaktovat. Bohužel i stavebnice přináší některá úskalí.

První věc jsou rozměry. Protože plošný spoj je už daný, musíte si dobře rozmyslet do jaké krabičky samotnou elektroniku usadíte. S tím souvisí i to, že je možné nahradit poměrně velký potenciometr P1 o poznání menším odporovým trimrem. U hlasového ovládání totiž není nutné měnit příliš často hlasitost výstupu, proto může být ovladač hlasitosti schován uvnitř. Další věc je zapínání. Osobně jsem je vyřešil jedním vypínačem a jedním tlačítkem, které jsou zapojeny paralelně. To je proto, aby bylo možno buď nechat hlasové ovládání zapnuté stále, nebo pouze při stisku tlačítka pokud je třeba.

Pokud ovšem budete používat k zapínání tlačítko, je třeba dořešit ještě jednu konstrukční maličkost. Totiž elektolitický kondenzátor C5 má poměrně velkou velikost (100uF) a to způsobuje určitou prodlevu po zapnutí než se nabije. A to pro požití tlačítka není moc vhodné. Zkrátka byste museli po každém stisku čekat asi minutu a pak teprve mluvit. To lze obejít snížením kondenzátoru na hodnotu 1uF.

No a poslední problémek (nebojte dál budou jen pozitiva :) se týká napájení. Nejjednodušší je použít baterii 9V, ale stejně dobře můžete použít i 12V, které lze například s úspěchem vyvést ze zdroje, pokud máte Amigu v toweru. Nebojte se, zařízení by to mělo vydržet :)

Hardware by tedy byl, takže můžeme jít na software. Na hlasové ovládání existují na Amize pokud vím dva programy. VCLI a VoiceShell.

Oba dva programy mají celkem skromné nároky. Stačí jim Amiga (čím lepší tím lepší, ale alespoň s procesorem 68020) s kikstartem 2.04, knihovny intuition.library a gadtools.library v38 a lepší. V podstatě nic, co by už dnes nikdo standardně neměl. Podstatná je ovšem knihovna voice.library, na které vlastně hlasové ovládání stojí a padá, nicméně ta je součástí archivu. Potom stačí program hodit nejlépe do adresáře WBStartup, aby byl připraven na použití při každém startu, udělat pár nastavení a je to.

Oba programy jsou si velmi podobné, v podstatě je VoiceShell vylepšeným VCLI takže začneme právě jeho popisem. Poslední verze VoiceShellu pokud je mi známo je 1.33. Na Aminetu byla (a pravděpodobně ještě i je) i starší verze 1.22. Ta je samozřejmě také použitelná, nicméně jedná se o jeden z mála programů, který se totálně nepohodne s OS3.9. Verze 1.33 je novější a lepší a navíc tímto neduhem netrpí. Autorem VoiceShellu je Tomi Blinnikka, který pochází z Finska. VoiceShell je shareware a za jeho používání požaduje autor od 5 do 10 amerických dolarů. Nicméně nepřipadá mi, že by byl program nějak omezen :) VoiceShell se chová jako komodita, a po jeho spuštění nemusíte tudíž vidět žádné okénko a nemusíte tedy mít ani ponětí, že je něco takového v systému. VoiceShell si ovšem může svoje okno otevřít, to lze nastavit v tooltypech klasickou položkou CX_POPUD=YES. V tomto okně můžete aktivovat a nebo vypnout samotné hlasové ovládání.

První věc, kterou je třeba udělat po spuštění VoiceShellu je nastavit si sampler a věci kolem. K tomu slouží položka menu SETUP -> CONFIGURATION. Nejdříve si nastavíme typ sampleru. To je nutné vyzkoušet. Na výběr je zde PerfectSound, SoundMaster, GVP DSS 8, nebo Generic. Můj sampler HDP funguje nastavení jako SoundMaster, nicméně je možné i to, že u některého sampleru nebude vyhovovat ani jedno nastavení a hlasové ovládání se tím pádem na Amize pravděpodobně nezrealizuje :(

Dále si můžeme nastavit například nastavení kanálu, která chceme použít (pravý nebo levý), rozlišení zvuku (vysoké nebo nízké), přesnost rozpoznávání (ACCURACY) atd. U té přesnosti bych se ještě chvíli zastavil. Je totiž celkem důležitá. Pokud ji nastavíte příliš vysokou, bude od vás program vyžadovat příliš věrný zvuk. Naopak při nízké přesnosti, se vám zase může stát, že program nebude schopen přesně určit, co vlastně chcete. Takže nezbývá než experimentovat a experimentovat, dokud nebude spokojenost ....

Po základním nastavení můžeme přistoupit k tomu nejdůležitějšímu - k základnímu nastavení příkazů. Příkazy se nastavují pod položkou menu COMMANDS z menu EDIT. Po jejím zvolení se vám objeví tabulka s celkem 10 řádky, což může někomu zdát málo. To je ovšem zdání, které klame. Pokud totiž stisknete pravé tlačítko myši, dostanete se do menu, kde lze přepínat mezi celkem šesti takovýmito tabulkami, to je celkem 60 různých příkazů. Do první části tabulky se napíše název programu, který má být spouštěn hlasem. Pokud jde o ten název, tak fantazii se meze nekladou, nicméně doporučuji napsat to, co budete opravdu vyslovovat, protože až budete mít těch programů víc bude v tom možná pěkný guláš a je lepší mít v tom trochu pořádek a vědět co je vlastně co.

Po potvrzení enterem se vám objeví tabulka s učením daného slova. No a nyní přijde hodina pravdy. Pokud je vše dobře nastaveno a sampler je "ten správný co funguje" je vidět po spuštění namlouvání a vyslovení slova křivka. Poté vyslovíte prostě třikrát postupně slova, kterými chcete program spustit, pokud možno vždy stejným hlasem, potvrdíte a je to. V případě, že se žádná křivka nekoná, máte buď smůlu nebo musíte nastavovat nějak jinak a lépe :)

Po namluvení ještě musíte zadat do druhé části tabulky cestu ke spouštěnému programu, no a po potvrzení OK je to v podstatě všechno. Ještě je celkem rozumné uložit někam vámi pracně získanou konfiguraci a teď by se po ležérním vyslovení toho co jste si namluvili měl spustit konkrétní program, dle zadané cesty. Pokud vše funguje jak má můžete pokračovat až do namluvení celé tabulky. Program navíc disponuje i Arrexovým portem, takže se lze celkem vyřádit.

To je v podstatě všechno. Vlastně ještě ne. Ještě bych měl zmínit jednu věc, a to možnost nastavení při chybách. V menu EDIT v položce ERRORS lze nastavit chování programu při různých chybách. Oni to vlastně nejsou chyby ani tak programové, jako spíš funkční. Například pokud program nerozpozná hlasový příkaz. To může být celkem užitečné. Já sám mám nastaveno to, aby se při jakékoliv chybě zobrazilo okno programu, ale fantazii se samozřejmě meze nekladou.

To by bylo o programu VoiceShell asi vše a teď se podíváme na VCLI. Protože se jedná o prakticky velmi podobný program, bude to rychlé. VCLI je už opravdu velmi starý program. Jeho první verze se objevila už na disku Freda Fishe číslo 542 přesně 13.září 1991. Narozdíl od VoiceShellu se nejedná o komoditu. Na obrazovce Workbenche se po startu objeví jeho okno. Vše ostatní je potom již v podstatě hodně podobné, jak by také ne, když VCLI je vlastně předchůdcem VoiceShellu. Na rozdíl od něj však VCLI potřebuje víc strojového času procesoru, ale na druhou stranu ho jeho autor Richard Horne uvolnil jako freeware "pro radost Amigácké komunity," jak sám píše :)

Nicméně vzhledem k tomu, že VoiceShell je přece jenom novější a propracovanější, doporučil bych vám spíše tento program.

A jak je to se stabilitou a zkušenostmi z provozu? Celkem dobré. Program mi za půl roku používání neudělal nic nepěkného. Jediný menší problémek, na která jsem přišel je to, že při jeho používání mi nefunguje hudba u hry Deluxe Galaga :(

Samotné hardwarové řešení má také své mouchy. Vlastně jen jednu. Vzhledem k tomu, že audiosampler blokuje paralelní port, nemůže se tento na nic požívat. To zamrzí. Hlavně pokud jste vlastníkem tiskárny a často ji využíváte. Přehazovat stále kabel tiskárny a sampler není nic příjemného. I to by se samozřejmě dalo řešit nějakým hardwarovým přepínačem. Možná se o něco takového někdy i pokusím a kdyžtak vám dám vědět :)

A co zkušenosti se samotným provozem hlasového spouštění programů? Pokud si vše optimálně nastavíte, budete překvapeni, jak snadno a rychle se spouští veškeré aplikace. Určité problémy jsou pouze u ne často používaných programů, kdy se snadno zapomene, jak jste si je vlastně namluvili a musíte je stejně pouštět klasicky. Určitý problém je i to, pokud pro nějaký program používáte podobné slovo, potom se někdy spustí ten druhý. Už i proto doporučuji používat při hlasovém ovládání tlačítko a nenechávat je zapnuté stále. Pokud totiž při zapnutém programu začnete normálně s někým mluvit, program VoiceShell některá vaše slova muže vyhodnotit jako povel ke spuštění a vy se potom nestačíte divit, co všechno se vám najednou rozjíždí :)

Takže na závěr hlasové ovládání Amigy je minimálně zajímavá věc, která kromě vyvolávání údivu mezi PCčkáři může i dobře sloužit. A se svou Amigou si konečně můžete i plnohodnotně popovídat. Lze si dokonce udělat pár skriptů, aby vám počítač i odpovídal :) Nicméně někdy to může vyvolat u jiných lidí i ten pocit, že jste se zbláznili. To až se z v vašeho pokoje bude ozývat nějaký váš slovní úlet. Takže pozor na to :)

Mimochodem autor tohoto článku samozřejmě nijak neručí za vaši ohořelou Amigu. Vše co budete podle tohoto článku dělat, děláte na vlastní nebezpečí :)

Flegy