• Kako omogućiti prepoznavanje glasa van mreže. Prepoznavanje govora pomoću desktop .NET aplikacija Prepoznavanje govora van mreže android

    12.12.2021

    Proizvodi i tehnologije:

    Visual Studio, C#, .NET Speech Libraries

    U članku se govori o:

    • dodavanje podrške za prepoznavanje govora konzolnoj aplikaciji;
    • obrada prepoznatog govora;
    • Instalacija knjižnica za prepoznavanje govora;
    • poređenje Microsoft.Speech i System.Speech;
    • Dodavanje podrške za prepoznavanje govora u Windows Forms aplikaciju.

    Sa pojavom Windows Phone Cortane, ličnog asistenta koji se aktivira govorom (kao i pandana iz voćarske kompanije o kojem se ne može uzalud pričati), aplikacije koje omogućavaju govor postale su sve istaknutije u razvoju softvera. U ovom članku ću vam pokazati kako da počnete s prepoznavanjem i sintezom govora u aplikacijama za Windows konzolu, Windows Forms aplikacijama i Windows Presentation Foundation (WPF).

    Imajte na umu da govorne mogućnosti možete dodati i Windows Phone aplikacijama, ASP.NET web aplikacijama, Windows Store aplikacijama, Windows RT i Xbox Kinect, ali tehnike se razlikuju od onih o kojima se govori u ovom članku.

    Dobar način Da biste razumjeli o čemu će se točno raspravljati u ovom članku, pogledajte snimke ekrana dva različita demo programa pirinač. 1 I 2 . Nakon pokretanja konzolne aplikacije na pirinač. 1 odmah izgovori frazu "Budan sam." Naravno, nećete moći da čujete demo aplikaciju dok čitate ovaj članak, tako da prikazuje tekst onoga što računar govori. Zatim korisnik izgovara naredbu “Speech on”. Demo aplikacija odgovara prepoznatim tekstom, a zatim interno sluša i odgovara na zahtjeve za dodavanjem dva broja.

    Rice. 1. Prepoznavanje i sinteza govora u konzolnoj aplikaciji


    Rice. 2. Prepoznavanje govora u Windows Forms aplikaciji

    Korisnik je tražio od aplikacije da doda jedan i dva, zatim dva i tri. Aplikacija je prepoznala izgovorene komande i davala odgovore glasom. Kasnije ću opisati korisnije načine korištenja prepoznavanja govora.

    Korisnik je tada rekao “Speech off”, glasovnu naredbu koja onemogućuje slušanje naredbi za dodavanje, ali ne onemogućuje potpuno prepoznavanje govora. Nakon ove verbalne naredbe, sljedeća naredba za sabiranje jedan i dva je zanemarena. Na kraju, korisnik je ponovo uključio slušanje naredbi i izgovorio besmislenu komandu „Klatu barada nikto“, koju je aplikacija prepoznala kao naredbu za potpuno deaktiviranje prepoznavanja govora i samoukidanje.

    On pirinač. 2 prikazuje aplikaciju Windows Forms sa omogućenim lažnim govorom. Ova aplikacija prepoznaje izgovorene komande, ali ne odgovara na njih glasovnim izlazom. Kada ste prvi put pokrenuli aplikaciju, potvrdni okvir Speech On nije bio označen, što znači da prepoznavanje govora nije bilo aktivno. Korisnik je označio ovo polje za potvrdu i zatim rekao "Zdravo". Aplikacija je odgovorila tako što je prikazala prepoznati tekst u kontroli ListBox na dnu prozora.

    Korisnik je tada rekao: "Postavite tekstualni okvir 1 na crveno." Aplikacija je prepoznala govor i odgovorila: „Postavi tekstualni okvir 1 crveno“, što je skoro (ali ne baš) ono što je korisnik rekao. Iako na pirinač. 2 Ne možete ga vidjeti, tekst u TextBox kontroli na vrhu prozora je zaista crven.

    Zatim je korisnik rekao: "Molimo, postavite okvir za tekst 1 na bijelo." Aplikacija je ovo prepoznala kao "postavite tekstualni okvir 1 bijelo" i učinila upravo to. Korisnik je zaključio rekavši „Zbogom“, a aplikacija je prikazala taj tekst, ali ništa nije uradila sa Windows Forms-om, iako je, na primer, mogla da obriše polje za potvrdu Govor na.

    Korištenje objekta sintisajzera je prilično jednostavno.

    U narednim odeljcima, provest ću vas kroz proces kreiranja oba demo programa, uključujući instaliranje potrebnih .NET biblioteka govora. Ovaj članak pretpostavlja da imate barem srednje vještine programiranja, ali da ne znate ništa o prepoznavanju i sintezi govora.

    Dodavanje podrške za prepoznavanje govora konzolnoj aplikaciji

    Za kreiranje demonstracije prikazane u pirinač. 1, pokrenuo sam Visual Studio i kreirao novu C# konzolnu aplikaciju pod nazivom ConsoleSpeech. Uspješno sam koristio govorne alate sa Visual Studio 2010 i 2012, ali svaka relativno novija verzija bi trebala biti u redu. Nakon učitavanja koda šablona u uređivač, preimenovao sam datoteku Program.cs u prozoru Solution Explorer u opisniji ConsoleSpeechProgram.cs, a Visual Studio je za mene preimenovao klasu Program.

    Zatim sam dodao vezu do datoteke Microsoft.Speech.dll, koja se nalazi u C:\ProgramFiles (x86)\Microsoft SDKs\Speech\v11.0\Assembly. Ovaj DLL je nedostajao na mom računaru i morao sam da ga preuzmem. Instaliranje datoteka potrebnih za dodavanje prepoznavanja govora i sinteze u aplikaciju nije tako trivijalno. Proces instalacije ću detaljno objasniti u sledećem odeljku, ali za sada pretpostavimo da je Microsoft.Speech.dll na vašem sistemu.

    Dodavanjem reference na DLL za govor, uklonio sam sve naredbe using sa vrha koda osim one koja je ukazivala na sistemski imenski prostor najvišeg nivoa. Zatim sam dodao koristeći izraze za imenske prostore Microsoft.Speech.Recognition, Microsoft.Speech.Synthesis i System.Globalization. Prva dva prostora imena su mapirana u DLL govora. Imajte na umu da postoje i prostori imena kao što su System.Speech.Recognition i System.Speech.Synthesis, koji mogu biti zbunjujući. Uskoro ću objasniti razliku između njih. Imenski prostor Globalization je bio dostupan prema zadanim postavkama i nije zahtijevao novu referencu da se doda projektu.

    Sav izvorni kod za aplikaciju demo konzole nalazi se na pirinač. 3, a dostupan je i u izvornom paketu koji prati ovaj članak. Uklonio sam svo standardno rukovanje greškama kako bih izbjegao zamagljivanje glavnih ideja što je više moguće.

    Rice. 3. Izvorni kod aplikacije Demo konzole

    korištenje sistema; korištenje Microsoft.Speech.Recognition; koristeći Microsoft.Speech.Synthesis; koristeći System.Globalization; imenski prostor ConsoleSpeech ( klasa ConsoleSpeechProgram ( static SpeechSynthesizer ss = novi SpeechSynthesizer(); static SpeechRecognitionEngine sre; static bool done = false; static bool govorOn = true; static void Main(string args.S) (etOput snizeW.Default.S); ("Govorenje: ja sam budan" ("Ja sam budan") ci = new CultureInfo("en-us"); SpeechRecognized ch_StartStopCommands = new GrammarBuilder(gb_StartStop.); d(" 4"); gb_WhatIsXplusY.Append("Šta je"); gb_WhatIsXplusY.Append(ch_Numbers); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(ch_Numbers); Gramatika g_WhatIsXplusY = nova gramatika(gb_WhatIsXplusY); sre.LoadGrammarAsync(g_StartStop); sre.LoadGrammarAsync(g_WhatIsXplusY); sre.RecognizeAsync(RecognizeMode.Multiple); while (done == false) ( ; ) Console.WriteLine("\nHit< enter >zatvoriti shell\n"); Console.ReadLine(); ) catch (Exception ex) ( Console.WriteLine(ex.Message); Console.ReadLine(); ) ) // Glavni statički void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e ) ( string txt = e.Result.Text; float confidence = e.Result.Confidence; Console.WriteLine("\nPrepoznato: " + txt); if (pouzdanje< 0.60) return; if (txt.IndexOf("speech on") >= 0) ( Console.WriteLine("Govor je sada UKLJUČEN"); govorOn = istina; ) if (txt.IndexOf("govor isključen") >= 0) ( Console.WriteLine("Govor je sada ISKLJUČEN"); govorOn = false ) if (speechOn == false) return; if (txt.IndexOf("klatu") >= 0 && txt.IndexOf("barada") >= 0) (((SpeechRecognitionEngine)sender). RecognizeAsyncCancel(); done = true; Console.WriteLine("(Speaking: Zbogom)"); ss.Speak("Zbogom"); ) if (txt.IndexOf("Što") >= 0 && txt.IndexOf("plus") >= 0) ( niz riječi = txt.Split(" "); int num1 = int.Parse(words); int num2 = int.Parse(words); int sum = num1 + num2; Console.WriteLine("(Govor: " + riječi + " plus " + riječi + " jednako " + sum + ")"); ss.SpeakAsync(riječi + " plus " + riječi + " jednako " + suma); ) ) // sre_SpeechRecognized ) // Program ) // ns

    Nakon upotrebe naredbi, demo kod počinje ovako:

    imenski prostor ConsoleSpeech ( klasa ConsoleSpeechProgram ( static SpeechSynthesizer ss = novi SpeechSynthesizer(); static SpeechRecognitionEngine sre; static bool done = false; static bool govorOn = true; static void Main(string args) ( ...

    Objekt SpeechSynthesizer, na nivou klase, omogućava aplikaciji da sintetiše govor. Objekt SpeechRecognitionEngine omogućava aplikaciji da sluša i prepozna izgovorene riječi ili fraze. Logička varijabla done određuje kada se cijela aplikacija završava. Booleova varijabla govora On kontrolira hoće li aplikacija slušati bilo koju naredbu osim naredbe za izlazak iz programa.

    Ideja je da konzolna aplikacija ne prihvata unos sa tastature, tako da uvek sluša komande. Međutim, ako je govor On lažan, prepoznaje se i izvršava samo naredba za izlazak iz programa; ostale komande se prepoznaju, ali se zanemaruju.

    Glavna metoda počinje ovako:

    try ( ss.SetOutputToDefaultAudioDevice(); Console.WriteLine("\n(Govorim: budan sam)"); ss.Speak("Budan sam");

    Instanca objekta SpeechSynthesizer je kreirana kada je deklarisan. Korištenje objekta sintisajzera je prilično jednostavno. Metoda SetOutputToDefaultAudioDevice šalje izlaz na zvučnike povezane na vaš računar (takođe možete poslati izlaz u datoteku). Metoda Speak uzima niz i zatim ga izgovara. Eto kako je to lako.

    Prepoznavanje govora je mnogo složenije od sinteze govora. Glavna metoda se nastavlja kreiranjem objekta razrješača:

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

    Prvo, objekt CultureInfo specificira jezik koji treba prepoznati, u ovom slučaju engleski engleski. Objekt CultureInfo nalazi se u imenskom prostoru Globalization, na koji smo referencirali naredbom using. Zatim, nakon pozivanja konstruktora SpeechRecognitionEngine, glasovni unos se dodjeljuje zadanom audio uređaju - najčešće mikrofonu. Imajte na umu da većina laptopa ima ugrađen mikrofon, ali desktop računare Trebat će vam vanjski mikrofon (koji se ovih dana često kombinuje sa slušalicama).

    Ključna metoda za objekat prepoznavača je rukovalac događaja SpeechRecognized. Kada koristite Visual Studio, ako upišete "sre.SpeechRecognized +=" i sačekate djelić sekunde, IntelliSense će automatski završiti vaš izraz s imenom rukovatelja događaja - sre_SpeechRecognized. Predlažem da pritisnete tipku Tab da prihvatite prijedlog i koristite ovo ime kao zadano.

    Izbori ch_Numbers = novi izbori(); ch_Numbers.Add("1"); ch_Numbers.Add("2"); ch_Numbers.Add("3"); ch_Numbers.Add("4"); // sa tehničkim gledišta, // ovo je Add(new string ( "4")); GrammarBuilder gb_WhatIsXplusY = new GrammarBuilder(); gb_WhatIsXplusY.Append("Šta je"); gb_WhatIsXplusY.Append(ch_Numbers); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(ch_Numbers); Gramatika g_WhatIsXplusY = nova gramatika(gb_WhatIsXplusY);

    Tri glavna objekta ovdje su izbori, GrammarBuilder predložak i Grammar kontrola. Kada kreiram gramatiku za prepoznavanje, počinjem navođenjem nekih konkretnih primjera onoga što trebam prepoznati. Recimo: "Šta je jedan plus dva?" i "Šta je tri plus četiri?"

    Zatim definiram odgovarajući generički šablon, na primjer "Šta je plus ?. Predložak je GrammarBuilder, a specifične vrijednosti koje se prosljeđuju predlošku su skup izbora. Gramatički objekat obuhvata predložak i izbore.

    U demo programu, ograničavam dodatke na 1 do 4 i dodajem ih kao nizove u skup izbora. Efikasniji pristup:

    brojevi niza = novi niz ("1", "2", "3", "4" ); Izbori ch_Numbers = novi izbori(brojevi);

    Predstavljam manje efikasan pristup kreiranju skupa izbora iz dva razloga. Prvo, dodavanje jednog po jednog reda bio je jedini pristup koji sam vidio u drugim primjerima prepoznavanja govora. Drugo, možda mislite da dodavanje jednog po jednog reda uopšte ne bi trebalo da funkcioniše; Visual Studio IntelliSense pokazuje u realnom vremenu da jedno od preopterećenja Add prihvata parametar tipa params niz fraza. Ako niste primetili ključna riječ params, možda ste pretpostavili da metoda Add prihvata samo nizove stringova, a ne jedan string. Ali nije tako: on prihvata i jedno i drugo. Preporučujem prosljeđivanje niza.

    Kreiranje skupa izbora od uzastopnih brojeva je donekle poseban slučaj i omogućava programski pristup kao što je:

    brojevi niza = novi niz; za (int i = 0; i< 100; ++i) numbers[i] = i.ToString(); Choices ch_Numbers = new Choices(numbers);

    Nakon kreiranja izbora za popunjavanje slotova GrammarBuilder-a, demo program kreira GrammarBuilder, a zatim i kontrolnu Gramatiku:

    GrammarBuilder gb_WhatIsXplusY = new GrammarBuilder(); gb_WhatIsXplusY.Append("Šta je"); gb_WhatIsXplusY.Append(ch_Numbers); gb_WhatIsXplusY.Append("plus"); gb_WhatIsXplusY.Append(ch_Numbers); Gramatika g_WhatIsXplusY = nova gramatika(gb_WhatIsXplusY);

    Demo program koristi sličan predložak za kreiranje gramatike za naredbe start i stop:

    Izbori ch_StartStopCommands = new Choices(); ch_StartStopCommands.Add("govor uključen"); ch_StartStopCommands.Add("govor isključen"); ch_StartStopCommands.Add("klatu barada nikto"); GrammarBuilder gb_StartStop = novi GrammarBuilder(); gb_StartStop.Append(ch_StartStopCommands); Gramatika g_StartStop = nova gramatika(gb_StartStop);

    Gramatike se mogu definisati vrlo fleksibilno. Ovdje su naredbe “govor uključen”, “govor isključen” i “klatu barada nikto” smještene u jednu gramatiku, jer su logički povezane. Ove tri naredbe se mogu definirati u tri različite gramatike, ili naredbe "govor uključen" i "govor isključen" mogu se smjestiti u jednu gramatiku, a naredba "klatu barada nikto" u drugu.

    Nakon što kreirate sve Gramatičke objekte, stavite ih u prepoznavač govora i prepoznavanje govora se aktivira:

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

    Argument RecognizeMode.Multiple je potreban kada imate više od jedne gramatike, što će biti slučaj u svim programima osim u najjednostavnijim. Glavna metoda se završava na sljedeći način:

    Dok (done == false) ( ; ) Console.WriteLine("\nHit< enter >zatvoriti shell\n"); Console.ReadLine(); ) catch (Exception ex) ( Console.WriteLine(ex.Message); Console.ReadLine(); ) ) // Main

    Prazna petlja while koja izgleda čudno omogućava vam da održite ljusku konzolne aplikacije pokrenutom. Petlja će biti dovršena kada se logička varijabla na nivou klase done postavi na true od strane rukovatelja događaja prepoznavanja govora.

    Prepoznata obrada govora

    Kod za rukovanje događajima prepoznavanja govora počinje ovako:

    static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) ( string txt = e.Result.Text; float confidence = e.Result.Confidence; Console.WriteLine("\nRecognized: " + (conftxtx); " +< 0.60) return; ...

    Prepoznati tekst je pohranjen u svojstvu Result.Text objekta SpeechRecognizedEventArgs. Alternativno, možete koristiti skup Result.Words. Svojstvo Result.Confidence pohranjuje vrijednost između 0,0 i 1,0 koja predstavlja grubu procjenu toga koliko dobro izgovoreni tekst odgovara bilo kojoj gramatici povezanoj s prepoznavačom. Demo program daje instrukcije rukovaocu događaja da ignoriše tekst sa niskim poverenjem u prepoznati tekst.

    Vrijednosti pouzdanosti uvelike variraju ovisno o složenosti vaše gramatike, kvaliteti mikrofona i drugim faktorima. Na primjer, ako demo program treba da prepozna samo brojeve od 1 do 4, vrijednosti pouzdanosti na mom računalu su obično oko 0,75. Ali, ako gramatika mora prepoznati brojeve od 1 do 100, vrijednosti pouzdanosti padaju na oko 0,25. Ukratko, obično biste trebali eksperimentirati s vrijednostima pouzdanosti kako biste postigli dobre rezultate prepoznavanja govora.

    if (txt.IndexOf("govor uključen") >= 0) ( Console.WriteLine("Govor je sada UKLJUČEN"); govorOn = true; ) if (txt.IndexOf("govor isključen") >= 0) ( Konzola .WriteLine("Govor je sada ISKLJUČEN" = false if (speechOn == false) return;

    Iako u početku možda nije sasvim očigledno, ova logika bi trebala imati smisla ako razmislite o tome. Zatim se obrađuje tajna naredba za izlaz:

    if (txt.IndexOf("klatu") >= 0 && txt.IndexOf("barada") >= 0) (((SpeechRecognitionEngine)sender).RecognizeAsyncCancel(); done = true; Console.WriteLine("(Speaking: Zbogom)"); ss.Speak("Zbogom"); )

    Imajte na umu da mehanizam za prepoznavanje govora zapravo može prepoznati besmislice. Ako Gramatički objekat sadrži riječi koje nisu u ugrađenom rječniku objekta, Grammar pokušava identificirati te riječi koristeći semantičku heuristiku ako je moguće, i obično je prilično uspješan. Zato sam koristio "klatu" umjesto ispravnog "klaatu" (iz starog naučno-fantastičnog filma).

    Također imajte na umu da nije potrebno obraditi sav tekst prepoznat u Gramatici („klatu barada nikto“) – samo trebate imati dovoljno informacija da jedinstveno identificirate gramatičku frazu („klatu“ i „barada“).

    If (txt.IndexOf("What") >= 0 && txt.IndexOf("plus") >= 0) ( niz riječi = txt.Split(" "); int num1 = int.Parse(words); int num2 = int.Parse(words int sum = num1 + num2 Console.WriteLine("(Izgovaranje: " + riječi + " jednako je " + suma + ")"); " jednako " + suma ) ) // sre_SpeechRecognized ) // Program ) // ns

    Imajte na umu da je tekst u Results.Text osjetljiv na velika i mala slova ("Šta" i "šta"). Nakon prepoznavanja fraze, može se raščlaniti na određene riječi. U ovom slučaju, prepoznati tekst je oblika „Šta je x plus y“, pa se „Šta“ stavlja u riječi, a dva dodana broja (kao nizovi) se pohranjuju u riječi i riječi.

    Instaliranje biblioteka

    Objašnjenje demo programa pretpostavlja da su sve potrebne govorne biblioteke instalirane na vašem računaru. Da biste kreirali i pokrenuli demo programe, potrebno je da instalirate četiri paketa: SDK (omogućava kreiranje demonstracija u Visual Studiju), runtime (pokreće demonstracije nakon što se kreiraju) i prepoznate i sintetizovane (izgovorene) jezike.

    Da biste instalirali SDK, potražite na Internetu “Speech Platform 11 SDK”. Ovo će vas odvesti na ispravnu stranicu u Microsoft centru za preuzimanje ( pirinač. 4). Klikom na dugme Preuzmi vidjet ćete opcije prikazane u pirinač. 5. SDK dolazi u 32- i 64-bitnim verzijama. Toplo savjetujem korištenje 32-bitne verzije bez obzira na bitnu veličinu vašeg sistema. 64-bitna verzija ne radi s nekim aplikacijama.


    Rice. 4. Glavna stranica za instalaciju SDK-a u Microsoft centru za preuzimanje


    Rice. 5. Instalirajte SDK za govor

    Ne treba vam ništa više od jedne .msi datoteke pod x86 (za 32-bitne sisteme). Odabirom ove datoteke i klikom na Next, možete pokrenuti instalater direktno odavde. Biblioteke govora ne daju mnogo povratnih informacija o tome kada je instalacija završena, stoga nemojte tražiti nikakve poruke o uspjehu.


    Rice. 6. Instalacija okruženja za izvršavanje

    Izuzetno je važno odabrati istu verziju platforme (11 u demo) i bitnu dubinu (32 ili 64) kao SDK. Opet, toplo preporučujem 32-bitnu verziju, čak i ako koristite 64-bitni sistem.

    Zatim možete postaviti jezik prepoznavanja. Stranica za preuzimanje nalazi se na pirinač. 7. Demo program koristi datoteku MSSpeech_SR_en-us_TELE.msi (engleski-SAD). SR označava prepoznavanje govora, a TELE znači telefoniju; to znači da je prepoznati jezik dizajniran da radi sa audio ulazom niske kvalitete, kao što je telefonski ili desktop mikrofon.


    Rice. 7. Postavljanje prepoznatog jezika

    Konačno, možete podesiti jezik i glas za sintezu govora. Stranica za preuzimanje nalazi se na pirinač. 8. Demo program koristi datoteku MSSpeech_TTS_en-us_Helen.msi. TTS (text-to-speech) je u suštini sinonim za sintezu govora. Obratite pažnju na dva dostupna glasa engleski, američki Postoje i drugi engleski glasovi, ali ne i američki. Kreiranje datoteka jezika sinteze je veoma težak zadatak. Međutim, možete kupiti i instalirati druge glasove od raznih kompanija.


    Rice. 8. Podešavanje jezika glasa i sinteze

    Zanimljivo, iako su jezik za prepoznavanje govora i jezik sinteze glasa/govora zapravo potpuno različite stvari, oba paketa su opcije na istoj stranici za preuzimanje. UI centra za preuzimanje omogućava vam da provjerite i jezik za prepoznavanje i jezik sinteze, ali pokušaj da ih instalirate u isto vrijeme bio je katastrofalan za mene, pa preporučujem da ih instalirate zasebno.

    Poređenje Microsoft.Speech sa System.Speech

    Ako ste novi u prepoznavanju i sintezi govora za Windows aplikacije, lako se možete zbuniti dokumentacijom jer postoji više govornih platformi. Konkretno, pored biblioteke Microsoft.Speech.dll koju koriste demo programi u ovom članku, postoji biblioteka pod nazivom System.Speech.dll koja je dio Windows operativnog sistema. Dvije biblioteke su slične u smislu da su njihovi API-ji gotovo, ali ne i potpuno, identični. Stoga, ako tražite primjere obrade govora na Internetu i vidite isječke koda, a ne kompletne programe, uopće nije očito da li je primjer System.Speech ili Microsoft.Speech.

    Ako ste novi u obradi govora, koristite biblioteku Microsoft.Speech umjesto System.Speech da dodate govornu podršku vašoj .NET aplikaciji.

    Iako obje biblioteke dijele zajedničku bazu kodova jezgre i slične API-je, one se definitivno razlikuju. Neke ključne razlike su sažete u sto 1.

    Table 1. Glavne razlike između Microsoft.Speech i System.Speech

    System.Speech DLL je dio OS-a, tako da je instaliran na svakom Windows sistemu. Microsoft.Speech DLL (i povezano vrijeme izvođenja i jezici) moraju se preuzeti i instalirati na sistem. Prepoznavanje pomoću System.Speech obično zahteva obuku za određenog korisnika, kada korisnik pročita neki tekst, a sistem nauči da razume karakteristike izgovora ovog korisnika. Prepoznavanje pomoću Microsoft.Speech radi odmah za svakog korisnika. System.Speech može prepoznati gotovo svaku riječ (ovo se zove slobodni diktat). Microsoft.Speech će prepoznati samo riječi i fraze koje se nalaze u Grammar objektu definiranom u programu.

    Dodavanje podrške za prepoznavanje govora u Windows Forms aplikaciju

    Proces za dodavanje podrške za prepoznavanje govora i sintezu u Windows Forms ili WPF aplikaciju sličan je onom za aplikaciju konzole. Za kreiranje demo programa prikazanog u pirinač. 2, pokrenuo sam Visual Studio, kreirao novu C# Windows Forms aplikaciju i preimenovao je u WinFormSpeech.

    Nakon učitavanja koda šablona u uređivač, dodao sam vezu na datoteku Microsoft.Speech.dll u prozor Solution Explorer - baš kao što sam učinio u programu konzole. Na vrhu izvornog koda uklonio sam nepotrebne izraze using, ostavljajući samo reference na imenske prostore System, Data, Crtež i Forms. Zatim sam dodao dva koristeći izraza za imenske prostore Microsoft.Speech.Recognition i System.Globalization.

    Demonstracija zasnovana na Windows Forms ne koristi sintezu govora, tako da se ne povezujem sa bibliotekom Microsoft.Speech.Synthesis. Dodavanje sinteze govora u Windows Forms aplikaciju je isto kao i u konzolnoj aplikaciji.

    U Visual Studiju u modu dizajna, prevukao sam kontrole TextBox, CheckBox i ListBox na obrazac. Dvaput kliknite na CheckBox i Visual Studio je automatski kreirao kostur CheckChanged metod rukovanja događajima.

    Podsjetimo da je program demo konzole odmah počeo osluškivati ​​izgovorene komande i nastavio to činiti sve dok nije prekinut. Ovaj pristup bi se mogao koristiti u Windows Forms aplikaciji, ali sam umjesto toga odlučio da omogućim korisniku da uključi i isključi prepoznavanje govora koristeći CheckBox kontrolu (tj. polje za potvrdu).

    Izvorni kod u datoteci Form1.cs demo programa gdje je definirana djelomična klasa prikazan je na pirinač. 9. Objekt mašine za prepoznavanje govora je deklariran i kreiran kao član obrasca. U konstruktoru obrasca spajam rukovalac događaja SpeechRecognized, a zatim kreiram i učitavam dva Grammars objekta:

    public Form1() ( InitializeComponent(); sre.SetInputToDefaultAudioDevice(); sre.SpeechRecognized += sre_SpeechRecognized; Gramatika g_HelloGoodbye = GetHelloGoodbyeGrammar(); Gramatika g_SetTextBox(); Gramatika g_SetTextBox(); elloGood) ćao sre.LoadGrammarAsync(g_SetTextBox). ); // sre.RecognizeAsync() je // u obrađivaču događaja CheckBox)

    Rice. 9. Dodajte podršku za prepoznavanje govora u Windows Forms

    korištenje sistema; koristeći System.Data; koristeći System.Drawing; koristeći System.Windows.Forms; korištenje Microsoft.Speech.Recognition; koristeći System.Globalization; imenski prostor WinFormSpeech ( javna parcijalna klasa Form1: Form ( static CultureInfo ci = new CultureInfo("en-us"); static SpeechRecognitionEngine sre = new SpeechRecognitionEngine(ci); public Form1() ( InitializeComponent(); Default sre.SetInput); .SpeechRecognized += sre_SpeechRecognized .RecognizeAsync() je // u obrađivaču događaja CheckBox) statična gramatika GetHelloGoodbyeGrammar() (Izbori ch_HelloGoodbye = new Choices(); ch_HelloGoodbye(); ch_HelloGoodbye"HelloGoodby" ćao") ; GrammarBuilder gb_result = new Grammar (ch_HelloGoodbye) g_result = new Grammar (gb_result); ", "plavo" )); GrammarBuilder gb_result = novi GrammarBuilder(); gb_result.Append("podesi tekstualni okvir 1"); gb_result.Append(ch_Colors); Gramatika g_result = nova gramatika(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) // disabled sreAsync(CheckBox1.Checked == false) // disabled sreAsync)C void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) ( string txt = e.Result.Text; float conf = e.Result.Confidence; if (conf< 0.65) return; this.Invoke(new MethodInvoker(() =>( listBox1.Items.Add("Čuo sam da si rekao: " + txt); ))); // WinForm specificira if (txt.IndexOf("text") >= 0 && txt.IndexOf("box") >= 0 && txt.IndexOf("1")>= 0) ( niz riječi = txt.Split( " " this.Invoke(new MethodInvoker() => (textBox1.Text = words; ))) // Specifičnosti WinForma ) // ns

    Mogao sam direktno kreirati dva Gramatička objekta, kao u konzolnom programu, ali umjesto toga, da bi kod bio malo jasniji, definirao sam dvije pomoćne metode (GetHelloGoodbyeGrammar i GetTextBox1TextGrammar) koje obavljaju posao.

    static Grammar GetTextBox1TextGrammar() (Izbori ch_Colors = new Choices(); ch_Colors.Add(new string ( "red", "white", "blue")); GrammarBuilder gb_result = new GrammarBuilder(); gb_result.Append("Result text.Append("). box 1"); gb_result.Append(ch_Colors); Gramatika g_result = nova gramatika(gb_result); return g_result; )

    Ova pomoćna metoda će prepoznati frazu "postavi tekstualni okvir 1 crveno". Međutim, korisnik nije dužan da tačno izgovori ovu frazu. Na primjer, mogao bi reći "Molimo, postavite tekst u tekstualni okvir 1 na crveno" i mehanizam za prepoznavanje govora bi i dalje prepoznao frazu kao "postavite tekstualni okvir 1 crveno" - iako s nižom vrijednošću pouzdanosti od potpunog podudaranja s gramatikom šablon. Drugim riječima, kada kreirate Gramatičke objekte, ne morate uzeti u obzir sve varijacije fraze. Ovo radikalno pojednostavljuje upotrebu prepoznavanja govora.

    Obrađivač događaja za CheckBox je definiran ovako:

    private void checkBox1_CheckedChanged(object sender, EventArgs e) ( if (checkBox1.Checked == true) sre.RecognizeAsync(RecognizeMode.Multiple); else if (checkBox1.Checked == false) // disabledA sre.Recogniance (isključeno);

    Objekt mašine za prepoznavanje govora, sre (mašina za prepoznavanje govora), uvijek postoji za vrijeme trajanja Windows Forms aplikacije. Ovaj objekat se aktivira i deaktivira pozivima metodama RecognizeAsync i RecognizeAsyncCancel kada korisnik uključi CheckBox respektivno.

    Definicija obrađivača događaja SpeechRecognized počinje sa:

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

    Osim više ili manje stalno korištenih svojstava Result.Text i Result.Confidence, objekt Result ima nekoliko drugih korisnih, ali složenijih svojstava koje biste možda željeli istražiti; na primjer, homofoni i zamjenske jedinice riječi. Osim toga, mehanizam za prepoznavanje govora pruža nekoliko korisnih događaja kao što je SpeechHypothesized.

    this.Invoke((Action)(() => listBox1.Items.Add("Čuo sam da kažete: " + txt)));

    U teoriji, korištenje MethodInvoker delegata je malo efikasnije od Akcije u ovoj situaciji jer je MethodInvoker dio imenskog prostora Windows.Forms i stoga specifičan za Windows Forms aplikacije. Delegat akcije je svestraniji. Ovaj primjer pokazuje da možete u potpunosti manipulirati Windows Forms aplikacijom putem mehanizma za prepoznavanje govora - ovo je nevjerovatno moćna i korisna funkcija.

    Zaključak

    Informacije predstavljene u ovom članku trebale bi vas odmah pokrenuti ako želite istražiti sintezu i prepoznavanje govora u .NET aplikacijama. Savladavanje same tehnologije nije previše teško kada prođete neravnine osnovno obrazovanje i ugradnju komponenti. Pravi izazov u sintezi i prepoznavanju govora je razumijevanje kada je to zapravo korisno.

    Uz konzolne programe, možete kreirati zanimljive razgovore naprijed-nazad u kojima korisnik postavlja pitanje, a program odgovara, što u suštini rezultira okruženjem sličnim Cortani. Morate biti oprezni jer kada govor dolazi iz zvučnika vašeg računara, mikrofon će ga uhvatiti i možda će ga ponovo prepoznati. Našao sam se u nekim prilično smiješnim situacijama kada sam postavio pitanje, aplikacija ga je prepoznala i odgovorila, ali izgovoreni odgovor je pokrenuo sljedeći događaj prepoznavanja i završio sam sa smiješnom, beskonačnom govornom petljom.

    Druga moguća upotreba govora u konzolnom programu je prepoznavanje komandi poput "Pokreni Notepad" i "Pokreni Word". Drugim riječima, takav konzolni program može se koristiti na vašem računalu za obavljanje radnji koje bi inače zahtijevale mnogo manipulacije tastaturom i mišem.

    James McCaffrey(Dr. James McCaffrey) radi za Microsoft Research u Redmondu, Washington. Učestvovao je u kreiranju nekoliko Microsoft proizvoda, uključujući Internet Explorer i Bing. Može se kontaktirati na [email protected].

    Hvala stručnjacima Microsoft Research Robu Gruenu, Marku Marronu i Curtisu von Vehu na recenziji ovog članka.

    Nijedan program ne može u potpunosti zamijeniti ručni rad transkripcijom snimljenog govora. Međutim, postoje rješenja koja mogu značajno ubrzati i olakšati prevođenje govora u tekst, odnosno pojednostaviti transkripciju.

    Transkripcija je snimanje audio ili video datoteke u tekstualnom obliku. Na internetu postoje plaćeni zadaci, kada se izvođaču plaća određena svota novca za prepisivanje teksta.

    Prevod govora u tekst je koristan

    • studenti da prevedu snimljena audio ili video predavanja u tekst,
    • blogeri koji vode web stranice i blogove,
    • pisci, novinari za pisanje knjiga i tekstova,
    • informacioni biznismeni kojima je potreban tekst nakon webinara, govora itd.,
    • ljudi koji imaju poteškoća s kucanjem - mogu izdiktirati pismo i poslati ga porodici ili prijateljima,
    • druge opcije.

    Opisaćemo najefikasnije alate dostupne na računarima, mobilnim aplikacijama i onlajn servisima.

    1 Web stranica speakpad.ru

    Ovo je online usluga koja vam omogućava da prevedete govor u tekst pomoću Google Chrome pretraživača. Servis radi sa mikrofonom i gotovim fajlovima. Naravno, kvalitet će biti mnogo veći ako koristite eksterni mikrofon i sami diktirate. Međutim, usluga radi dobar posao čak i sa YouTube video zapisima.

    Kliknite na "Omogući snimanje", odgovorite na pitanje o "Korišćenje mikrofona" - da biste to učinili, kliknite na "Dozvoli".

    Dugačka uputstva o korišćenju usluge mogu se sažeti klikom na dugme 1 na Sl. 3. Oglašavanja se možete riješiti jednostavnom registracijom.

    Rice. 3. Usluga govorne podloge

    Gotov rezultat je lako urediti. Da biste to učinili, morate ručno ispraviti istaknutu riječ ili je ponovo izdiktirati. Rezultati rada se pohranjuju u lični račun, možete ih preuzeti i na svoj računar.

    Spisak video lekcija o radu sa govornom podlogom:

    Video zapise možete transkribovati sa Youtube-a ili sa svog računara, međutim, trebat će vam mikser, više detalja:

    Video "audio transkripcija"

    Usluga radi na sedam jezika. Postoji mali minus. Leži u činjenici da ako trebate transkribovati gotov audio fajl, onda se njegov zvuk čuje kroz zvučnike, što stvara dodatne smetnje u obliku eha.

    2 Servisni diktat.io

    Prekrasan online servis koji vam omogućava da besplatno i jednostavno prevedete govor u tekst.

    Rice. 4. Servisni diktat.io

    1 na sl. 4 – Ruski jezik se može izabrati na kraju stranice. U pregledniku Google Chrome odabran je jezik, ali iz nekog razloga u Mozilli ne postoji takva opcija.

    Važno je napomenuti da je implementirana mogućnost automatskog spremanja gotovog rezultata. Ovo će spriječiti slučajno brisanje kao rezultat zatvaranja kartice ili pretraživača. Ova usluga ne prepoznaje gotove datoteke. Radi sa mikrofonom. Prilikom diktiranja trebate imenovati znakove interpunkcije.

    Tekst je sasvim korektno prepoznat, nema pravopisnih grešaka. Znakove interpunkcije možete sami umetnuti sa tastature. Gotov rezultat možete sačuvati na vašem računaru.

    3 RealSpeaker

    Ovaj program vam omogućava da lako prevedete ljudski govor u tekst. Dizajniran je za rad na različitim sistemima: Windows, Android, Linux, Mac. Uz njegovu pomoć, govor koji se čuje možete pretvoriti u mikrofon (na primjer, može se ugraditi u laptop), kao i snimljen u audio datoteke.

    Razumije 13 svjetskih jezika. Postoji beta verzija programa koja radi kao online usluga:

    Morate pratiti gornji link, odabrati ruski jezik, učitati svoj audio ili video fajl na online servis i platiti njegovu transkripciju. Nakon transkripcije, možete kopirati rezultirajući tekst. Što je veći fajl za transkripciju, to će više vremena biti potrebno za njegovu obradu, više detalja:

    U 2017. godini postojala je besplatna opcija transkripcije koristeći RealSpeaker, ali u 2018. ne postoji takva opcija. Veoma je zbunjujuće da je transkribovana datoteka dostupna svim korisnicima za preuzimanje;

    Kontakti programera (VKontakte, Facebook, Youtube, Twitter, Email, telefon) programe možete pronaći na stranici njegove web stranice (tačnije u podnožju stranice):

    4 Speechlogger

    Alternativa prethodnoj prijavi za mobilnih uređaja radi na Androidu. Besplatno dostupno u trgovini aplikacija:

    Tekst se uređuje automatski i dodaju se znaci interpunkcije. Vrlo zgodno za diktiranje bilješki sebi ili pravljenje spiskova. Kao rezultat toga, tekst će biti vrlo pristojnog kvaliteta.

    5 Zmajev diktat

    Ovo je aplikacija koja se besplatno distribuira za mobilne uređaje kompanije Apple.

    Program može raditi sa 15 jezika. Omogućava vam da uredite rezultat, odaberete sa liste prave reči. Morate jasno izgovarati sve zvukove, ne praviti nepotrebne pauze i izbjegavati intonaciju. Ponekad postoje greške u završecima riječi.

    Aplikaciju Dragon Dictation vlasnici koriste, na primjer, za diktiranje liste za kupovinu u radnji dok se kreću po stanu. Kad stignem, mogu da pogledam tekst u belešci i ne moram da slušam.

    Koji god program da koristite u svojoj praksi, budite spremni da još jednom provjerite rezultate i izvršite određena prilagođavanja. Ovo je jedini način da dobijete besprijekoran tekst bez grešaka.

    Također korisne usluge:

    Primajte najnovije članke o kompjuterskoj pismenosti direktno na svoje Mailbox .
    Već više 3.000 pretplatnika

    .

    Ažurirano: ponedeljak, 31. jul 2017

    Kakve veze polufantastična ideja razgovora sa kompjuterom ima sa profesionalnom fotografijom? Gotovo nikakve, osim ako niste ljubitelj ideje beskonačnog razvoja cjelokupnog tehničkog okruženja čovjeka. Zamislite na trenutak da svojim glasom naređujete kameri da se promijeni žižna daljina i korigirajte ekspoziciju za pola stop plus. Daljinski upravljač kamera je već implementirana, ali tamo morate tiho pritisnuti dugmad, ali ovdje je kamera za sluh!

    Postala je tradicija da se neki naučnofantastični film navodi kao primjer glasovne komunikacije između osobe i kompjutera, na primjer “2001: Odiseja u svemiru” u režiji Stenlija Kjubrika. Tamo, kompjuter na brodu ne samo da vodi smislen dijalog sa astronautima, već može da čita sa usana kao gluva osoba. Drugim riječima, mašina je naučila da prepoznaje ljudski govor bez grešaka. Možda će se nekima daljinsko glasovno upravljanje kamerom činiti suvišnim, ali mnogima bi se ova fraza dopala "Spusti nas, dušo" i fotografija cijele porodice na pozadini palme je spremna.

    Pa, odao sam počast tradiciji i malo maštao. Ali, govoreći iz srca, ovaj članak je bilo teško napisati, a sve je počelo poklonom u obliku pametnog telefona sa Android 4 OS-om. Ovaj model HUAWEI U8815 ima mali ekran osetljiv na dodir od četiri inča i tastaturu na ekranu. Malo je neobično kucati na njemu, ali ispostavilo se da nije posebno potrebno. (slika 01)

    1. Prepoznavanje glasa na pametnom telefonu koji koristi Android OS

    Dok sam isprobavao novu igračku, primijetio sam grafiku mikrofona u traci za pretraživanje Google i na tastaturi u Notes. Ranije me nije zanimalo šta ovaj simbol znači. Vodio sam razgovore Skype, i kucali slova na tastaturi. To je ono što većina korisnika interneta radi. Ali kako su mi kasnije objasnili, u pretraživaču Google Dodana je glasovna pretraga na ruskom i pojavili su se programi koji vam omogućavaju da diktirate kratke poruke kada koristite pretraživač "Chrome".

    Rekao sam frazu od tri riječi, program ih je identificirao i pokazao u ćeliji s plavom pozadinom. Imalo je tu nešto da se iznenadite, jer su sve riječi ispravno napisane. Ako kliknete na ovu ćeliju, fraza se pojavljuje u tekstualnom polju Android notepada. Pa sam rekao još par fraza i poslao poruku asistentu putem SMS-a.


    2. Kratka istorija programa za prepoznavanje glasa.

    Za mene nije bilo otkriće da savremeni napredak u glasovnoj kontroli omogućava izdavanje komandi kućanskih aparata, auto, robot. Komandni režim je uveden u prethodnim verzijama Windows, OS/2 i Mac OS. Nailazio sam na programe za razgovor, ali kakva je korist od njih? Možda je moja posebnost što mi je lakše da govorim nego da kucam po tastaturi, ali na mobilnom ne mogu da kucam baš ništa. Morate da zapišete kontakte na laptopu sa normalnom tastaturom i prenesete ih preko USB kabla. Ali da jednostavno govorim u mikrofon i da kompjuter ukuca sam tekst bez grešaka bio je san za mene. Atmosferu beznađa održavale su diskusije na forumima. Svuda je bila tako tužna misao:

    “Međutim, u stvarnosti, do danas, programi za stvarno prepoznavanje govora (pa čak i na ruskom) praktički ne postoje, a očito neće biti kreirani uskoro. Štaviše, čak ni inverzni problem prepoznavanja - sinteza govora, koji je, čini se, mnogo jednostavniji od prepoznavanja, nije u potpunosti riješen." (ComputerPress br. 12, 2004.)

    “Još uvijek ne postoje normalni programi za prepoznavanje govora (ne samo ruski) jer je zadatak prilično težak za kompjuter. A najgore je to što mehanizam prepoznavanja riječi od strane ljudi još nije realiziran, tako da nema od čega poći pri kreiranju programa za prepoznavanje.” (Još jedna diskusija na forumu).

    U isto vrijeme, pregledi programa za glasovni unos teksta na engleskom jeziku pokazali su jasne uspjehe. Na primjer, IBM ViaVoice 98 Executive Edition imao osnovni vokabular od 64.000 riječi i mogućnost da dodate isti broj vlastitih riječi. Procenat prepoznavanja riječi bez obuke programa iznosio je oko 80%, a uz naknadni rad sa određenim korisnikom dostigao je 95%.

    Među programima za prepoznavanje ruskog jezika, vrijedi istaknuti "Gorynych" - dodatak Dragon Dictate 2.5 na engleskom jeziku. Reći ću vam o potrazi, a potom i o „bitci sa pet Gorynych-a“ u drugom dijelu recenzije. Prvi koji sam pronašao bio je "Engleski zmaj".

    3. Kontinuirani program za prepoznavanje govora “Zmaj prirodno govori”

    Moderna verzija programa kompanije "Nijansa" završio kod mog starog prijatelja sa Instituta u Minsku strani jezici. Donijela ga je sa putovanja u inostranstvu i kupila misleći da bi to mogla biti “kompjuterska sekretarica”. Ali nešto nije išlo, a program je ostao na laptopu, gotovo zaboravljen. Zbog nedostatka bilo kakvog jasnog iskustva, morala sam sama ići kod drugarice. Sav ovaj poduži uvod je neophodan za pravilno razumijevanje zaključaka koje sam izveo.

    Puno ime mog prvog zmaja je bilo: . Program je na engleskom i sve je jasno i bez priručnika. Prvi korak je kreiranje profila određenog korisnika kako bi se odredile zvučne karakteristike riječi u njegovoj izvedbi. To sam i uradio - godine govornika, država i karakteristike izgovora su važne. Moj izbor je sljedeći: dob 22–54 godine, britanski engleski, standardni izgovor. Sledeće je nekoliko prozora u kojima konfigurišete mikrofon. (slika 04)

    Sljedeća faza za ozbiljne programe prepoznavanja govora je obuka za karakteristike izgovora određene osobe. Od vas se traži da odaberete prirodu teksta: moj izbor je kratka instrukcija za diktat, ali možete i „naručiti“ duhovitu priču.

    Suština ove faze rada sa programom je krajnje jednostavna - tekst se prikazuje u prozoru, sa žutom strelicom iznad. Kada se pravilno izgovori, strelica se kreće kroz fraze, a na dnu se nalazi traka napretka treninga. Poprilično sam zaboravio konverzacijski engleski, pa sam teško napredovao. Vrijeme je također bilo ograničeno – kompjuter nije bio moj i morao sam prekinuti trening. Ali prijateljica je rekla da je uradila test za manje od pola sata. (slika 05)

    Odbijajući da dozvoli programu da prilagodi moj izgovor, otišao sam do glavnog prozora i pokrenuo ugrađeni uređivač teksta. Izgovarao je pojedinačne riječi iz nekih tekstova koje je pronašao na kompjuteru. Program je ispisao one riječi koje je rekao ispravno, a one koje je rekao loše zamijenio nečim "engleskim". Nakon što je na engleskom jasno izgovorio komandu „briši liniju“, program ju je izvršio. To znači da sam ispravno pročitao komande, a program ih prepoznaje bez prethodne obuke.

    Ali bilo mi je važno kako ovaj "zmaj" piše na ruskom. Kao što ste shvatili iz prethodnog opisa, prilikom obuke programa možete odabrati samo engleski tekst, tamo jednostavno nema ruskog. Jasno je da neće biti moguće trenirati prepoznavanje ruskog govora. Na sljedećoj fotografiji možete vidjeti koju frazu je program otkucao prilikom izgovaranja ruske riječi "Hello". (slika 06)

    Ishod razgovora s prvim zmajem ispao je pomalo komičan. Ako pažljivo pročitate tekst na službenoj web stranici, možete vidjeti englesku "specijalizaciju" za ovo softverski proizvod. Osim toga, prilikom učitavanja čitamo "engleski" u prozoru programa. Pa zašto je sve ovo bilo potrebno? Jasno je da su krivi forumi i glasine...

    Ali postoji i korisno iskustvo. Moja prijateljica je tražila da vidi u kakvom je stanju njen laptop. Nekako polako je počeo da radi. To nije iznenađujuće - sistemska particija je imala samo 5% slobodnog prostora. Prilikom brisanja nepotrebnih programa vidio sam da službena verzija zauzima više od 2,3 GB. Ova brojka će nam kasnije biti od koristi. (slika.07)



    Ispostavilo se da je prepoznavanje ruskog govora bio netrivijalan zadatak. U Minsku sam uspeo da pronađem "Gorynych" od prijatelja. Dugo je tražio disk u svom starom ruševinu i, prema njegovim riječima, ovo je zvanična publikacija. Program se odmah instalirao i saznao sam da njegov rječnik sadrži 5000 ruskih riječi, plus 100 komandi i 600 engleske riječi plus 31 tim.

    Prvo morate podesiti mikrofon, što sam i uradio. Onda sam otvorio rečnik i dodao reč "pregled" jer to nije bilo u programskom rječniku. Pokušao sam da govorim jasno i monotono. Konačno, otvorio sam program Gorynych Pro 3.0, uključio režim diktiranja i dobio ovu listu „reči koje zvuče blisko“. (slika.09)

    Rezultat me zbunio, jer se jasno razlikovao na gore od rada Android pametnog telefona, pa sam odlučio isprobati druge programe iz “ Google Chrome internet prodavnica". I odložio sam bavljenje “zmijama gorynych” za kasnije. Mislio sam da jeste odlaganje radnja u izvornom ruskom duhu

    5. Googleove glasovne mogućnosti

    Za rad sa glasom običan računar sa Windows OS-om moraćete da instalirate pretraživač google chrome. Ako u njemu radite na mreži, onda u donjem desnom uglu možete kliknuti na link trgovine softver. Tamo sam, potpuno besplatno, pronašao dva programa i dva proširenja za glasovni unos teksta. Programi se pozivaju "glasovni blok" I "Voicenot - glas u tekst". Nakon instalacije, mogu se naći na kartici "Aplikacije" vaš pretraživač "Chromium". (slika 10)

    Ekstenzije se pozivaju "Haću riječ za Google glasovno pretraživanje (Beta) 0.1.0.5" I "Glasovni unos teksta - Speechpad.ru 5.4". Nakon instalacije, mogu se isključiti ili izbrisati na kartici "Proširenja".(slika 11)

    VoiceNote. Na kartici aplikacije u pregledniku Chrome dvaput kliknite na ikonu programa. Otvoriće se dijaloški okvir kao na slici ispod. Klikom na ikonu mikrofona izgovarate kratke fraze u mikrofon. Program prenosi vaše riječi na server za prepoznavanje govora i upisuje tekst u prozor. Sve riječi i fraze prikazane na ilustraciji otkucane su prvi put. Očigledno, ova metoda radi samo kada postoji aktivna internetska veza. (slika 12)

    Glasovna beležnica. Ako pokrenete program sa kartice aplikacija, otvoriće se nova kartica Internet stranice Speechpad.ru. Tu su detaljna uputstva o tome kako koristiti ovu uslugu i kompaktan obrazac. Ovo posljednje je prikazano na donjoj ilustraciji. (slika 13)

    Glasovni unos Tekst vam omogućava da svojim glasom popunite tekstualna polja na Internet stranicama. Na primjer, otišao sam na svoju stranicu "Google+". U polju za unos nove poruke, kliknite desnim tasterom miša i izaberite "SpeechPad". Ružičasti prozor za unos označava da možete diktirati svoj tekst. (slika 14)

    Google glasovno pretraživanje omogućava pretraživanje glasom. Kada instalirate i aktivirate ovu ekstenziju, u traci za pretragu se pojavljuje simbol mikrofona. Kada ga pritisnete, pojavit će se simbol u velikom crvenom krugu. Samo izgovorite svoju frazu za pretraživanje i ona će se pojaviti u rezultatima pretraživanja. (slika 15)

    Važna napomena: Da bi mikrofon radio sa ekstenzijama za Chrome, morate omogućiti pristup mikrofonu u postavkama vašeg preglednika. Podrazumevano je onemogućeno iz sigurnosnih razloga. Idi Podešavanja→ Lični podaci→ Podešavanja sadržaja. (Da biste pristupili svim postavkama na kraju liste, kliknite Pokaži dodatna podešavanja) . Otvoriće se okvir za dijalog Postavke sadržaja stranice. Odaberite stavku na listi Multimedija→mikrofon.

    6. Rezultati rada sa ruskim programima za prepoznavanje govora

    Malo iskustvo u korišćenju programa za glasovni unos teksta pokazalo je odličnu implementaciju ove funkcije na serverima jedne internet kompanije Google. Bez ikakve preliminarne obuke, riječi se prepoznaju ispravno. To ukazuje da je problem prepoznavanja ruskog govora riješen.

    Sada možemo reći da je to rezultat razvoja Google bit će novi kriterij za ocjenjivanje proizvoda drugih proizvođača. Želio bih da sistem prepoznavanja radi van mreže bez pristupa serverima kompanije - to je praktičnije i brže. Ali nije poznato kada će biti objavljen nezavisni program za rad sa kontinuiranim tokom ruskog govora. Vrijedi pretpostaviti, međutim, da će s mogućnošću treniranja ova “kreacija” postati pravi proboj.

    Programi ruskih programera "Gorynych", "diktograf" I "borba" Detaljnije ću pisati u drugom dijelu ove recenzije. Ovaj članak je pisan vrlo sporo iz razloga što je potraga za originalnim diskovima sada otežana. Trenutno već imam sve verzije ruskih motora za prepoznavanje glasa u tekst osim “Combat 2.52”. Niko od mojih prijatelja ili kolega nema ovaj program, a ja imam samo nekoliko pohvalnih recenzija na forumima. Istina, postojala je tako čudna opcija - preuzimanje "Combat" putem SMS-a, ali mi se ne sviđa. (slika 16)


    Kratak video klip će vam pokazati kako funkcioniše prepoznavanje govora na pametnom telefonu sa Android OS-om. Posebnost kucanja glasom je potreba za povezivanjem na Google servere. Ovako bi vaš internet trebao funkcionirati

    Ovaj telefon ima prepoznavanje govora ili glasovni unos, ali radi samo preko interneta, povezujući se na Google usluge. Ali telefon se može naučiti da prepoznaje govor bez interneta, pogledat ćemo kako omogućiti prepoznavanje ruskog jezika u offline. Da bi ova metoda funkcionirala, morate imati instalirane dvije aplikacije. Glasovna pretraga I Google pretraga, iako su ovi programi već prisutni u fabričkom firmveru.

    Za firmver

    Idite na postavke telefona i odaberite

    Odaberite ruski jezik i preuzmite ga.

    Za firmver 2.8B

    U novom firmveru stavka menija " Offline prepoznavanje govora"odsutan.

    Ako ste imali instalirane vanmrežne pakete prije ažuriranja firmvera, a niste obrisali (resetovali postavke) tokom ažuriranja, trebali su biti sačuvani. U suprotnom ćete morati da se vratite na firmver 2.2 , instalirajte glasovne pakete i tek onda ažurirajte sistem na 2.8B.

    Za Rev.B uređaje

    Instaliramo ažuriranje putem oporavka i uživamo u prepoznavanju glasa u oylineu.

    2. Preuzmite bazu podataka za ruski govor i kopirajte je na SD karticu

    Preuzmite Russian_offline.zip 1301

    3. Uđite u oporavak držeći (Jačina + i Uključeno) dok je telefon isključen.

    4. Odaberite Primijenite ažuriranje sa vanjske memorije i izaberite preuzetu arhivu.



    Slični članci