Program Speech   zodpovězená otázka

VB.NET

Zdravím,

uživatelé Win XP jistě znají program Speech. Dá se spustit přes ovládací panely a v podstatě neumí nic jiného než říct to co mu napíšete. Přes pár měsíci byla ve zprávách reportář o hackerovi, který vytvořil vir, který pomocí jádra tohoto programu upozornil uživatele, že mi měl začít škudlit na nové PC a poté mu zformátoval HDD. To nepotěší. Mě to však přivedlo na myšlenku vytvoření mluvícího organizéru. Naimportoval jsem referenci tohoto programu (teď si za Boha nevzpomenu jak se jmenuje), ale po debugu jsem byl jako opařený. Klikal jsem zběsile na tlačítko vyvolávající proceduru, která má aplikaci rozmluvit, ale bylo ticho, jen v pozadí hrál WinAmp a ten s tím nemá nic společného. Nejsem si jist, zda jsem referenci správně vložil, ale vím, že jsem nad třídu Form1 zaručeně nevložil řádky Imports... Našel by se někdo, kdo mi poradí jak tu mluvící aplikaci rozchodit? Taky jsem přemýšlel o detekci hlasu (program reaguje na uživatelovi odpovědi), netroufám si na moc velkou kořist? Předem děkuji.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste:

 Public Class Form1
     ' do referencí přidejte knihovnu sapi.dll 
     '(standardně v C:\Program Files\Common Files\Microsoft Shared\Speech)
     Dim Voice As SpeechLib.SpVoice

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     Voice = New SpeechLib.SpVoice
     Voice.Speak("Hello, user. I am your computer!", SpeechLib.SpeechVoiceSpeakFlags.SVSFlagsAsync)
   End Sub
 End Class

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Zdravím

ano, funguje to skvěle. Myslíte si (případně víte jak), že se dá také udělat rozeznávání hlasu uživatele? Myslím to tak, že se příkaz jednou nahraje a poté se určuje zda je vyslovený příkaz shodný s nahraným.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Rozpoznávání hlasu je úkol velice složitý, ještě nikomu se to nepodařilo tak, aby to fungovalo spolehlivě. Nevím o žádné knihovně, která by podobnou funkčnost dělala spolehlivě. Otázkou spíš je, jestli hlasové ovládání bude rychlejší a produktivnější. Obávám se, že nebude. I když je to vychytávka.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokud se vložím do diskuze, jedinou relativně slušnou alternativou je namluvit si text, který se bude porovnávat (popř. vložit jej jako nový text do programu) a poté porovnávat frekvenci (výšky), zda se shodují (i když znamená to vytvořit algoritmus, který dokáže upravit rozsah hodnot)

Kdysi jsem zkoušel něcoobdobného pod VB5 pomocí (snad si dobře vzpomenu) MMC Control a čtení bylo lehké, ovšem naučit jej detekovat bylo obtížné.

pro inspiraci bych doporučil si zkusit najít kódy nějakách slovníků, co kontrolují např,. zkoušení slovíček, nebo např. i Opera se dá ovládat hlasem (ale chce to umět dobře anglicky)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím

myslím, že zůstanu u klasických formulářových prvků. Možná v budoucnu, až budu mít víc času, bych to mohl zkusit. Děkuji za odpovědi.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Problém je právě v tom algoritmu - není to nic jednoduchého. Porovnávat dva vrozky od stejného člověka ještě jde, ale pokud to namluvíte vy a budete chtít, aby to rozpoznávalo stejná slova namluvená někým jiným, bude algoritmus velmi složitý.

Tyto problémy se řeší ve výzkumných ústavech a na univerzitách, nejlepší je asi rozpoznávání řeči ve Windows Vista, které ale musíte nechat "zvyknout si" na váš hlas, aby rozpoznávání bylo použitelné. Asi by to šlo nějak napsat přes MS Speech API, ale vydalo by to na celý seriál, do čehož se mi, přiznám se, moc nechce.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zdravím,

myslím, že článek by byl zbvytečný, protože toto téma je takové zapadlé. Popravdě, moc se mi do toho taky nechce, protože to bude nadlouho a tolik času nemám. Jinak jen dodám, že příkazy by nahrával sám uživatel.

Přeji hezký den

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Není až takový problém použít Speech API pro rozpoznávání hlasu, problém je v tom, že engine pro rozpoznávání je navržený pro mluvenou angličtinu, tudíž s češtinou si neporadí (v nejlepším případě se to bude při rozpoznávání chovat naprosto nekorektně). Viděl sem enginy pro rozpoznávání angličtiny, němčiny, japonštiny, ale nikdy ne češtiny. Stejný problém je i se syntézou řeči - standardně všechno pro angličtinu.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Vyvoj v rozpoznávání hlasu již není omezený na světové jazyky. Je řada i českých projektů. Nejde totiž o zábavu či raritu poručit slovem, ani jen o automatizaci systémů, ale nezbytně o vývoj pomůcek ke zvýšení úrovně života handicapovaných lidí a projekty jsou proto silně dotovány. Některé projekty jsou otevřené spolupráci veřejnosti (GPL, BSD apod.). Bohužel to není téma pro začátečníky.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To možná ano, ale nic z toho není engine pro Speech API v Microsoft Windows...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

S mluvenou angličtinou není problém, já si s angličany rozumím celkem dobře a se software na rozpoznání hlasu též.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

O češtinu nejde, Speech API je univerzální a dá se na něm postavit rozpoznávání i syntéza řeči pro jakýkoliv jazyk. Problém je ale v tom, že když ještě pořádně neumíme syntetizovat ani analyzovat hlas v angličtině, tak Microsoft nebude zatím vyvíjet ani češtinu, kterou mluví zanedbatelné množství lidí.

Něco pro rozpoznávání české řeči určitě je, ale nevyužívá to Speech API. Až takový systém bude hotov, nebude ale zase až takový problém "předělat" to na Speech API, Speech API je jen jakési rozhraní, prostě pár funkcí, které musí program pro rozpoznávání nebo analýzu implementovat.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback