• Ako povoliť rozpoznávanie hlasu offline. Rozpoznávanie reči pomocou desktopových aplikácií .NET Rozpoznávanie reči offline pre Android

    12.12.2021

    Produkty a technológie:

    Visual Studio, C#, knižnice reči .NET

    Článok sa zaoberá:

    • pridanie podpory rozpoznávania reči do konzolovej aplikácie;
    • rozoznateľné spracovanie reči;
    • inštalácia knižníc na rozpoznávanie reči;
    • porovnanie Microsoft.Speech a System.Speech;
    • pridanie podpory rozpoznávania reči do aplikácie Windows Forms.

    S príchodom Windows Phone Cortana, osobnej asistentky aktivovanej rečou (rovnako ako náprotivok ovocinárskej spoločnosti, ktorú netreba nadarmo spomínať), sa aplikácie s podporou reči stávajú čoraz dôležitejšou súčasťou vývoja softvéru. V tomto článku vám ukážem, ako začať s rozpoznávaním a syntézou reči v aplikáciách konzoly Windows, aplikáciách Windows Forms a Windows Presentation Foundation (WPF).

    Všimnite si, že do aplikácií pre Windows Phone, webových aplikácií ASP.NET, aplikácií pre Windows Store, Windows RT a Xbox Kinect môžete pridať aj funkcie reči, ale techniky sa líšia od techník popísaných v tomto článku.

    Dobrým spôsobom, ako pochopiť, o čom presne sa bude diskutovať v tomto článku, je pozrieť sa na snímky obrazovky dvoch rôznych demo programov na stránke ryža. jeden a 2 . Po spustení konzolovej aplikácie ryža. jeden okamžite povie frázu „som hore“. Samozrejme, demo aplikáciu počas čítania tohto článku nebudete počuť, takže zobrazuje text toho, čo počítač hovorí. Používateľ potom povie príkaz „Speech on“. Demo aplikácia odpovie rozpoznaným textom a následne interne počúva a reaguje na požiadavky na pridanie dvoch čísel.

    Ryža. 1. Rozpoznávanie a syntéza reči v konzolovej aplikácii


    Ryža. 2. Rozpoznávanie reči v aplikácii Windows Forms

    Používateľ požiadal aplikáciu, aby pridala jednotku a dve, potom dve a tri. Aplikácia rozpoznávala hovorené príkazy a dávala odpovede hlasovým spôsobom. Neskôr popíšem užitočnejšie spôsoby využitia rozpoznávania reči.

    Ďalej používateľ povedal „Speech off“, hlasový príkaz, ktorý deaktivuje počúvanie príkazov na pridávanie čísel, ale úplne nevypne rozpoznávanie reči. Po tomto slovnom príkaze bol nasledujúci príkaz na sčítanie jednotky a dvojky ignorovaný. Nakoniec používateľ znova povolil počúvanie príkazov a povedal nezmyselný príkaz „Klatu barada nikto“, ktorý aplikácia rozpoznala ako príkaz na úplnú deaktiváciu rozpoznávania reči a ukončenie sa sama.

    Na ryža. 2 zobrazuje aplikáciu Windows Forms s povolenou fiktívnou rečou. Táto aplikácia rozpoznáva hovorené príkazy, no nereaguje na ne hlasovým výstupom. Pri prvom spustení aplikácie nebolo začiarknuté políčko Speech On, čo znamená, že rozpoznávanie reči nebolo aktívne. Používateľ zaškrtol toto políčko a potom povedal „Ahoj“. Aplikácia reagovala zobrazením rozpoznaného textu v ovládacom prvku ListBox v spodnej časti okna.

    Používateľ potom povedal „Nastaviť textové pole 1 na červené“. Aplikácia rozpoznala reč a odpovedala „Nastaviť textové pole 1 červené“, čo je takmer (ale nie celkom) presne to, čo používateľ povedal. Hoci na ryža. 2 nevidíte, text v ovládacom prvku TextBox v hornej časti okna je skutočne červený.

    Potom používateľ povedal: „Nastavte textové pole 1 na biele“. Aplikácia to rozpoznala ako „nastaviť textové pole 1 biele“ a urobila to. Nakoniec používateľ povedal „Good-bye“ a aplikácia tento text zobrazila, no s Windows Forms neurobila nič, hoci mohla napríklad vymazať príznak Speech On.

    Použitie objektu syntetizátora je celkom jednoduché.

    V nasledujúcich častiach vás prevediem procesom vytvárania oboch demo programov vrátane inštalácie požadovaných knižníc reči .NET. Tento článok predpokladá, že máte aspoň strednú úroveň programovacích zručností, ale nič o rozpoznávaní a syntéze reči.

    Pridanie podpory rozpoznávania reči do konzolovej aplikácie

    Ak chcete vytvoriť ukážku zobrazenú v ryža. jeden, spustil som Visual Studio a vytvoril som novú konzolovú aplikáciu C# s názvom ConsoleSpeech. Nástroje reči som úspešne používal s Visual Studio 2010 a 2012, ale mala by fungovať každá relatívne novšia verzia. Po načítaní kódu šablóny do editora som v okne Solution Explorer premenoval súbor Program.cs na popisnejší ConsoleSpeechProgram.cs a Visual Studio mi premenovalo triedu Program.

    Ďalej som pridal odkaz na súbor Microsoft.Speech.dll, ktorý sa nachádza v C:\ProgramFiles (x86)\Microsoft SDKs\Speech\v11.0\Assembly. Táto knižnica DLL v mojom počítači chýbala a musel som si ju stiahnuť. Inštalácia súborov potrebných na pridanie rozpoznávania reči a syntézy do aplikácie nie je taká triviálna. Proces inštalácie podrobne vysvetlím v ďalšej časti, ale teraz predpokladajme, že máte vo svojom systéme súbor Microsoft.Speech.dll.

    Pridaním odkazu na rečovú knižnicu DLL som odstránil všetky príkazy pomocou z hornej časti kódu, s výnimkou najvyššieho, ktorý ukazuje na priestor názvov systému. Potom som pridal pomocou príkazov pre menné priestory Microsoft.Speech.Recognition, Microsoft.Speech.Synthesis a System.Globalization. Prvé dva menné priestory sú mapované na rečovú knižnicu DLL. Všimnite si, že existujú aj menné priestory ako System.Speech.Recognition a System.Speech.Synthesis, ktoré môžu byť mätúce. Čoskoro vysvetlím rozdiel medzi nimi. Priestor názvov Globalizácia bol k dispozícii predvolene a nevyžadoval pridanie nového odkazu do projektu.

    Celý zdrojový kód pre demo konzolovú aplikáciu nájdete na ryža. 3 a je k dispozícii aj v zdrojovom balíku, ktorý je priložený k tomuto článku. Odstránil som všetko štandardné spracovanie chýb, aby som čo najviac nezakryl hlavné myšlienky.

    Ryža. 3. Zdrojový kód aplikácie demo konzoly

    pomocou systému; pomocou Microsoft.Speech.Recognition; pomocou Microsoft.Speech.Synthesis; pomocou System.Globalization; menný priestor ConsoleSpeech ( class ConsoleSpeechProgram ( statický SpeechSynthesizer ss = nový SpeechSynthesizer(); statický SpeechRecognitionEngine sre; statický bool done = false; statický bool speechOn = true; static void Main(string args) ( try ( ss.SetOuneLidioDevice.Default) ("\n(Hovorím: som hore)"); ss.Speak("Som hore"); CultureInfo ci = new CultureInfo("en-us"); sre = new SpeechRecognitionEngine(ci); sre.SetInputToDefaultAudioDevice( ); sre.SpeechRecognized += sre_SpeechRecognized; Voľby ch_StartStopCommands = new Choices(); ch_StartStopCommands.Add("reč je zapnutá"); ch_StartStopCommands.Add("reč vypnutá"); ch_Start_StartStartopBumands); = new GrammarBuilder(); gb_StartStop.Append(ch_StartStopCommands); Grammar g_StartStop = new Grammar(gb_StartStop); Choices ch_Numbers = new Choices(); ch_Numbers.Add("1"); ch_Numbers.;Ch_Numbers.Add Add("3"); ch_Numbers.Add("4"); GrammarBuilder gb_WhatI sXplusY = new GrammarBuilder(); gb_WhatIsXplusY.Append("Čo je"); gb_WhatIsXplusY.Append(čísla_ch); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(čísla_ch); Gramatika g_WhatIsXplusY = new Grammar(gb_WhatIsXplusY); sre.LoadGrammarAsync(g_StartStop); sre.LoadGrammarAsync(g_WhatIsXplusY); sre.RecognizeAsync(RecognizeMode.Multiple); while (hotovo == false) ( ; ) Console.WriteLine("\nHit< enter >zatvorte shell\n"); Console.ReadLine(); ) catch (Exception ex) ( Console.WriteLine(ex.Message); Console.ReadLine(); ) ) // Hlavná statická void sre_SpeechRecognized(odosielateľ objektu, SpeechRecognizedEventArgs e ) ( string txt = e.Result.Text; float dôvera = e.Result.Confidence; Console.WriteLine("\nRozpoznané: " + txt); if (dôvera< 0.60) return; if (txt.IndexOf("speech on") >= 0) ( Console.WriteLine("Reč je teraz ZAPNUTÁ"); speechOn = true; ) if (txt.IndexOf("reč je vypnutá") >= 0) ( Console.WriteLine("Reč je teraz VYPNUTÁ"); speechOn = false; ) if (speechOn == false) return; if (txt.IndexOf("klatu") >= 0 && txt.IndexOf("barada") >= 0) ( ((SpeechRecognitionEngine)odosielateľ).RecognizeAsyncCancel(); done = true; Console.WriteLine("(Hovorí: Zbohom)"); ss.Speak("Zbohom"); ) if (txt.IndexOf("Čo") >= 0 && txt.IndexOf("plus") >= 0) (reťazcové slová = txt.Split(" "); int num1 = int.Parse(slová); int num2 = int.Parse(slová); int sum = num1 + num2; Console.WriteLine("(Vyslovené: " + slová + " plus " + slová + " sa rovná " + súčet + ")"); ss.SpeakAsync(slová + " plus " + slová + " rovná sa " + súčet); ) ) // sre_SpeechRecognized ) // Program ) // ns

    Po príkazoch using začne demo kód takto:

    menný priestor ConsoleSpeech ( trieda ConsoleSpeechProgram ( statický SpeechSynthesizer ss = nový SpeechSynthesizer(); statický SpeechRecognitionEngine sre; statický bool done = false; statický bool speechOn = true; static void Main(string args) ( ...

    Objekt SpeechSynthesizer na úrovni triedy umožňuje aplikácii syntetizovať reč. Objekt SpeechRecognitionEngine umožňuje aplikácii počúvať a rozpoznávať hovorené slová alebo frázy. Booleovská premenná done určuje, kedy sa aplikácia ako celok skončí. Booleovská premenná speechOn riadi, či aplikácia počúva nejaké príkazy iné ako príkaz na ukončenie programu.

    Ide o to, že konzolová aplikácia neakceptuje vstup z klávesnice, takže vždy počúva príkazy. Ak je však speechOn nepravda, rozpozná a vykoná sa iba príkaz na ukončenie programu; ostatné príkazy sú rozpoznané, ale ignorované.

    Hlavná metóda začína takto:

    try ( ss.SetOutputToDefaultAudioDevice(); Console.WriteLine("\n(Hovorím: som hore)"); ss.Speak("Som hore");

    Inštancia objektu SpeechSynthesizer bola vytvorená, keď bol deklarovaný. Použitie objektu syntetizátora je celkom jednoduché. Metóda SetOutputToDefaultAudioDevice odosiela výstup do reproduktorov pripojených k vášmu počítaču (výstup je možné odoslať aj do súboru). Metóda Speak vezme strunu a potom ju hovorí. Takto je to jednoduché.

    Rozpoznávanie reči je oveľa náročnejšie ako jej syntéza. Hlavná metóda pokračuje vytvorením objektu rozpoznávania:

    CultureInfo ci = new CultureInfo("en-us"); sre = new SpeechRecognitionEngine(ci); sre.SetInputToDefaultAudioDevice(); sre.SpeechRecognized += sre_SpeechRecognized;

    Objekt CultureInfo najprv špecifikuje jazyk, ktorý sa má rozpoznať, v tomto prípade americkú angličtinu. Objekt CultureInfo sa nachádza v priestore názvov Globalization, na ktorý sme odkazovali pomocou príkazu using. Potom, po zavolaní konštruktora SpeechRecognitionEngine, je hlasový vstup priradený predvolenému zvukovému zariadeniu, najčastejšie mikrofónu. Všimnite si, že väčšina notebookov má vstavaný mikrofón, ale stolné počítače budú vyžadovať externý mikrofón (v súčasnosti často kombinovaný so slúchadlami).

    Kľúčovou metódou pre objekt rozpoznávania je obsluha udalosti SpeechRecognized. Ak pri používaní Visual Studio napíšete „sre.SpeechRecognized +=" a počkáte zlomok sekundy, IntelliSense automaticky ukončí váš výraz názvom obsluhy udalosti - sre_SpeechRecognized. Odporúčam vám, aby ste stlačili kláves Tab, aby ste prijali navrhovanú možnosť a predvolene používali tento názov.

    Choices ch_Numbers = new Choices(); ch_Numbers.Add("1"); ch_Numbers.Add("2"); ch_Numbers.Add("3"); ch_Numbers.Add("4"); // z technického hľadiska je // toto Add(new string ( "4" )); GrammarBuilder gb_WhatIsXplusY = new GrammarBuilder(); gb_WhatIsXplusY.Append("Čo je"); gb_WhatIsXplusY.Append(čísla_ch); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(čísla_ch); Gramatika g_WhatIsXplusY = new Grammar(gb_WhatIsXplusY);

    Tri hlavné objekty sú tu množina Choices, šablóna GrammarBuilder a kontrolná gramatika. Keď vytváram gramatiku na uznanie, začnem tým, že uvediem niekoľko konkrétnych príkladov toho, čo potrebujem rozpoznať. Povedzte: "Koľko je jedna plus dva?" a "Koľko je tri plus štyri?".

    Potom definujem vhodný všeobecný vzor, ​​ako napríklad „Čo je plus ? Šablóna je GrammarBuilder a konkrétne hodnoty, ktoré sa odovzdávajú do šablóny, sú sady Choices. Objekt Grammar zapuzdruje šablónu a možnosti.

    V ukážke obmedzím sčítanie na 1 až 4 a pridám ich ako struny do sady Choices. Efektívnejší prístup:

    čísla reťazcov = nový reťazec( "1", "2", "3", "4" ); Choices ch_Numbers = new Choices(numbers);

    Predstavujem vám menej efektívny prístup k vytváraniu množiny volieb z dvoch dôvodov. Po prvé, pridávanie po jednom riadku bol jediný prístup, ktorý som videl v iných príkladoch rozpoznávania reči. Po druhé, možno si myslíte, že pridávanie po jednom riadku by vôbec nemalo fungovať; Visual Studio IntelliSense v reálnom čase ukazuje, že jedno z preťažení Add má parameter typu params reťazcových fráz. Ak ste si nevšimli kľúčové slovo params, možno ste si mysleli, že metóda Add akceptuje iba polia reťazcov, ale nie jeden reťazec. Ale nie je to tak: prijíma oboje. Radím vám prejsť pole.

    Vytvorenie množiny volieb z po sebe idúcich čísel je trochu špeciálny prípad a umožňuje vám použiť programový prístup, ako napríklad:

    čísla reťazcov = nový reťazec; for (int i = 0; i< 100; ++i) numbers[i] = i.ToString(); Choices ch_Numbers = new Choices(numbers);

    Po vytvorení možností na naplnenie slotov GrammarBuilder demo vytvorí GrammarBuilder a potom kontrolnú gramatiku:

    GrammarBuilder gb_WhatIsXplusY = new GrammarBuilder(); gb_WhatIsXplusY.Append("Čo je"); gb_WhatIsXplusY.Append(čísla_ch); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(čísla_ch); Gramatika g_WhatIsXplusY = new Grammar(gb_WhatIsXplusY);

    Demo program používa podobný vzor pri vytváraní gramatiky pre príkazy súvisiace so spustením a zastavením:

    Voľby ch_StartStopCommands = new Choices(); ch_StartStopCommands.Add("reč zapnutá"); ch_StartStopCommands.Add("reč vypnutá"); ch_StartStopCommands.Add("klatu barada nikto"); GrammarBuilder gb_StartStop = new GrammarBuilder(); gb_StartStop.Append(ch_StartStopCommands); Gramatika g_StartStop = new Grammar(gb_StartStop);

    Gramatiky sa dajú definovať veľmi flexibilne. Tu sú príkazy "speech on", "speech off" a "klatu barada nikto" umiestnené v jednej gramatike, keďže spolu logicky súvisia. Tieto tri príkazy je možné definovať v troch rôznych gramatikách, alebo vložiť príkazy „speech on“ a „speech off“ do jednej gramatiky a príkaz „klatu barada nikto“ do druhej.

    Po vytvorení všetkých objektov Gramatiky ich vložíte do rozpoznávača reči a aktivuje sa rozpoznávanie reči:

    sre.LoadGrammarAsync(g_StartStop); sre.LoadGrammarAsync(g_WhatIsXplusY); sre.RecognizeAsync(RecognizeMode.Multiple);

    Argument RecognizeMode.Multiple je potrebný, keď máte viac ako jednu gramatiku, čo bude prípad všetkých programov okrem tých najjednoduchších. Hlavná metóda končí takto:

    Kým (hotovo == false) ( ; ) Console.WriteLine("\nHit< enter >zatvorte shell\n"); Console.ReadLine(); ) catch (Exception ex) ( Console.WriteLine(ex.Message); Console.ReadLine(); ) ) // Hlavné

    Nezvyčajná prázdna slučka udržuje shell konzolovej aplikácie spustený. Cyklus sa ukončí, keď je boolovská hodnota hotová na úrovni triedy nastavená na hodnotu true obslužným programom udalosti rozpoznávania reči.

    Spracovanie rozpoznávania reči

    Kód na spracovanie udalostí súvisiacich s rozpoznávaním reči začína takto:

    static void sre_SpeechRecognized(odosielateľ objektu, SpeechRecognizedEventArgs e) ( string txt = e.Result.Text; plávajúca spoľahlivosť = e.Result.Confidence; Console.WriteLine("\nRozpoznané: " + txt); if (dôvera< 0.60) return; ...

    Rozpoznaný text je uložený vo vlastnosti Result.Text objektu SpeechRecognizedEventArgs. Prípadne môžete použiť sadu Result.Words. Vlastnosť Result.Confidence ukladá hodnotu medzi 0,0 a 1,0, čo je hrubý odhad toho, ako dobre hovorený text zodpovedá ktorejkoľvek gramatike spojenej s rozpoznávačom. Demo program inštruuje obsluhu udalosti, aby ignorovala text s nízkou dôverou v rozpoznaný text.

    Hodnoty spoľahlivosti sú vysoko závislé od zložitosti gramatiky, kvality mikrofónu a ďalších faktorov. Napríklad, ak demo potrebuje rozpoznať iba čísla 1 až 4, potom sú hodnoty spoľahlivosti na mojom počítači zvyčajne okolo 0,75. Ale ak má gramatika rozpoznávať čísla od 1 do 100, hodnoty spoľahlivosti klesnú na približne 0,25. Stručne povedané, zvyčajne musíte experimentovať s hodnotami spoľahlivosti, aby ste dosiahli dobré výsledky rozpoznávania reči.

    if (txt.IndexOf("reč je zapnutá") >= 0) ( Console.WriteLine("Reč je teraz zapnutá"); speechOn = true; ) if (txt.IndexOf("reč je vypnutá") >= 0) ( Konzola .WriteLine("Reč je teraz VYPNUTÁ"); speechOn = false; ) if (speechOn == false) return;

    Aj keď to na prvý pohľad nemusí byť úplne zrejmé, táto logika by mala dávať zmysel, keď sa nad tým zamyslíte. Potom sa spracuje príkaz tajného ukončenia:

    if (txt.IndexOf("klatu") >= 0 && txt.IndexOf("barada") >= 0) ( ((SpeechRecognitionEngine)odosielateľ).RecognizeAsyncCancel(); done = true; Console.WriteLine("(Hovorí: Zbohom)"); ss.Speak("Zbohom"); )

    Všimnite si, že nástroj na rozpoznávanie reči skutočne dokáže rozpoznať nezmyselné slová. Ak objekt Grammar obsahuje slová, ktoré nie sú vo vstavanom slovníku objektu, Grammar sa pokúsi identifikovať tieto slová vždy, keď je to možné, pomocou sémantickej heuristiky a zvyčajne je to celkom úspešné. Preto som použil „klatu“ namiesto správneho „klaatu“ (zo starého sci-fi filmu).

    Všimnite si tiež, že nemusíte spracovať celý text, ktorý Gramatika rozpozná („klatu barada nikto“) – stačí vám mať dostatok informácií na jednoznačnú identifikáciu gramatickej frázy („klatu“ a „barada“).

    If (txt.IndexOf("Čo") >= 0 && txt.IndexOf("plus") >= 0) ( string words = txt.Split(" "); int num1 = int.Parse(words); int num2 = int.Parse(words);int sum = num1 + num2;Console.WriteLine("(Vyslovené: " + slová + " plus " + slová + " sa rovná " + súčet + ")"); ss.SpeakAsync(slová + " plus " + slová + " rovná sa " + súčet); ) ) // sre_SpeechRecognized ) // Program ) // ns

    Upozorňujeme, že text v časti Results.Text rozlišuje veľké a malé písmená ("Čo" a "Čo"). Po rozpoznaní frázy je možné ju rozložiť na konkrétne slová. V tomto prípade má rozpoznaný text tvar „Čo je x plus y“, takže „Čo“ je vložené do slov a dve pridané čísla (ako reťazce) sú uložené v slovách a slovách.

    Inštalácia knižníc

    Vysvetlenie ukážkového programu predpokladá, že na vašom počítači sú nainštalované všetky potrebné knižnice reči. Ak chcete vytvoriť a spustiť ukážkové programy, musíte nainštalovať štyri balíky: SDK (poskytuje možnosť vytvárať ukážky vo Visual Studio), runtime (spúšťa ukážky po ich vytvorení), rozpoznávané a syntetizované (vyslovované programom) jazyky.

    Ak chcete nainštalovať súpravu SDK, vyhľadajte na webe výraz „Speech Platform 11 SDK“. Tým sa dostanete na správnu stránku v Centre sťahovania softvéru spoločnosti Microsoft ( ryža. 4). Kliknutím na tlačidlo Stiahnuť sa zobrazia možnosti zobrazené v ryža. 5. SDK sa dodáva v 32-bitovej a 64-bitovej verzii. Dôrazne vám odporúčam používať 32-bitovú verziu bez ohľadu na bitovú hodnotu vášho systému. 64-bitová verzia neinteraguje s niektorými aplikáciami.


    Ryža. 4. Hlavná stránka inštalácie súpravy SDK v Centre sťahovania softvéru spoločnosti Microsoft


    Ryža. 5. Inštalácia súpravy Speech SDK

    Nepotrebujete nič, len jeden súbor .msi pod x86 (pre 32-bitové systémy). Výberom tohto súboru a kliknutím na tlačidlo Ďalej môžete spustiť inštalačný program priamo odtiaľto. Rečové knižnice neposkytujú veľa spätnej väzby o dokončení inštalácie, takže nehľadajte žiadne správy o úspechu.


    Ryža. 6. Inštalácia runtime

    Je mimoriadne dôležité zvoliť rovnakú verziu platformy (11 v demo) a bitovú hĺbku (32 alebo 64) ako SDK. Opäť veľmi odporúčam 32-bitovú verziu, aj keď používate 64-bitový systém.

    Potom môžete nastaviť jazyk rozpoznávania. Stránka na stiahnutie je na ryža. 7. Ukážka používa súbor MSSpeech_SR_en-us_TELE.msi (Anglicko-U.S.). SR znamená rozpoznávanie reči a TELE znamená telefonovanie; to znamená, že rozpoznávaný jazyk je navrhnutý tak, aby fungoval so zvukovým vstupom nízkej kvality, napríklad z mikrofónu telefónu alebo stolného počítača.


    Ryža. 7. Nastavenie rozpoznaného jazyka

    Nakoniec môžete nastaviť jazyk a hlas pre syntézu reči. Stránka na stiahnutie je na ryža. osem. Demo program používa súbor MSSpeech_TTS_en-us_Helen.msi. TTS (text-to-speech) je v podstate synonymom syntézy reči. Všimnite si dva dostupné hlasy English, U.S. Existujú aj iné anglické hlasy, ale nie U.S. Vytváranie súborov jazyka syntézy je veľmi náročná úloha. Môžete si však zakúpiť a nainštalovať ďalšie hlasy od mnohých spoločností.


    Ryža. 8. Nastavenie jazyka hlasu a syntézy

    Je zvláštne, že hoci jazyk rozpoznávania reči a jazyk syntézy hlasu/reči sú v skutočnosti celkom odlišné veci, oba balíky sú možnosti na tej istej stránke sťahovania. Používateľské rozhranie Download Center vám umožňuje označiť jazyk rozpoznávania aj jazyk syntézy, ale pokúsiť sa ich nainštalovať súčasne sa pre mňa ukázalo ako katastrofa, preto ich odporúčam nainštalovať samostatne.

    Porovnanie Microsoft.Speech s System.Speech

    Ak ste nováčikom v rozpoznávaní a syntéze reči pre aplikácie Windows, môžete sa ľahko zmiasť dokumentáciou, pretože existuje niekoľko platforiem reči. Konkrétne, okrem knižnice Microsoft.Speech.dll, ktorú používajú ukážky v tomto článku, existuje knižnica System.Speech.dll, ktorá je súčasťou operačného systému Windows. Tieto dve knižnice sú podobné v tom zmysle, že ich API sú takmer, ale nie úplne identické. Ak si teda na internete vyhľadáte príklady spracovania reči a uvidíte skôr útržky kódu ako kompletné programy, nie je vôbec jasné, či sa tento príklad vzťahuje na System.Speech alebo Microsoft.Speech.

    Ak ste novým spracovaním reči, použite knižnicu Microsoft.Speech namiesto System.Speech na pridanie podpory reči do vašej aplikácie .NET.

    Aj keď obe knižnice zdieľajú spoločnú základnú kódovú základňu a podobné API, určite sa líšia. Niektoré kľúčové rozdiely sú zhrnuté v tab. jeden.

    Tab. 1. Hlavné rozdiely medzi Microsoft.Speech a System.Speech

    System.Speech DLL je súčasťou OS, takže je nainštalovaný na každom systéme Windows. Microsoft.Speech DLL (a súvisiace runtime a jazyky) je potrebné stiahnuť a nainštalovať do systému. Rozpoznávanie pomocou System.Speech zvyčajne vyžaduje učenie špecifické pre používateľa, keď používateľ číta nejaký text a systém sa učí porozumieť výslovnosti tohto používateľa. Rozpoznávanie pomocou Microsoft.Speech funguje okamžite pre každého používateľa. System.Speech dokáže rozpoznať takmer každé slovo (hovorí sa tomu voľný diktát). Microsoft.Speech rozpozná iba slová a frázy, ktoré sú v objekte Grammar definovanom v programe.

    Pridanie podpory rozpoznávania reči do aplikácie Windows Forms

    Proces pridávania podpory rozpoznávania reči a syntézy do aplikácie Windows Forms alebo WPF je podobný ako v prípade konzolovej aplikácie. Ak chcete vytvoriť demo program uvedený v ryža. 2, spustil som Visual Studio, vytvoril som novú C# Windows Forms Application a premenoval som ju na WinFormSpeech.

    Po načítaní kódu šablóny do editora som do okna Solution Explorer pridal odkaz na súbor Microsoft.Speech.dll – rovnako ako v konzolovom programe. V hornej časti zdrojového kódu som odstránil nepotrebné príkazy using a ponechal som len odkazy na menné priestory System, Data, Drawing a Forms. Potom som pridal dva príkazy s použitím pre menné priestory Microsoft.Speech.Recognition a System.Globalization.

    Demo na platforme Windows Forms nepoužíva syntézu reči, takže na knižnicu Microsoft.Speech.Synthesis neprepájam. Pridanie syntézy reči do aplikácie Windows Forms je rovnaké ako pridanie syntézy reči do konzolovej aplikácie.

    Vo Visual Studiu som v režime návrhu pretiahol ovládacie prvky TextBox, CheckBox a ListBox do formulára. Dvakrát som klikol na CheckBox a Visual Studio automaticky vygenerovalo kostru metódy obsluhy udalosti CheckChanged.

    Pripomeňme, že program demo konzoly okamžite začal počúvať hovorené príkazy a pokračoval v tom, kým sa neskončil. Tento prístup je možné použiť aj v aplikácii Windows Forms, ale namiesto toho som sa rozhodol nechať používateľa zapnúť a vypnúť rozpoznávanie reči pomocou ovládacieho prvku CheckBox (t. j. začiarkavacieho políčka).

    Zdrojový kód v súbore Form1.cs ukážky, kde je definovaná čiastočná trieda, je zobrazený v ryža. deväť. Objekt mechanizmu rozpoznávania reči je deklarovaný a vytváraný ako člen Form. V konštruktore formulára pripojím obsluhu udalosti SpeechRecognized a potom vytvorím a načítam dva objekty Grammars:

    public Form1() ( InitializeComponent(); sre.SetInputToDefaultAudioDevice(); sre.SpeechRecognized += sre_SpeechRecognized; Grammar g_HelloGoodbye = GetHelloGoodbyeGrammar(); Grammar g_SetTextBox = GetTextBox1Box.SynoxGelloS.A.Gram / sre.RecognizeAsync() je // v obslužnom programe udalosti CheckBox)

    Ryža. 9. Pridanie podpory rozpoznávania reči do formulárov Windows

    pomocou systému; pomocou System.Data; pomocou System.Drawing; pomocou System.Windows.Forms; pomocou Microsoft.Speech.Recognition; pomocou System.Globalization; menný priestor WinFormSpeech ( verejná čiastočná trieda Form1: Form ( statické CultureInfo ci = new CultureInfo("en-us"); statický SpeechRecognitionEngine sre = nový SpeechRecognitionEngine(ci); public Form1() ( InitializeComponent(); sre.SetInputToDefaultAudioDevice(); sre .SpeechRecognized += sre_SpeechRecognized; Grammar g_HelloGoodbye = GetHelloGoodbyeGrammar(); Grammar g_SetTextBox = GetTextBox1TextGrammar(); sre.LoadGrammarAsync(g_HelloGoodbye); sre.Text thesync(sc)Boxrecognize /A/ g handler Grammar GetHelloGoodbyeGrammar() ( Choices ch_HelloGoodbye = new Choices(); ch_HelloGoodbye.Add("ahoj"); ch_HelloGoodbye.Add("zbohom"); GrammarBuilder gb_result = new Grammar_HelloGodmar Grammar (ch); return g_result; ) static Grammar GetTextBox1TextGrammar() ( Choices ch_Colors = new Choices(); ch_Colors.Add(new string ( "červená", "biela", "modrá" )); GrammarBuilder gb_r vysledok = new GrammarBuilder(); gb_result.Append("nastaviť textové pole 1"); gb_result.Append(ch_Colors); Gramatika g_vysledok = new Grammar(gb_result); return g_result; ) private void checkBox1_CheckedChanged(object sender, EventArgs e) ( if (checkBox1.Checked == true) sre.RecognizeAsync(RecognizeMode.Multiple); else if (checkBox1.Checked == false) // vypnuté sre.RecognizeAsyncCancel void sre_SpeechRecognized(odosielateľ objektu, SpeechRecognizedEventArgs e) ( string txt = e.Result.Text; float conf = e.Result.Confidence; if (conf< 0.65) return; this.Invoke(new MethodInvoker(() =>( listBox1.Items.Add("Počul som, že hovoríš: " + txt); ))); // Špecifiká WinForm if (txt.IndexOf("text") >= 0 && txt.IndexOf("box") >= 0 && txt.IndexOf("1")>= 0) (reťazcové slová = txt.Split( " "); this.Invoke(new MethodInvoker(() => ( textBox1.Text = words; ))); // WinForm specific ) ) ) // Form ) // ns

    Mohol som vytvoriť dva objekty Grammar priamo, ako v programe konzoly, ale namiesto toho, aby bol kód trochu prehľadnejší, som definoval dve pomocné metódy (GetHelloGoodbyeGrammar a GetTextBox1TextGrammar), ktoré túto prácu vykonávajú.

    statická gramatika GetTextBox1TextGrammar() ( Choices ch_Colors = new Choices(); ch_Colors.Add(nový reťazec ( "červená", "biela", "modrá" )); GrammarBuilder gb_result = nový GrammarBuilder(); gb_result.Append("nastaviť text box 1"); gb_result.Append(ch_Colors); Grammar g_result = new Grammar(gb_result); return g_result; )

    Táto pomocná metóda rozpozná frázu „nastaviť textové pole 1 červené“. Od používateľa sa však nevyžaduje, aby túto frázu presne vyslovoval. Mohol by napríklad povedať: „Prosím, nastavte text v textovom poli 1 na červenú“ a rečový nástroj by stále rozpoznal frázu ako „nastav textové pole 1 na červenú“ – aj keď s nižšou hodnotou spoľahlivosti ako s presnou zhodou s Gramatická šablóna. Inými slovami, pri vytváraní objektov Gramatiky nemusíte brať do úvahy všetky variácie fráz. To výrazne zjednodušuje používanie rozpoznávania reči.

    Obsluha udalosti pre CheckBox je definovaná takto:

    private void checkBox1_CheckedChanged(object sender, EventArgs e) ( if (checkBox1.Checked == true) sre.RecognizeAsync(RecognizeMode.Multiple); else if (checkBox1.Checked == false) // vypnuté sre.RecognizeAsync)Cancel

    Objekt mechanizmu rozpoznávania reči, sre (motor rozpoznávania reči), vždy existuje počas životnosti aplikácie Windows Forms. Tento objekt sa aktivuje a deaktivuje volaniami metód RecognizeAsync a RecognizeAsyncCancel, keď používateľ zodpovedajúcim spôsobom prepne CheckBox.

    Definícia obsluhy udalosti SpeechRecognized začína takto:

    void sre_SpeechRecognized(odosielateľ objektu, SpeechRecognizedEventArgs e) ( string txt = e.Result.Text; float conf = e.Result.Confidence; if (conf< 0.65) return; ...

    Okrem viac či menej bežne používaných vlastností Result.Text a Result.Confidence má objekt Result niekoľko ďalších užitočných, no zložitejších vlastností, ktoré možno budete chcieť preskúmať; napríklad Homofóny a ReplacementWordUnits. Okrem toho modul rozpoznávania reči poskytuje niektoré užitočné udalosti, ako je SpeechHypothesized.

    this.Invoke((Action)(() => listBox1.Items.Add("Počul som, že hovoríš: " + txt)));

    Teoreticky je použitie delegáta MethodInvoker o niečo efektívnejšie ako použitie delegáta Action v tejto situácii, pretože MethodInvoker je súčasťou menného priestoru Windows.Forms, a preto je špecifický pre aplikácie Windows Forms. Akčný delegát je všestrannejší. Tento príklad ukazuje, že môžete plne manipulovať s aplikáciou Windows Forms prostredníctvom nástroja na rozpoznávanie reči – ide o neuveriteľne výkonnú a užitočnú funkciu.

    Záver

    Informácie uvedené v tomto článku by vám mali pomôcť hneď začať, ak chcete preskúmať syntézu a rozpoznávanie reči v aplikáciách .NET. Zvládnutie samotnej technológie nie je ťažké, akonáhle sa dostanete cez hrbole úvodného školenia a inštalácie komponentov. Skutočnou výzvou pri syntéze a rozpoznávaní reči je porozumenie vtedy, keď je to skutočne užitočné.

    V prípade konzolových programov môžete vytvárať zaujímavé vzájomné dialógy, kde sa používateľ pýta a program odpovedá, výsledkom čoho je v podstate prostredie ako z Cortany. Musíte byť trochu opatrní, pretože keď reč vychádza z reproduktorov vášho počítača, zachytí ju mikrofón a dá sa znova rozpoznať. Sám som bol v dosť vtipných situáciách, keď som položil otázku, aplikácia ju rozpoznala a odpovedala, no vyslovená odpoveď spustila ďalšiu udalosť rozpoznávania a skončil som so smiešnou nekonečnou rečovou slučkou.

    Ďalším možným využitím reči v programe konzoly je rozpoznanie príkazov ako "Spustiť poznámkový blok" a "Spustiť Word". Inými slovami, takýto konzolový program možno použiť na vašom počítači na vykonávanie akcií, ktoré by si inak vyžadovali veľa manipulácií s klávesnicou a myšou.

    James McCaffrey(Dr. James McCaffrey) pracuje pre Microsoft Research v Redmonde, Washington. Podieľal sa na vytvorení niekoľkých produktov spoločnosti Microsoft, vrátane Internet Explorer a Bing. Je možné ho kontaktovať na [chránený e-mailom].

    Chcel by som poďakovať odborníkom z Microsoft Research Robovi Gruenovi, Markovi Marronovi a Curtisovi von Vehovi za recenziu tohto článku.

    Žiadny program nedokáže úplne nahradiť manuálnu prácu pri prepise nahratej reči. Existujú však riešenia, ktoré dokážu výrazne urýchliť a uľahčiť preklad reči do textu, teda zjednodušiť prepis.

    Prepis je záznam zvukového alebo video súboru v textovej forme. Na internete existujú platené platené úlohy, kedy sa interpretovi vypláca určitá suma za prepis textu.

    Užitočný je preklad reči do textu

    • študentov prekladať nahraté audio alebo video prednášky do textu,
    • blogeri vedúci webové stránky a blogy,
    • spisovatelia, novinári písať knihy a texty,
    • informační podnikatelia, ktorí potrebujú text po svojom webinári, prejave atď.,
    • ľudia, pre ktorých je ťažké písať - môžu nadiktovať list a poslať ho príbuzným alebo priateľom,
    • iné možnosti.

    Popíšeme najefektívnejšie nástroje dostupné na PC, mobilných aplikáciách a online službách.

    1 Stránka speechpad.ru

    Ide o online službu, ktorá vám umožňuje prekladať reč do textu prostredníctvom prehliadača Google Chrome. Služba funguje s mikrofónom a s hotovými súbormi. Samozrejme, že kvalita bude oveľa vyššia, ak použijete externý mikrofón a budete si diktovať sami. Služba však robí dobrú prácu aj pri videách na YouTube.

    Kliknite na „Povoliť nahrávanie“, odpovedzte na otázku „Používanie mikrofónu“ – na tento účel kliknite na „Povoliť“.

    Dlhý návod na používanie služby je možné zbaliť kliknutím na tlačidlo 1 na obr. 3. Reklamy sa môžete zbaviť prejdením jednoduchou registráciou.

    Ryža. 3. Servisný rečový panel

    Hotový výsledok sa dá ľahko upraviť. Ak to chcete urobiť, musíte buď manuálne opraviť zvýraznené slovo, alebo ho znova nadiktovať. Výsledky práce sa ukladajú na váš osobný účet, dajú sa stiahnuť aj do počítača.

    Zoznam video tutoriálov o práci s rečovým blokom:

    Videá môžete prepisovať z Youtube alebo z počítača, budete však potrebovať mixér, ďalšie podrobnosti:

    Video „prepis zvuku“

    Služba funguje v siedmich jazykoch. Je tu malé mínus. Spočíva v tom, že ak potrebujete prepísať hotový zvukový súbor, jeho zvuk sa distribuuje do reproduktorov, čo vytvára ďalšie rušenie vo forme ozveny.

    2 Servisný diktát.io

    Skvelá online služba, ktorá vám umožní preložiť reč do textu zadarmo a jednoducho.

    Ryža. 4. Diktát služby.io

    1 na obr. 4 - Ruský jazyk je možné vybrať na konci stránky. V prehliadači Google Chrome je jazyk vybraný, ale v Mozille z nejakého dôvodu takáto možnosť neexistuje.

    Je pozoruhodné, že je implementovaná možnosť automatického uloženia hotového výsledku. Predídete tak náhodnému vymazaniu v dôsledku zatvorenia karty alebo prehliadača. Táto služba nerozpoznáva hotové súbory. Pracuje s mikrofónom. Pri diktovaní musíte pomenovať interpunkčné znamienka.

    Text je rozpoznaný celkom správne, nie sú v ňom žiadne pravopisné chyby. Interpunkčné znamienka môžete vkladať sami z klávesnice. Hotový výsledok je možné uložiť do počítača.

    3 RealSpeaker

    Tento program vám umožňuje jednoducho preložiť ľudskú reč do textu. Je navrhnutý tak, aby fungoval na rôznych systémoch: Windows, Android, Linux, Mac. S jeho pomocou môžete previesť reč, ktorá znie, do mikrofónu (napríklad môže byť zabudovaná do prenosného počítača), ako aj zaznamenaná vo zvukových súboroch.

    Dokáže vnímať 13 svetových jazykov. K dispozícii je beta verzia programu, ktorá funguje ako online služba:

    Musíte prejsť na vyššie uvedený odkaz, vybrať ruský jazyk, nahrať svoj zvukový alebo video súbor do online služby a zaplatiť za jeho prepis. Po prepise môžete prijatý text skopírovať. Čím väčší je súbor na prepis, tým viac času zaberie jeho spracovanie, ďalšie podrobnosti:

    V roku 2017 existovala bezplatná možnosť prepisu pomocou RealSpeaker, v roku 2018 takáto možnosť neexistuje. Je veľmi trápne, že prepísaný súbor je k dispozícii všetkým používateľom na stiahnutie, možno sa to dotiahne do finále.

    Kontakty vývojára (VKontakte, Facebook, Youtube, Twitter, e-mail, telefón) programu nájdete na stránke jeho webovej stránky (presnejšie v päte stránky):

    4 Speechlogger

    Alternatíva k predchádzajúcej aplikácii pre mobilné zariadenia so systémom Android. K dispozícii zadarmo v obchode s aplikáciami:

    Text sa upravuje automaticky, vkladajú sa doň interpunkčné znamienka. Skvelé na diktovanie poznámok alebo vytváranie zoznamov. Výsledkom bude, že text bude mať veľmi slušnú kvalitu.

    5 Dračí diktát

    Ide o aplikáciu, ktorá je bezplatne distribuovaná pre mobilné zariadenia od spoločnosti Apple.

    Program môže pracovať s 15 jazykmi. Umožňuje vám upraviť výsledok, vybrať požadované slová zo zoznamu. Je potrebné jasne vyslovovať všetky hlásky, nerobiť zbytočné pauzy a vyhýbať sa intonácii. Niekedy sú v koncovkách slov chyby.

    Aplikácia Dragon Dictation slúži majiteľom napríklad na diktovanie nákupného zoznamu v obchode pri pohybe po byte. Prídem tam, bude sa dať pozrieť na text v poznámke a netreba počúvať.

    Bez ohľadu na program, ktorý používate vo svojej praxi, buďte pripravení skontrolovať výsledok a vykonať určité úpravy. Len tak získate bezchybný text bez chýb.

    Užitočné služby:

    Získajte aktuálne články o počítačovej gramotnosti priamo do vašej schránky.
    Už viac 3 000 predplatiteľov

    .

    Aktualizované: pondelok 31. júla 2017

    Čo má polofantastická myšlienka rozhovoru s počítačom spoločné s profesionálnou fotografiou? Takmer žiadny, ak nie ste fanúšikom myšlienky nekonečného rozvoja celého technického prostredia človeka. Na chvíľu si predstavte, že svojmu fotoaparátu dávate hlasové príkazy na zmenu ohniskovej vzdialenosti a korekciu expozície o pol kroku plus. Diaľkové ovládanie kamery už bolo implementované, ale tam musíte ticho stláčať tlačidlá a tu je fotik sluchu!

    Stalo sa tradíciou uvádzať nejaký fantastický film ako príklad ľudskej hlasovej komunikácie s počítačom, teda aspoň „Vesmírna odysea 2001“ režiséra Stanleyho Kubricka. Palubný počítač tam nielen vedie zmysluplný dialóg s astronautmi, ale dokáže čítať z pier ako nepočujúci. Inými slovami, stroj sa naučil bez chýb rozpoznávať ľudskú reč. Možno sa niekomu bude zdať diaľkové hlasové ovládanie fotoaparátu nadbytočné, no mnohým by sa toto slovné spojenie páčilo "Zober nás, baby" a obraz celej rodiny na pozadí palmy je hotový.

    No a tu som vzdal hold tradícii, trochu fantazírovaný. Ale, hovorím z hĺbky môjho srdca, tento článok sa písal ťažko a všetko to začalo darčekom v podobe smartfónu s OS Android 4. Tento model HUAWEI U8815 má malý štvorpalcový dotykový displej a klávesnicu na obrazovke. Písať na ňom je trochu nezvyčajné, ale ukázalo sa, že to nie je zvlášť potrebné. (obrázok 01)

    1. Rozpoznávanie hlasu v smartfóne s OS Android

    Pri skúšaní novej hračky som si všimol vo vyhľadávacom paneli grafiku mikrofónu. Google a na klávesnici v aplikácii Notes. Predtým ma nezaujímalo, čo tento symbol znamená. Mal som rozhovory Skype a písali písmená na klávesnici. Toto robí väčšina používateľov internetu. Ale ako mi neskôr vysvetlili, vo vyhľadávači Google pribudlo hlasové vyhľadávanie v ruštine a objavili sa programy, ktoré umožňujú diktovať krátke správy pri používaní prehliadača Chrome.

    Povedal som frázu troch slov, program ich identifikoval a ukázal v bunke s modrým pozadím. Bolo sa čím čudovať, pretože všetky slová boli napísané správne. Ak kliknete na túto bunku, fráza sa zobrazí v textovom poli androidového poznámkového bloku. Povedal teda pár fráz a poslal správu asistentovi cez SMS.


    2. Stručná história programov rozpoznávania hlasu.

    Nebolo pre mňa objavom, že moderné výdobytky v oblasti hlasového ovládania umožňujú zadávať príkazy domácim spotrebičom, autu, robotovi. Príkazový režim bol zavedený v minulých verziách Windows, OS/2 a Mac OS. Videl som programy pre hovorcov, ale načo mi to je? Možno je mojou zvláštnosťou, že sa mi ľahšie hovorí ako píše na klávesnici a na mobile neviem písať vôbec nič. Kontakty musíte nahrávať na notebook s bežnou klávesnicou a prenášať cez USB kábel. Ale len hovoriť do mikrofónu a počítač sám napísal text bez chýb - to bol pre mňa sen. Atmosféru beznádeje podporili diskusie na fórach. Všade ich napadla taká smutná myšlienka:

    „Avšak v praxi doteraz programy na skutočné rozpoznávanie reči (a dokonca ani v ruštine) prakticky neexistujú a zrejme sa čoskoro nevytvoria. Navyše ani inverzná úloha rozpoznávania - syntéza reči, ktorá, zdá sa, je oveľa jednoduchšia ako rozpoznávanie, nebola úplne vyriešená. (ComputerPress №12, 2004)

    „Dodnes neexistujú žiadne normálne programy na rozpoznávanie reči (nielen v ruštine), pretože táto úloha je pre počítač dosť náročná. A najhoršie je, že nebol zrealizovaný mechanizmus rozpoznávania slov človekom, takže pri tvorbe programov na rozpoznávanie nie je na čom stavať. (Ďalšia diskusia na fóre).

    Recenzie programov na zadávanie textu v anglickom jazyku zároveň naznačili jasné úspechy. Napríklad, IBM ViaVoice 98 Executive Edition mali základný slovník 64 000 slov a možnosť pridať rovnaký počet vlastných slov. Percento rozpoznania slov bez školenia programu bolo asi 80% a pri následnej práci s konkrétnym používateľom to bolo 95%.

    Z programov na rozpoznávanie ruského jazyka stojí za zmienku "Gorynych" - doplnok k anglickému Dragon Dictate 2.5. O hľadaní a potom o „bitke s piatimi Gorynychmi“ vám poviem v druhej časti recenzie. Ako prvého som našiel „Anglického draka“.

    3. Program na rozpoznávanie súvislej reči „Dragon Naturally Speaking“

    Moderná verzia programu spoločnosti Nuance Ukázalo sa, že som bol s mojím starým priateľom z Minského inštitútu cudzích jazykov. Priniesla si ho zo zahraničnej cesty a kúpila si ho v domnení, že by mohla byť „sekretárkou počítača“. Niečo však nefungovalo a program zostal takmer zabudnutý na prenosnom počítači. Kvôli nedostatku akéhokoľvek zrozumiteľného zážitku som musel ísť za priateľom sám. Celý tento dlhý úvod je potrebný na správne pochopenie záverov, ktoré som vyvodil.

    Celé meno môjho prvého draka bolo: . Program je v angličtine a všetko je v ňom prehľadné aj bez manuálu. Prvým krokom je vytvorenie profilu konkrétneho používateľa na určenie vlastností zvuku slov v jeho podaní. Čo som urobil – dôležitý je vek hovoriaceho, krajina, zvláštnosti výslovnosti. Moja voľba je: vek 22-54, angličtina UK, štandardná výslovnosť. Ďalej nasleduje niekoľko okien, v ktorých nastavíte mikrofón. (obrázok 04)

    Ďalšou fázou serióznych programov rozpoznávania reči je nácvik konkrétnej výslovnosti konkrétnej osoby. Vyzývame vás, aby ste si zvolili charakter textu: môj výber je stručný návod na diktovanie, ale môžete si „objednať“ aj humorný príbeh.

    Podstata tejto fázy práce s programom je mimoriadne jednoduchá - text sa zobrazuje v okne, nad ním je žltá šípka. Pri správnej výslovnosti sa šípka pohybuje medzi frázami a v spodnej časti sa nachádza lišta priebehu tréningu. Anglický konverzačný program som dosť zabudol, takže som sa pohyboval s ťažkosťami. Limitovaný bol aj čas – počítač predsa nebol môj a musel som tréning prerušiť. Ale kamarátka povedala, že test urobila za menej ako pol hodiny. (obrázok 05)

    Odmietol som prispôsobiť program mojej výslovnosti, prešiel som do hlavného okna a spustil som vstavaný textový editor. Hovoril oddelené slová z niektorých textov, ktoré našiel v počítači. Tie slová, ktoré povedal správne, vytlačený program, tie, ktoré povedal zle, nahradil niečím „anglickým“. Po jasnom vyslovení príkazu „erase line“ v angličtine to program splnil. To znamená, že príkazy čítam správne a program ich rozpoznáva bez predchádzajúceho školenia.

    Ale pre mňa bolo dôležité, ako tento „drak“ píše po rusky. Ako ste pochopili z predchádzajúceho popisu, pri tréningu programu môžete vybrať iba anglický text, jednoducho tam nie je žiadny ruský text. Je jasné, že trénovať rozpoznávanie ruskej reči nebude fungovať. Na ďalšej fotografii môžete vidieť, akú frázu program napísal pri vyslovení ruského slova „Ahoj“. (obrázok 06)

    Výsledok komunikácie s prvým drakom dopadol mierne komicky. Ak si pozorne prečítate text na oficiálnej stránke, môžete vidieť anglickú „špecializáciu“ tohto softvérového produktu. Okrem toho pri načítaní čítame v okne programu "Angličtina". Prečo bolo toto všetko potrebné? Je jasné, že na vine sú fóra a fámy ...

    Existuje však aj užitočná skúsenosť. Moja kamarátka sa pýtala, v akom stave je jej laptop. Nejako pomaly začal pracovať. To nie je prekvapujúce - systémový oddiel mal iba 5% voľného miesta. Pri odstraňovaní nepotrebných programov som videl, že oficiálna verzia zabrala viac ako 2,3 GB. Toto číslo budeme potrebovať neskôr. (image.07)



    Ako sa ukázalo, rozpoznávanie ruskej reči nebola triviálna úloha. V Minsku sa mi podarilo nájsť „Gorynycha“ od kamaráta. Disk dlho hľadal vo svojich starých troskách a podľa jeho slov ide o oficiálnu publikáciu. Program sa okamžite nainštaloval a zistil som, že jeho slovník obsahuje 5000 ruských slov plus 100 príkazov a 600 anglických slov plus 31 príkazov.

    Najprv musíte nastaviť mikrofón, čo som urobil. Potom som otvoril slovník a pridal som slovo "vyšetrenie" pretože to nebolo v slovníku programu. Snažil som sa hovoriť jasne, monotónne. Nakoniec som otvoril program Gorynych Pro 3.0, zapol režim diktovania a získal tento zoznam „slov, ktoré znejú podobne“. (image.09)

    Výsledok ma zmiatol, pretože sa jasne líšil k horšiemu od práce smartfónu s Androidom a rozhodol som sa vyskúšať iné programy od „ Internetový obchod Google Chrome". A riešenie „gorynych hadov“ odložil na neskôr. Myslel som toto odklad akcia v originálnom ruskom duchu

    5. Hlasové schopnosti Google

    Na prácu s hlasom na bežnom počítači s OS Windows si budete musieť nainštalovať prehliadač Google Chrome. Ak v ňom pracujete na internete, tak vpravo dole môžete kliknúť na odkaz na obchod so softvérom. Darmo som tam našiel dva programy a dve nadstavby pre hlasové zadávanie textu. Programy sú tzv "Hlasový zápisník" a "Voysnot - hlas na text". Po inštalácii ich nájdete na karte "aplikácie" váš prehliadač "chróm". (obr. 10)

    Rozšírenia sú tzv "Kľúčové slovo Google Voice Search (Beta) 0.1.0.5" a "Text hlasového vstupu - Speechpad.ru 5.4". Po inštalácii ich možno na karte vypnúť alebo odstrániť "rozšírenia".(obr. 11)

    Hlasová poznámka. Na karte aplikácie v prehliadači Chrome dvakrát kliknite na ikonu programu. Otvorí sa dialógové okno, ako je znázornené na obrázku nižšie. Kliknutím na ikonu mikrofónu hovoríte krátke frázy do mikrofónu. Program odošle vaše slová na server rozpoznávania reči a napíše text do okna. Všetky slová a frázy zobrazené na obrázku boli napísané na prvý pokus. Je zrejmé, že táto metóda funguje iba s aktívnym internetovým pripojením. (obr. 12)

    Hlasový poznámkový blok. Ak spustíte program na karte aplikácií, otvorí sa nová karta internetovej stránky Speechpad.ru. K dispozícii je podrobný návod na používanie tejto služby a kompaktný formulár. Posledné uvedené je znázornené na obrázku nižšie. (obr. 13)

    Hlasový vstup text vám umožňuje vypĺňať textové polia internetových stránok vašim hlasom. Napríklad som išiel na svoju stránku Google+. Vo vstupnom poli novej správy kliknite pravým tlačidlom myši a vyberte "SpeechPad". Ružovo sfarbené vstupné pole hovorí, že svoj text môžete diktovať. (obr. 14)

    Hlasové vyhľadávanie Google umožňuje vyhľadávanie podľa hlasu. Keď nainštalujete a aktivujete toto rozšírenie, vo vyhľadávacom paneli sa zobrazí symbol mikrofónu. Keď ho stlačíte, vo veľkom červenom kruhu sa zobrazí symbol. Stačí vysloviť hľadaný výraz a zobrazí sa vo výsledkoch vyhľadávania. (obr. 15)

    Dôležitá poznámka: Aby mikrofón fungoval s rozšíreniami prehliadača Chrome, musíte v nastaveniach prehliadača povoliť prístup k mikrofónu. Z bezpečnostných dôvodov je predvolene vypnutá. Vstúpte Nastavenia→ Osobné údaje→ Nastavenia obsahu. (Pre prístup ku všetkým nastaveniam na konci zoznamu kliknite na Ukázať pokročilé nastavenia). Otvorí sa dialógové okno Nastavenia obsahu stránky. Vyberte položku v zozname Multimédiá→mikrofón.

    6. Výsledky práce s ruskými programami na rozpoznávanie reči

    Malé skúsenosti s používaním programov na zadávanie textu hlasom ukázali vynikajúcu implementáciu tejto funkcie na serveroch internetovej spoločnosti Google. Bez akéhokoľvek predchádzajúceho tréningu sú slová rozpoznávané správne. To naznačuje, že problém rozpoznávania ruskej reči bol vyriešený.

    Teraz môžeme povedať, že výsledok vývoja Google bude novým kritériom hodnotenia produktov od iných výrobcov. Chcel by som, aby systém rozpoznávania fungoval offline bez kontaktovania serverov spoločnosti - je to pohodlnejšie a rýchlejšie. Kedy však bude vydaný nezávislý program na prácu s nepretržitým prúdom ruskej reči, nie je známe. Oplatí sa však predpokladať, že s možnosťou trénovať toto „stvorenie“ bude skutočným prielomom.

    Programy ruských vývojárov "Gorynych", "Diktograf" a "boj" Podrobne sa budem venovať v druhej časti tejto recenzie. Tento článok bol napísaný veľmi pomaly, pretože hľadanie originálnych diskov je teraz ťažké. Momentálne už mám všetky verzie ruského softvéru na rozpoznávanie hlasu a textu, okrem Combat 2.52. Nikto z mojich priateľov ani kolegov tento program nemá a ja sám mám na fórach len pár pochvalných recenzií. Je pravda, že existovala taká zvláštna možnosť - stiahnuť si "Combat" cez SMS, ale nepáči sa mi to. (obrázok 16)


    Krátky videoklip vám ukáže, ako funguje rozpoznávanie reči v smartfóne s OS Android. Funkciou hlasového vytáčania je potreba pripojenia k serverom Google. Internet by vám teda mal fungovať

    Tento telefón má rozpoznávanie reči alebo hlasový vstup, no funguje to len cez internet, s pripojením k službám Google. Ale telefón sa dá naučiť rozpoznávať reč bez internetu, pozrieme sa na to, ako povoliť rozpoznávanie ruského jazyka offline. Aby táto metóda fungovala, musíte mať nainštalované dve aplikácie. Hlasové vyhľadávanie a Google vyhľadávanie, hoci tieto programy sú už prítomné v továrenskom firmvéri.

    Pre firmvér

    Prejdite do nastavení telefónu a vyberte

    Vyberieme ruský jazyk a stiahneme ho.

    Pre firmvér 2.8B

    V novom firmvéri je položka ponuky " Offline rozpoznávanie reči“ chýba.

    Ak ste pred aktualizáciou firmvéru mali nainštalované offline balíčky a počas aktualizácie ste nevymazali (neresetovali nastavenia), mali by byť uložené. V opačnom prípade sa budete musieť vrátiť k firmvéru 2.2 , nainštalujte hlasové balíčky a až potom aktualizujte systém na 2.8B.

    Pre zariadenia Rev.B

    Aktualizáciu nainštalujeme cez obnovenie a užijeme si rozpoznávanie hlasu v oyline.

    2. Stiahnite si základňu pre ruskú reč a skopírujte ju na SD kartu

    Stiahnite si Russian_offline.zip 1301

    3. Vstúpte do obnovy podržaním (Hlasitosť + a Zap.) pri vypnutom telefóne.

    4. Vyberte Použi aktualizáciu z externého úložiska a vyberte stiahnutý archív.



    Podobné články