Download forzato del pacchetto russo sul telefono. Riconoscimento vocale ultraveloce senza server utilizzando un esempio reale

Download forzato del pacchetto russo sul telefono. Riconoscimento vocale ultraveloce senza server utilizzando un esempio reale

13.11.2020

Prodotti e tecnologie:

Visual Studio, C #, .NET Speech Libraries

L'articolo discute:

  • aggiunta del supporto per il riconoscimento vocale all'applicazione console;
  • elaborazione del discorso riconosciuto;
  • installazione di librerie per il riconoscimento vocale;
  • confronto tra Microsoft.Speech e System.Speech;
  • aggiunta del supporto per il riconoscimento vocale a un'applicazione Windows Form.

Con l'introduzione di Windows Phone Cortana, un assistente personale ad attivazione vocale (nonché una controparte di un'azienda frutticola che non dovrebbe essere menzionata invano), le app abilitate alla voce sono diventate sempre più importanti nello sviluppo del software. In questo articolo, ti mostrerò come iniziare con il riconoscimento vocale e la sintesi vocale nelle applicazioni della console Windows, nelle applicazioni Windows Form e in Windows Presentation Foundation (WPF).

Tieni presente che puoi anche aggiungere funzionalità vocali alle app di Windows Phone, alle app Web ASP.NET, alle app di Windows Store, a Windows RT e a Xbox Kinect, ma le tecniche sono diverse da quelle discusse in questo articolo.

Un buon modo per capire esattamente cosa verrà discusso in questo articolo è dare un'occhiata agli screenshot di due diverse demo su figura. 1 e 2 ... Dopo aver avviato l'applicazione console su figura. 1 dice subito "Sono sveglio". Ovviamente, non sarai in grado di ascoltare l'applicazione demo durante la lettura di questo articolo, quindi mostra il testo di ciò che dice il computer. Quindi l'utente pronuncia il comando "Speech on". L'applicazione demo risponde con il testo riconosciuto, quindi ascolta internamente e risponde alle richieste di aggiunta dei due numeri.

Figura: 1. Riconoscimento e sintesi del parlato in un'applicazione console


Figura: 2. Riconoscimento vocale nell'applicazione Windows Form

L'utente ha chiesto all'app di aggiungere uno e due, poi due e tre. L'applicazione ha riconosciuto i comandi vocali e ha dato risposte vocali. Descriverò modi più utili per utilizzare il riconoscimento vocale in seguito.

Quindi l'utente ha detto "Speech off" - un comando vocale che disattiva l'ascolto dei comandi per l'aggiunta di numeri, ma non disattiva completamente il riconoscimento vocale. Dopo questo comando vocale, la successiva aggiunta di 1 e 2 è stata ignorata. Infine, l'utente ha riattivato l'ascolto dei comandi ed ha pronunciato un comando senza senso "Klatu barada nikto", che l'applicazione ha riconosciuto come un comando per disattivare completamente il riconoscimento vocale e terminare se stesso.

Sopra figura. 2 mostra un'applicazione Windows Form con abilitazione vocale fittizia abilitata. Questa applicazione riconosce i comandi vocali, ma non risponde ad essi con l'emissione vocale. Quando l'applicazione è stata avviata per la prima volta, la casella di controllo Speech On non era selezionata, a indicare che il riconoscimento vocale non è attivo. L'utente ha selezionato la casella e poi ha detto "Ciao". L'applicazione ha risposto visualizzando il testo riconosciuto nel controllo ListBox nella parte inferiore della finestra.

Quindi l'utente ha detto: "Imposta la casella di testo 1 su rosso". L'applicazione ha riconosciuto il discorso e ha risposto: "Imposta la casella di testo 1 in rosso", che è quasi (ma non del tutto) esattamente ciò che ha detto l'utente. Anche se su figura. 2 non puoi vederlo, il testo nella casella di testo nella parte superiore della finestra è davvero rosso.

Quindi l'utente ha detto: "Impostare la casella di testo 1 su bianco". L'applicazione lo ha riconosciuto come "imposta casella di testo 1 bianca" e ha fatto proprio questo. Alla fine, l'utente ha detto "Arrivederci" e l'applicazione ha visualizzato questo testo, ma non ha fatto nulla con Windows Forms, anche se potrebbe, ad esempio, deselezionare la casella di controllo Speech On.

Usare l'oggetto sintetizzatore è piuttosto semplice.

Nelle sezioni seguenti, ti guiderò attraverso il processo di creazione di entrambe le demo, inclusa l'installazione delle librerie vocali .NET richieste. Questo articolo presume che tu abbia almeno un livello intermedio di capacità di programmazione, ma non sai nulla di riconoscimento vocale e sintesi.

Aggiunta del supporto per il riconoscimento vocale a un'applicazione console

Per creare la demo mostrata in figura. 1, Ho avviato Visual Studio e ho creato una nuova applicazione console C # chiamata ConsoleSpeech. Ho utilizzato con successo aiuti vocali con Visual Studio 2010 e 2012, ma qualsiasi versione relativamente recente dovrebbe funzionare. Dopo aver caricato il codice del modello nell'editor, ho rinominato il file Program.cs nella finestra Solution Explorer nel più descrittivo ConsoleSpeechProgram.cs e Visual Studio ha rinominato la classe Program per me.

Successivamente, ho aggiunto un collegamento al file Microsoft.Speech.dll, che si trova in C: \\ ProgramFiles (x86) \\ Microsoft SDKs \\ Speech \\ v11.0 \\ Assembly. Questa DLL mancava dal mio computer e ho dovuto scaricarla. Installare i file necessari per aggiungere il riconoscimento vocale e la sintesi a un'applicazione non è così banale. Spiegherò il processo di installazione in dettaglio nella prossima sezione, ma per ora diciamo che hai Microsoft.Speech.dll sul tuo sistema.

Aggiungendo un riferimento alla DLL vocale, ho rimosso tutte le istruzioni using dall'inizio del codice ad eccezione dello spazio dei nomi di sistema di primo livello. Quindi ho aggiunto le istruzioni using per gli spazi dei nomi Microsoft.Speech.Recognition, Microsoft.Speech.Synthesis e System.Globalization. I primi due spazi dei nomi vengono mappati a una DLL vocale. Tieni presente che esistono anche spazi dei nomi come System.Speech.Recognition e System.Speech.Synthesis, che possono creare confusione. Spiegherò a breve la differenza tra i due. Lo spazio dei nomi Globalizzazione era disponibile per impostazione predefinita e non richiedeva l'aggiunta di un nuovo riferimento al progetto.

L'intero codice sorgente per l'applicazione della console demo è mostrato in figura. 3ed è anche disponibile nel pacchetto sorgente che accompagna questo articolo. Ho rimosso tutta la gestione degli errori standard per evitare di offuscare il più possibile le idee principali.

Figura: 3. Codice sorgente dell'applicazione della console demo

using System; using Microsoft.Speech.Recognition; using Microsoft.Speech.Synthesis; using System.Globalization; spazio dei nomi ConsoleSpeech (class ConsoleSpeechProgram (static SpeechSynthesizer ss \u003d new SpeechSynthesizer (); static SpeechRecognitionEngine sre; static bool done \u003d false; static bool speechOn \u003d true; static void Main (string args) (try (ss.SetOutputToDriteLine) ConsoleDevice ("\\ n (Speaking: I am awake)"); ss.Speak ("I am awake"); CultureInfo ci \u003d new CultureInfo ("en-us"); sre \u003d new SpeechRecognitionEngine (ci); sre.SetInputToDefaultAudioDevice ( ); sre.SpeechRecognized + \u003d sre_SpeechRecognized; Choices ch_StartStopCommands \u003d new Choices (); ch_StartStopCommands.Add ("speech on"); ch_StartStopCommands.Add ("speech off"); ch_StartStopCommandus. barada ("ktopCommandus) \u003d new GrammarBuilder (); gb_StartStop.Append (ch_StartStopCommands); Grammar g_StartStop \u003d new Grammar (gb_StartStop); Choices ch_Numbers \u003d new Choices (); ch_Numbers.Add ("1"); ch_Numbers.Add ("2" Aggiungi ("3"); ch_Numbers.Add ("4"); GrammarBuilder gb_WhatI sXplusY \u003d nuovo GrammarBuilder (); gb_WhatIsXplusY.Append ("Che cos'è"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammatica g_WhatIsXplusY \u003d nuova grammatica (gb_WhatIsXplusY); sre.LoadGrammarAsync (g_StartStop); sre.LoadGrammarAsync (g_WhatIsXplusY); sre.RecognizeAsync (RecognizeMode.Multiple); while (done \u003d\u003d false) (;) Console.WriteLine ("\\ nHit< enter > per chiudere la shell \\ n "); Console.ReadLine ();) catch (Eccezione ex) (Console.WriteLine (ex.Message); Console.ReadLine ();)) // Main static void sre_SpeechRecognized (object sender, SpeechRecognizedEventArgs e ) (stringa txt \u003d e.Result.Text; float confidenza \u003d e.Result.Confidence; Console.WriteLine ("\\ nRecognized:" + txt); if (confidenza< 0.60) return; if (txt.IndexOf("speech on") >\u003d 0) (Console.WriteLine ("Speech is now ON"); speechOn \u003d true;) if (txt.IndexOf ("speech off")\u003e \u003d 0) (Console.WriteLine ("Speech is now OFF"); speechOn \u003d false;) if (speechOn \u003d\u003d false) return; if (txt.IndexOf ("klatu")\u003e \u003d 0 && txt.IndexOf ("barada")\u003e \u003d 0) (((SpeechRecognitionEngine) sender). RecognizeAsyncCancel (); done \u003d true; Console.WriteLine ("(Speaking: Farewell) "); ss.Speak (" Farewell ");) if (txt.IndexOf (" What ")\u003e \u003d 0 && txt.IndexOf (" plus ")\u003e \u003d 0) (string words \u003d txt.Split (" "); int num1 \u003d int.Parse (parole); int num2 \u003d int.Parse (parole); int sum \u003d num1 + num2; Console.WriteLine (" (Speaking: "+ parole +" più "+ parole +" è uguale "+ sum +") "); ss.SpeakAsync (words +" plus "+ words +" equals "+ sum);)) // sre_SpeechRecognized) // Program) // ns

Dopo le istruzioni using, il codice demo inizia in questo modo:

namespace ConsoleSpeech (class ConsoleSpeechProgram (static SpeechSynthesizer ss \u003d new SpeechSynthesizer (); static SpeechRecognitionEngine sre; static bool done \u003d false; static bool speechOn \u003d true; static void Main (string args) (...

L'oggetto a livello di classe SpeechSynthesizer consente a un'applicazione di sintetizzare il parlato. L'oggetto SpeechRecognitionEngine consente a un'applicazione di ascoltare e riconoscere parole o frasi pronunciate. Il valore booleano done determina quando termina l'intera applicazione. La variabile booleana speechOn controlla se l'applicazione ascolta i comandi diversi dal comando per uscire dal programma.

L'idea qui è che l'applicazione console non accetta input da tastiera, quindi ascolta sempre i comandi. Tuttavia, se speechOn è falso, viene riconosciuto ed eseguito solo il comando per uscire dal programma; altri comandi vengono riconosciuti ma ignorati.

Il metodo Main inizia così:

try (ss.SetOutputToDefaultAudioDevice (); Console.WriteLine ("\\ n (Speaking: Sono sveglio)"); ss.Speak ("Sono sveglio");

Quando è stato dichiarato, è stata creata un'istanza dell'oggetto SpeechSynthesizer. Usare l'oggetto sintetizzatore è piuttosto semplice. Il metodo SetOutputToDefaultAudioDevice invia l'output agli altoparlanti collegati al computer (l'output può anche essere inviato a un file). Il metodo Speak prende una stringa e poi la pronuncia. È così facile.

Il riconoscimento vocale è molto più difficile che sintetizzarlo. Il metodo Main continua creando un oggetto di riconoscimento:

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

Innanzitutto, l'oggetto CultureInfo specifica la lingua da riconoscere, in questo caso l'inglese degli Stati Uniti. L'oggetto CultureInfo si trova nello spazio dei nomi Globalization a cui abbiamo fatto riferimento con l'istruzione using. Quindi, dopo aver chiamato il costruttore SpeechRecognitionEngine, l'input vocale viene assegnato al dispositivo audio predefinito, molto spesso il microfono. Si noti che la maggior parte dei laptop ha un microfono integrato, ma i computer desktop richiedono un microfono esterno (questo è spesso combinato con le cuffie in questi giorni).

Il metodo chiave per l'oggetto di riconoscimento è il gestore di eventi SpeechRecognized. Quando si utilizza Visual Studio, se si immette "sre.SpeechRecognized + \u003d" e si attende una frazione di secondo, IntelliSense terminerà automaticamente l'espressione con il nome del gestore eventi sre_SpeechRecognized. Ti consiglio di premere il tasto Tab per accettare l'opzione suggerita e utilizzare questo nome predefinito.

Choices ch_Numbers \u003d new Choices (); ch_Numbers.Add ("1"); ch_Numbers.Add ("2"); ch_Numbers.Add ("3"); ch_Numbers.Add ("4"); // da un punto di vista tecnico, // questo è Add (new string ("4")); GrammarBuilder gb_WhatIsXplusY \u003d new GrammarBuilder (); gb_WhatIsXplusY.Append ("Che cos'è"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammatica g_WhatIsXplusY \u003d nuova grammatica (gb_WhatIsXplusY);

I tre oggetti principali qui sono il set di scelte, il modello GrammarBuilder e il gestore grammaticale. Quando creo una grammatica per il riconoscimento, inizio elencando alcuni esempi specifici di ciò che devo riconoscere. Diciamo "Cos'è uno più due?" e "Quanto fa tre più quattro?"

Quindi definisco un modello generico appropriato, ad esempio "Cos'è più ? ". Il modello è un GrammarBuilder ei valori specifici passati al modello sono il set di scelte. L'oggetto Grammar incapsula un modello e le scelte.

Nel programma demo, vincolo l'aggiunta da 1 a 4 e le aggiungo come stringhe al set di scelte. Approccio più efficiente:

numeri di stringa \u003d nuova stringa ("1", "2", "3", "4"); Choices ch_Numbers \u003d new Choices (numeri);

Vi presento un approccio meno efficiente alla creazione di un insieme di scelte per due motivi. Innanzitutto, l'aggiunta di una riga alla volta è stato l'unico approccio che ho visto in altri esempi di riconoscimento vocale. In secondo luogo, potresti pensare che l'aggiunta di una riga alla volta non dovrebbe funzionare affatto; Visual Studio IntelliSense mostra in tempo reale che uno degli overload Add accetta un parametro params string phrases. Se non hai notato la parola chiave params, potresti aver pensato che il metodo Add accetta solo array di stringhe e una stringa no. Ma non è così: accetta entrambi. Consiglio di passare un array.

La creazione di un insieme di scelte da numeri sequenziali è in qualche modo un caso speciale e consente un approccio programmatico come:

numeri di stringa \u003d nuova stringa; for (int i \u003d 0; i< 100; ++i) numbers[i] = i.ToString(); Choices ch_Numbers = new Choices(numbers);

Dopo aver creato le scelte per riempire gli slot del GrammarBuilder, la demo crea un GrammarBuilder e quindi controlla la grammatica:

GrammarBuilder gb_WhatIsXplusY \u003d new GrammarBuilder (); gb_WhatIsXplusY.Append ("Che cos'è"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammatica g_WhatIsXplusY \u003d nuova grammatica (gb_WhatIsXplusY);

La demo utilizza un modello simile per creare una grammatica per i comandi di avvio e arresto:

Choices ch_StartStopCommands \u003d new Choices (); ch_StartStopCommands.Add ("speech on"); ch_StartStopCommands.Add ("discorso disattivato"); ch_StartStopCommands.Add ("klatu barada nikto"); GrammarBuilder gb_StartStop \u003d nuovo GrammarBuilder (); gb_StartStop.Append (ch_StartStopCommands); Grammatica g_StartStop \u003d nuova grammatica (gb_StartStop);

Puoi definire le grammatiche in modo molto flessibile. Qui i comandi "speech on", "speech off" e "klatu barada nikto" sono posti nella stessa grammatica, poiché sono logicamente correlati. Questi tre comandi possono essere definiti in tre diverse grammatiche, oppure puoi mettere i comandi "discorso attivato" e "disattivazione voce" in una grammatica e il comando "klatu barada nikto" nella seconda.

Dopo aver creato tutti gli oggetti Grammatica, li inserisci nel riconoscimento vocale e il riconoscimento vocale viene attivato:

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

L'argomento RecognizeMode.Multiple è richiesto quando hai più di una grammatica, che sarà in tutti i programmi tranne i più semplici. Il metodo Main termina come segue:

While (done \u003d\u003d false) (;) Console.WriteLine ("\\ nHit< enter > per chiudere la shell \\ n "); Console.ReadLine ();) catch (Eccezione ex) (Console.WriteLine (ex.Message); Console.ReadLine ();)) // Main

Uno strano ciclo while vuoto mantiene in esecuzione la shell di un'applicazione console. Il ciclo terminerà quando il valore booleano a livello di classe done viene impostato su true dal gestore di eventi di riconoscimento vocale.

Elaborazione vocale riconosciuta

Il codice per la gestione degli eventi relativi al riconoscimento vocale inizia così:

static void sre_SpeechRecognized (oggetto mittente, SpeechRecognizedEventArgs e) (string txt \u003d e.Result.Text; float confidenza \u003d e.Result.Confidence; Console.WriteLine ("\\ nRecognized:" + txt); if (confidenza< 0.60) return; ...

Il testo riconosciuto viene archiviato nella proprietà Result.Text dell'oggetto SpeechRecognizedEventArgs. In alternativa, puoi utilizzare il set Result.Words. La proprietà Result.Confidence contiene un valore compreso tra 0,0 e 1,0, che è una stima approssimativa di quanto il testo parlato corrisponda a una qualsiasi delle grammatiche associate al riconoscimento. La demo indica al gestore eventi di ignorare il testo con scarsa probabilità nel testo riconosciuto.

I valori di fiducia dipendono fortemente dalla complessità della grammatica, dalla qualità del microfono e da altri fattori. Ad esempio, se la demo deve solo riconoscere i numeri da 1 a 4, i valori di confidenza sul mio computer sono generalmente a 0,75. Tuttavia, se la grammatica deve riconoscere i numeri da 1 a 100, i valori di confidenza scendono a circa 0,25. In poche parole, di solito devi sperimentare valori di fiducia per ottenere buoni risultati di riconoscimento vocale.

if (txt.IndexOf ("speech on")\u003e \u003d 0) (Console.WriteLine ("Speech is ON"); speechOn \u003d true;) if (txt.IndexOf ("speech off")\u003e \u003d 0) (Console .WriteLine ("Il parlato è disattivato"); speechOn \u003d false;) if (speechOn \u003d\u003d false) return;

Anche se all'inizio potrebbe non essere del tutto ovvio, questa logica dovrebbe avere senso se ci pensi. Quindi viene elaborato il comando di uscita segreta:

if (txt.IndexOf ("klatu")\u003e \u003d 0 && txt.IndexOf ("barada")\u003e \u003d 0) (((SpeechRecognitionEngine) sender) .RecognizeAsyncCancel (); done \u003d true; Console.WriteLine ("(Speaking: Farewell) "); ss.Speak (" Farewell ");)

Tieni presente che il motore di riconoscimento vocale può effettivamente riconoscere parole prive di significato. Se un oggetto Grammar contiene parole che non sono nel vocabolario incorporato di quell'oggetto, Grammar cerca di identificare quelle parole ogni volta che è possibile, usando l'euristica semantica, e di solito ha abbastanza successo. Ecco perché ho usato "klatu" invece del corretto "klaatu" (da un vecchio film di fantascienza).

Tieni inoltre presente che non è necessario elaborare tutto il testo riconosciuto dalla grammatica ("klatu barada nikto"): è sufficiente disporre di informazioni sufficienti per identificare in modo univoco la frase grammaticale ("klatu" e "barada").

If (txt.IndexOf ("What")\u003e \u003d 0 && txt.IndexOf ("plus")\u003e \u003d 0) (string words \u003d txt.Split (""); int num1 \u003d int.Parse (words); int num2 \u003d int.Parse (parole); int sum \u003d num1 + num2; Console.WriteLine ("(Speaking:" + words + "plus" + words + "equals" + sum + ")"); ss.SpeakAsync (words + "più" + parole + "è uguale a" + somma);)) // sre_SpeechRecognized) // Program) // ns

Si noti che il testo in Results.Text distingue tra maiuscole e minuscole ("Cosa" e "Cosa"). Una volta riconosciuta una frase, puoi analizzarla in parole specifiche. In questo caso, il testo riconosciuto ha la forma "Che cosa è x più y", quindi "Cosa" viene espresso in parole e i due numeri aggiunti (come stringhe) vengono memorizzati in parole e parole.

Installazione di librerie

La spiegazione del programma demo presuppone che tutte le librerie vocali richieste siano installate sul computer. Per creare ed eseguire programmi demo, è necessario installare quattro pacchetti: l'SDK (fornisce la possibilità di creare demo in Visual Studio), il runtime (esegue le demo dopo che sono state create) e le lingue riconoscibili e sintetizzate (pronunciate dal programma).

Per installare l'SDK, cercare in Internet "Speech Platform 11 SDK". Questo ti porterà alla pagina corretta nell'Area download Microsoft ( figura. 4). Facendo clic sul pulsante Download, vedrai le opzioni mostrate in figura. cinque... L'SDK è disponibile nelle versioni a 32 e 64 bit. Consiglio vivamente di utilizzare la versione a 32 bit indipendentemente dalla qualità del tuo sistema. La versione a 64 bit non interagisce con alcune applicazioni.


Figura: 4. Pagina principale dell'installazione dell'SDK nell'Area download Microsoft


Figura: 5. Installazione di Speech SDK

Non è necessario nient'altro che un singolo file .msi per x86 (per sistemi a 32 bit). Con questo file selezionato e facendo clic su Avanti, è possibile avviare il programma di installazione direttamente da qui. Le librerie vocali non danno molti feedback su quando l'installazione è completa, quindi non cercare messaggi di successo.


Figura: 6. Installazione dell'ambiente di runtime

È estremamente importante selezionare la stessa versione della piattaforma (nella demo - 11) e bitness (32 o 64) dell'SDK. Di nuovo, consiglio vivamente la versione a 32 bit, anche se utilizzi un sistema a 64 bit.

Quindi puoi impostare la lingua di riconoscimento. La pagina di download è all'indirizzo figura. 7... Il programma demo utilizza il file MSSpeech_SR_en-us_TELE.msi (inglese-USA). SR sta per riconoscimento vocale e TELE sta per telefonia; ciò significa che la lingua riconosciuta è progettata per funzionare con input audio di bassa qualità come un telefono o un microfono da tavolo.


Figura: 7. Impostazione della lingua riconosciuta

Infine, puoi impostare la lingua e la voce per la sintesi vocale. La pagina di download è all'indirizzo figura. otto... La demo utilizza il file MSSpeech_TTS_en-us_Helen.msi. TTS (text-to-speech) è essenzialmente un sinonimo di sintesi vocale. Notare le due voci disponibili English, U.S. Ci sono altre voci inglesi, ma non statunitensi La creazione di file in linguaggio di sintesi è un'attività complessa. Tuttavia, altre voci possono essere acquistate e installate da una varietà di aziende.


Figura: 8. Impostazione della voce e del linguaggio di sintesi

Curiosamente, mentre il riconoscimento vocale e la sintesi vocale / vocale sono in realtà cose completamente diverse, entrambi i pacchetti sono opzioni sulla stessa pagina di download. L'interfaccia utente del Download Center consente di contrassegnare sia la lingua di riconoscimento che la lingua di sintesi, ma provare a installarli contemporaneamente è stato disastroso per me, quindi consiglio di installarli separatamente.

Confronto tra Microsoft.Speech e System.Speech

Se non conosci il riconoscimento vocale e la sintesi per le applicazioni Windows, puoi facilmente farti confondere dalla documentazione, perché ci sono diverse piattaforme vocali. Nello specifico, oltre alla libreria Microsoft.Speech.dll utilizzata dalle demo in questo articolo, c'è la libreria System.Speech.dll, che fa parte del sistema operativo Windows. Le due librerie sono simili nel senso che le loro API sono quasi, ma non completamente identiche. Pertanto, se cerchi esempi di elaborazione vocale su Internet e vedi frammenti di codice, non programmi completi, non è affatto ovvio se questo esempio appartiene a System.Speech o Microsoft.Speech.

Se non conosci l'elaborazione vocale, utilizza la libreria Microsoft.Speech anziché System.Speech per aggiungere il supporto vocale alla tua applicazione .NET.

Sebbene entrambe le librerie condividano una base di codice di base comune e API simili, sono decisamente diverse. Alcune delle differenze principali sono riassunte in tab. 1.

Tab. 1. Le principali differenze tra Microsoft.Speech e System.Speech

La DLL System.Speech fa parte del sistema operativo, quindi è installata su tutti i sistemi Windows. La DLL Microsoft.Speech (e il runtime e le lingue associati) deve essere scaricata e installata sul sistema. Il riconoscimento tramite System.Speech richiede solitamente l'addestramento di un utente specifico, quando l'utente legge del testo e il sistema impara a comprendere la pronuncia peculiare di questo utente. Il riconoscimento tramite Microsoft.Speech funziona immediatamente per qualsiasi utente. System.Speech è in grado di riconoscere quasi tutte le parole (questo è chiamato dettatura libera). Microsoft.Speech riconoscerà solo le parole e le frasi che si trovano nell'oggetto Grammatica definito nel programma.

Aggiunta del supporto per il riconoscimento vocale a un'applicazione Windows Form

Il processo di aggiunta del riconoscimento vocale e del supporto per la sintesi a un'applicazione Windows Form o WPF è simile a quello di un'applicazione console. Per creare il programma demo mostrato in figura. 2, Ho avviato Visual Studio, ho creato una nuova applicazione Windows Form C # e l'ho rinominata WinFormSpeech.

Dopo aver caricato il codice del modello nell'editor, ho aggiunto un collegamento al file Microsoft.Speech.dll nella finestra Esplora soluzioni, proprio come ho fatto nel programma della console. Nella parte superiore del codice sorgente, ho rimosso le istruzioni using non necessarie, lasciando solo i riferimenti agli spazi dei nomi System, Data, Drawing e Forms. Quindi ho aggiunto due istruzioni using per gli spazi dei nomi Microsoft.Speech.Recognition e System.Globalization.

La demo di Windows Forms non utilizza la sintesi vocale, quindi non mi collego alla libreria Microsoft.Speech.Synthesis. L'aggiunta di sintesi vocale a un'applicazione Windows Form è uguale all'aggiunta di sintesi vocale a un'applicazione console.

In Visual Studio, in modalità progettazione, ho trascinato i controlli TextBox, CheckBox e ListBox nel form. Ho fatto doppio clic su CheckBox e Visual Studio ha creato automaticamente uno scheletro per il metodo del gestore di eventi CheckChanged.

Ricorda che il programma della console demo ha iniziato immediatamente ad ascoltare i comandi vocali e ha continuato a farlo fino alla fine. Questo approccio può essere utilizzato anche in un'applicazione Windows Form, ma invece ho deciso di consentire all'utente di attivare e disattivare il riconoscimento vocale utilizzando un controllo CheckBox (ovvero utilizzando una casella di controllo).

Il codice sorgente nel file Form1.cs del programma demo in cui è definita la classe parziale è mostrato in figura. nove... Un oggetto del motore vocale viene dichiarato e istanziato come membro di Form. Nel costruttore del Form, collego il gestore di eventi SpeechRecognized e quindi creo e carico due oggetti Grammars:

public Form1 () (InitializeComponent (); sre.SetInputToDefaultAudioDevice (); sre.SpeechRecognized + \u003d sre_SpeechRecognized; Grammar g_HelloGoodbye \u003d GetHelloGoodbyeGrammar (); Grammar g_SetTextBox \u003d GetTextBox1TextGrammar (); sre.LoadGrammarAsync (g_HelloGoodbye); sre.LoadGrammarAsync (g_SetTextBox); // sre.RecognizeAsync () è // nel gestore di eventi CheckBox)

Figura: 9. Aggiunta del supporto per il riconoscimento vocale a Windows Form

using System; using System.Data; using System.Drawing; using System.Windows.Forms; using Microsoft.Speech.Recognition; using System.Globalization; spazio dei nomi WinFormSpeech (public partial class Form1: Form (static CultureInfo ci \u003d new CultureInfo ("en-us"); static SpeechRecognitionEngine sre \u003d new SpeechRecognitionEngine (ci); public Form1 () (InitializeComponent (); sre.SetInputToDefaultAudioDeviceDeviceDevice; srefault .SpeechRecognized + \u003d sre_SpeechRecognized; Grammatica g_HelloGoodbye \u003d GetHelloGoodbyeGrammar (); Grammatica g_SetTextBox \u003d GetTextBox1TextGrammar (); sre.LoadGrammarAsync (g_HelloGoodbyeGrammar (); Grammatica g_SetTextBox \u003d GetTextBox1TextGrammar (); sre.LoadGrammarAsync (g_HelloGoodbyeGrammar); sre.LoadGrammarAsync (g_HelloGoodbyeGrammar); sre.LoadGrammarAsync Grammatica GetHelloGoodbyeGrammar () (Choices ch_HelloGoodbye \u003d new Choices (); ch_HelloGoodbye.Add ("hello"); ch_HelloGoodbye.Add ("goodbye"); GrammarBuilder gb_result \u003d new ch_HelloGoodbye \u003d new Grammar_result \u003d new Grammar_result g_result;) static Grammar GetTextBox1TextGrammar () (Choices ch_Colors \u003d new Choices (); ch_Colors.Add (nuova stringa ("red", "white", "blue")); GrammarBuilder gb_r esult \u003d new GrammarBuilder (); gb_result.Append ("imposta casella di testo 1"); gb_result.Append (ch_Colors); Grammatica g_result \u003d nuova grammatica (gb_result); return g_result; ) private void checkBox1_CheckedChanged (object sender, EventArgs e) (if (checkBox1.Checked \u003d\u003d true) sre.RecognizeAsync (RecognizeMode.Multiple); else if (checkBox1.Checked \u003d\u003d false) // disabled sre.RecognizeAsyncCancel ();) void sre_SpeechRecognized (oggetto mittente, SpeechRecognizedEventArgs e) (string txt \u003d e.Result.Text; float conf \u003d e.Result.Confidence; if (conf< 0.65) return; this.Invoke(new MethodInvoker(() => (listBox1.Items.Add ("Ti ho sentito dire:" + txt);))); // Specifiche di WinForm if (txt.IndexOf ("text")\u003e \u003d 0 && txt.IndexOf ("box")\u003e \u003d 0 && txt.IndexOf ("1")\u003e \u003d 0) (string words \u003d txt.Split ( ""); this.Invoke (new MethodInvoker (() \u003d\u003e (textBox1.Text \u003d words;))); // specifiche di WinForm))) // Form) // ns

Avrei potuto creare direttamente due oggetti Grammar, come in un programma di console, ma invece, per rendere il codice un po 'più chiaro, ho definito due metodi di supporto (GetHelloGoodbyeGrammar e GetTextBox1TextGrammar) che fanno il lavoro.

static Grammar GetTextBox1TextGrammar () (Choices ch_Colors \u003d new Choices (); ch_Colors.Add (nuova stringa ("red", "white", "blue")); GrammarBuilder gb_result \u003d new GrammarBuilder (); gb_result.Append ("set text box 1 "); gb_result.Append (ch_Colors); Grammar g_result \u003d new Grammar (gb_result); return g_result;)

Questo metodo di supporto riconoscerà la frase "imposta la casella di testo 1 in rosso". Tuttavia, l'utente non è obbligato a pronunciare accuratamente questa frase. Ad esempio, potrebbe dire: "Imposta il testo nella casella di testo 1 su rosso" e il motore di riconoscimento vocale riconoscerà comunque la frase come "imposta la casella di testo 1 in rosso", anche se con un valore di confidenza inferiore rispetto a una corrispondenza esatta con un modello di grammatica. In altre parole, quando si creano oggetti grammaticali, non è necessario prendere in considerazione tutte le variazioni della frase. Ciò semplifica drasticamente l'uso del riconoscimento vocale.

Il gestore di eventi per il CheckBox è definito in questo modo:

private void checkBox1_CheckedChanged (object sender, EventArgs e) (if (checkBox1.Checked \u003d\u003d true) sre.RecognizeAsync (RecognizeMode.Multiple); else if (checkBox1.Checked \u003d\u003d false) // disabled sre.RecognizeAsyncCancel ();)

L'oggetto motore di riconoscimento vocale (sre) esiste sempre per la vita di un'applicazione Windows Forms. Questo oggetto viene attivato e disattivato dalle chiamate ai metodi RecognizeAsync e RecognizeAsyncCancel quando l'utente attiva il CheckBox di conseguenza.

La definizione del gestore eventi SpeechRecognized inizia con:

void sre_SpeechRecognized (oggetto mittente, SpeechRecognizedEventArgs e) (string txt \u003d e.Result.Text; float conf \u003d e.Result.Confidence; if (conf< 0.65) return; ...

Oltre alle proprietà più o meno utilizzate in modo coerente Result.Text e Result.Confidence, l'oggetto Result ha molte altre proprietà utili ma più complesse che potresti voler esplorare; ad esempio Homophones e ReplacementWordUnits. Inoltre, il motore di riconoscimento vocale fornisce diversi eventi utili come SpeechHypothesized.

this.Invoke ((Action) (() \u003d\u003e listBox1.Items.Add ("Ti ho sentito dire:" + txt)));

In teoria, in questa situazione, l'utilizzo del delegato MethodInvoker è leggermente più efficiente di Action, poiché MethodInvoker fa parte dello spazio dei nomi Windows.Forms, il che significa che è specifico per le applicazioni Windows Forms. Il delegato di azione è più versatile. Questo esempio mostra che è possibile manipolare completamente un'applicazione Windows Form tramite il riconoscimento vocale, una funzionalità incredibilmente potente e utile.

Conclusione

Le informazioni fornite in questo articolo dovrebbero aiutarti a iniziare subito se desideri esplorare la sintesi vocale e il riconoscimento nelle applicazioni .NET. Padroneggiare la tecnologia stessa è facile una volta superati i dossi nella formazione iniziale e nella configurazione dei componenti. La vera sfida con la sintesi vocale e il riconoscimento è sapere quando è veramente utile.

Nel caso di programmi su console, è possibile creare dialoghi reciproci interessanti in cui l'utente pone una domanda e il programma risponde, risultando essenzialmente in un ambiente simile a Cortana. È necessario prestare attenzione perché quando la voce proviene dagli altoparlanti del computer, verrà rilevata dal microfono e potrà essere nuovamente riconosciuta. Io stesso sono entrato in situazioni piuttosto divertenti in cui ho posto una domanda, l'applicazione l'ha riconosciuta e ha risposto, ma la risposta vocale ha innescato il successivo evento di riconoscimento e alla fine ho ottenuto un divertente loop vocale senza fine.

Un altro possibile utilizzo del parlato in un programma della console è riconoscere comandi come Avvia Blocco note e Avvia Word. In altre parole, un tale programma di console può essere utilizzato sul computer per eseguire azioni che altrimenti richiederebbero molta manipolazione della tastiera e del mouse.

James McCaffrey(Dr. James McCaffrey) lavora per Microsoft Research a Redmond, Washington. Ha contribuito alla creazione di diversi prodotti Microsoft, inclusi Internet Explorer e Bing. Puoi contattarlo a [email protected].

Grazie ai seguenti esperti di Microsoft Research per la revisione di questo articolo: Rob Gruen, Mark Marron e Curtis von Veh.

Questo telefono ha riconoscimento vocale o input vocale, ma funziona solo su Internet, connettendosi ai servizi Google. Ma si può insegnare al telefono a riconoscere il parlato senza Internet, vedremo come abilitare il riconoscimento della lingua russa in disconnesso... Affinché questo metodo funzioni, è necessario che siano installate due applicazioni Ricerca vocale e ricerca Google, sebbene questi programmi siano già presenti nel firmware di fabbrica.

Per il firmware

Vai alle impostazioni del telefono e seleziona

Scegli il russo e scaricalo.

Per il firmware 2.8B

Nel nuovo firmware, il " Riconoscimento vocale offline"assente.

Se avevi pacchetti offline installati prima dell'aggiornamento del firmware e non hai cancellato (ripristinato le impostazioni) durante l'aggiornamento, avrebbero dovuto essere salvati. Altrimenti, dovrai tornare al firmware 2.2 , installa i pacchetti vocali e solo dopo aggiorna il sistema a 2.8B.

Per dispositivi Rev.B

Installiamo l'aggiornamento tramite il ripristino e godiamo del riconoscimento vocale nell'olio.

2. Scarica la base per la lingua russa e copiala sulla scheda SD

Scarica Russian_offline.zip 1301

3. Immettere il ripristino tenendo premuto (Volume + e On) con il telefono spento.

4. Seleziona Applica l'aggiornamento dalla memoria esterna e seleziona l'archivio scaricato.

Nessun programma può sostituire completamente il lavoro manuale di trascrizione del parlato registrato. Tuttavia, esistono soluzioni che possono velocizzare e facilitare notevolmente la traduzione del parlato in testo, ovvero semplificare la trascrizione.

La trascrizione è la registrazione di un file audio o video in forma di testo. Ci sono attività retribuite retribuite su Internet, quando una certa somma di denaro viene pagata all'esecutore per la trascrizione del testo.

La traduzione da discorso a testo è utile

  • studenti di tradurre in testo lezioni audio o video registrate,
  • blogger che conducono siti web e blog,
  • scrittori, giornalisti per la scrittura di libri e testi,
  • informazioni agli uomini d'affari che hanno bisogno di testo dopo il loro webinar, discorso, ecc.,
  • persone che hanno difficoltà a digitare: possono dettare una lettera e inviarla a familiari o amici,
  • altre opzioni.

Descriviamo gli strumenti più efficaci disponibili su PC, applicazioni mobili e servizi online.

1 Sito web speechpad.ru

È un servizio online che ti consente di tradurre la voce in testo tramite il browser Google Chrome. Il servizio funziona con un microfono e file già pronti. Ovviamente, la qualità sarà molto più alta se usi un microfono esterno e imponi te stesso. Tuttavia, il servizio fa un buon lavoro anche con i video di YouTube.

Fare clic su "Abilita registrazione", rispondere alla domanda su "Utilizzo del microfono" - per questo fare clic su "Consenti".

Una lunga istruzione sull'utilizzo del servizio può essere compressa facendo clic sul pulsante 1 in Fig. 3. Puoi sbarazzarti degli annunci effettuando una semplice registrazione.

Figura: 3. Servizio di Speechpad

Il risultato finale è facile da modificare. Per fare ciò, è necessario correggere manualmente la parola selezionata o dettarla di nuovo. I risultati del lavoro vengono salvati nel tuo account personale, possono anche essere scaricati sul tuo computer.

Elenco di tutorial video su come lavorare con lo speechpad:

Puoi trascrivere video da Youtube o dal tuo computer, tuttavia, ti serve un mixer, più in dettaglio:

Video di trascrizione audio

Il servizio funziona in sette lingue. C'è un piccolo svantaggio. Sta nel fatto che se è necessario trascrivere un file audio finito, il suo suono viene distribuito agli altoparlanti, il che crea rumore aggiuntivo sotto forma di eco.

2 Servizio dettato.io

Un meraviglioso servizio online che ti permetterà di tradurre il parlato in testo gratuitamente e facilmente.

Figura: 4. Servizio dictation.io

1 in fig. 4 - Il russo può essere selezionato alla fine della pagina. Nel browser Google Chrome, la lingua è selezionata, ma in Mozilla per qualche motivo non esiste tale possibilità.

È interessante notare che è stata implementata la capacità di salvare automaticamente il risultato finale. Ciò impedirà la cancellazione accidentale chiudendo una scheda o un browser. Questo servizio non riconosce i file finiti. Funziona con un microfono. È necessario assegnare un nome ai segni di punteggiatura durante la dettatura.

Il testo viene riconosciuto abbastanza correttamente, non ci sono errori di ortografia. Puoi inserire tu stesso i segni di punteggiatura dalla tastiera. Il risultato finale può essere salvato sul tuo computer.

3 RealSpeaker

Questo programma semplifica la traduzione del discorso umano in testo. È progettato per funzionare su diversi sistemi: Windows, Android, Linux, Mac. Con il suo aiuto, puoi convertire il suono del parlato in un microfono (ad esempio, può essere integrato in un laptop), nonché registrato in file audio.

Può percepire 13 lingue del mondo. Esiste una versione beta del programma che funziona come un servizio online:

Devi andare al link sopra, selezionare la lingua russa, caricare il tuo file audio o video sul servizio online e pagare per la sua trascrizione. Dopo la trascrizione, puoi copiare il testo risultante. Più grande è il file per la trascrizione, più tempo ci vorrà per elaborarlo, in modo più dettagliato:

Nel 2017, c'era un'opzione di trascrizione gratuita utilizzando RealSpeaker, nel 2018 non esisteva tale opzione. È molto imbarazzante che il file trascritto sia disponibile per il download a tutti gli utenti, forse sarà migliorato.

I contatti dello sviluppatore (VKontakte, Facebook, Youtube, Twitter, e-mail, telefono) del programma possono essere trovati sulla pagina del suo sito web (più precisamente, nel seminterrato del sito web):

4 Speechlogger

Un'alternativa alla precedente app per dispositivi mobili con Android. Disponibile gratuitamente nell'App Store:

Il testo viene modificato automaticamente, i segni di punteggiatura vengono inseriti in esso. Molto utile per dettare note o creare elenchi. Di conseguenza, il testo sarà di una qualità molto decente.

5 Dettatura del drago

Questa applicazione è distribuita gratuitamente per i dispositivi mobili di Apple.

Il programma può funzionare con 15 lingue. Ti permette di modificare il risultato, selezionare le parole desiderate dall'elenco. È necessario pronunciare chiaramente tutti i suoni, non fare pause inutili ed evitare l'intonazione. A volte ci sono errori nella fine delle parole.

L'app Dragon Dictation viene utilizzata dai proprietari, ad esempio, per dettare una lista della spesa in un negozio mentre si spostano in un appartamento. Quando arrivo, puoi guardare il testo nella nota e non hai bisogno di ascoltare.

Qualunque sia il programma che usi nella tua pratica, preparati a ricontrollare il risultato e ad apportare alcune modifiche. Questo è l'unico modo per ottenere un testo impeccabile senza errori.

Anche servizi utili:

Ricevi gli ultimi articoli sull'alfabetizzazione informatica direttamente nella tua casella di posta.
Già di più 3.000 iscritti

.

Aggiornato: lunedì 31 luglio 2017

Cosa c'entra l'idea semi-fantastica di parlare con un computer con la fotografia professionale? Quasi nessuno, se non sei un fan dell'idea dello sviluppo infinito dell'intero ambiente tecnico di una persona. Immagina per un momento di dare ordini vocali alla tua fotocamera per modificare la lunghezza focale ed effettuare la compensazione dell'esposizione di mezzo stop in più. Il controllo remoto della fotocamera è già stato implementato, ma lì devi premere silenziosamente i pulsanti, e qui l'udito in schiuma!

È diventata una tradizione citare un film di fantascienza come esempio della comunicazione vocale di una persona con un computer, beh, almeno "Odissea nello spazio 2001" diretto da Stanley Kubrick. Lì, il computer di bordo non solo conduce un dialogo significativo con gli astronauti, ma può leggere le labbra come una persona sorda. In altre parole, la macchina ha imparato a riconoscere il linguaggio umano senza errori. Forse, il controllo vocale remoto della fotocamera sembrerà superfluo a qualcuno, ma molti vorrebbero questa frase "Portaci via, baby" e l'immagine di tutta la famiglia sullo sfondo di una palma è pronta.

Ebbene, qui ho reso omaggio alla tradizione, un po 'fantasticata. Ma, parlando dal cuore, questo articolo è stato difficile da scrivere e tutto è iniziato con un regalo sotto forma di uno smartphone con sistema operativo Android 4. Questo modello HUAWEI U8815 ha un piccolo touchscreen da quattro pollici e una tastiera su schermo. È alquanto insolito digitarlo, ma si è rivelato non particolarmente necessario. (immagine01)

1. Riconoscimento vocale in uno smartphone con sistema operativo Android

Durante la masterizzazione di un nuovo giocattolo, ho notato un'immagine grafica di un microfono nella barra di ricerca Google e sulla tastiera in Notes. In precedenza, non ero interessato a ciò che rappresenta questo simbolo. Ho avuto conversazioni Skypee lettere digitate sulla tastiera. La maggior parte degli utenti di Internet lo fa. Ma come mi hanno spiegato più tardi, in un motore di ricerca Google è stata aggiunta la ricerca vocale in russo e sono apparsi programmi che consentono di dettare brevi messaggi durante l'utilizzo del browser "Cromo".

Ho pronunciato una frase di tre parole, il programma le ha identificate e le ha mostrate in una cella con uno sfondo blu. C'era qualcosa di cui essere sorpresi, perché tutte le parole erano scritte correttamente. Se fai clic su questa cella, la frase viene visualizzata nel campo di testo del notebook Android. Così ha detto ancora un paio di frasi e ha inviato un messaggio all'assistente tramite SMS.


2. Una breve storia dei programmi di riconoscimento vocale.

Non è stata una scoperta per me che i progressi moderni nel controllo vocale permettano di dare comandi ad elettrodomestici, un'auto, un robot. La modalità di comando è stata introdotta nelle versioni precedenti di Windows, OS / 2 e Mac OS. Ho visto programmi di conversazione, ma a cosa servono? Forse questa è la mia particolarità che è più facile per me parlare che digitare sulla tastiera, e sul mio cellulare non riesco a digitare nulla. Devo annotare i contatti su un laptop con una normale tastiera e trasferirli tramite un cavo USB. Ma parlare semplicemente nel microfono e il computer stesso ha digitato il testo senza errori: è stato un sogno per me. L'atmosfera di disperazione è stata alimentata dalle discussioni del forum. C'era un pensiero così triste in loro ovunque:

“Tuttavia, in effetti, fino ad ora, i programmi per il vero riconoscimento vocale (e anche in russo) praticamente non esistono, e ovviamente non verranno creati presto. Inoltre, anche il compito opposto al riconoscimento - la sintesi vocale, che sembrerebbe molto più semplice del riconoscimento, non è stato completamente risolto ". (ComputerPress # 12, 2004)

“Non esistono ancora normali programmi di riconoscimento vocale (non solo russo), poiché il compito è piuttosto difficile per un computer. E la cosa peggiore è che il meccanismo di riconoscimento delle parole umane non è ancora compreso, quindi non c'è nulla da cui partire quando si creano programmi di riconoscimento ". (Un'altra discussione sul forum).

Detto questo, le recensioni dei programmi di inserimento vocale in lingua inglese hanno indicato chiari successi. Per esempio, IBM ViaVoice 98 Executive Edition aveva un vocabolario di base di 64.000 parole e la capacità di aggiungere lo stesso numero di parole proprie. La percentuale di riconoscimento delle parole senza formazione del programma è stata di circa l'80% e con il successivo lavoro con un utente specifico ha raggiunto il 95%.

Tra i programmi di riconoscimento della lingua russa, vale la pena notare "Gorynych" - un'aggiunta al Dragon Dictate 2.5 in lingua inglese. A proposito di ricerche, e poi "la battaglia con cinque Gorynych" racconterò nella seconda parte della recensione. Il primo ho trovato il "drago inglese".

3. Programma di riconoscimento del discorso continuo "Dragon Naturally Speaking"

La versione moderna del programma aziendale "Sfumatura" risultò essere con la mia vecchia conoscenza dell'Istituto di lingue straniere di Minsk. Lo portò da un viaggio all'estero e lo comprò, pensando che potesse essere una "segretaria informatica". Ma qualcosa non ha funzionato e il programma è rimasto quasi dimenticato sul laptop. A causa della mancanza di qualsiasi esperienza intelligibile, dovevo andare personalmente dal mio amico. Tutta questa lunga introduzione è necessaria per una corretta comprensione delle conclusioni che ho tratto.

Il nome completo del mio primo drago suonava così: ... Il programma è in inglese e tutto è chiaro anche senza un manuale. Il primo passo è creare un profilo di uno specifico utente per determinare le peculiarità del suono delle parole nella sua performance. Quello che ho fatto - ciò che conta è l'età, il paese, le caratteristiche di pronuncia dell'oratore. La mia scelta è: età 22-54, inglese britannico, pronuncia standard. Successivamente ci sono diverse finestre in cui imposti il \u200b\u200bmicrofono. (immagine04)

La fase successiva per programmi seri di riconoscimento vocale è la formazione per la pronuncia di una determinata persona. Ti viene chiesto di scegliere la natura del testo: la mia scelta è una breve istruzione sulla dettatura, ma puoi anche "ordinare" una storia umoristica.

L'essenza di questa fase di lavoro con il programma è estremamente semplice: nella finestra viene visualizzato un testo, sopra una freccia gialla. Se pronunciata correttamente, la freccia si sposta tra le frasi e in basso c'è una barra di avanzamento dell'allenamento. L'inglese colloquiale è stato praticamente dimenticato da me, quindi sono avanzato a malapena. Anche il tempo era limitato: il computer non era mio e ho dovuto interrompere l'allenamento. Ma un'amica ha detto che ha sostenuto il test in meno di mezz'ora. (immagine05)

Rifiutando di adattare il mio programma di pronuncia, sono andato alla finestra principale e ho lanciato l'editor di testo integrato. Ha pronunciato singole parole da alcuni testi che ha trovato sul computer. Il programma ha stampato le parole che ha pronunciato correttamente e ha sostituito quelle che diceva male con qualcosa di "inglese". Avendo pronunciato chiaramente il comando "cancella una riga" in inglese - il programma lo ha eseguito. Ciò significa che ho letto correttamente i comandi e il programma li riconosce senza una formazione preliminare.

Ma per me era importante come questo "drago" scrive in russo. Come hai capito dalla descrizione precedente, quando alleni il programma, puoi selezionare solo il testo inglese, semplicemente non c'è russo lì. È chiaro che non funzionerà per addestrare il riconoscimento della parola russa. Nella foto successiva puoi vedere quale frase ha digitato il programma pronunciando la parola russa "Hello". (immagine06)

Il risultato della comunicazione con il primo drago si è rivelato leggermente comico. Se leggi attentamente il testo sul sito ufficiale, puoi vedere la "specializzazione" inglese di questo prodotto software. Inoltre, durante il caricamento, leggiamo nella finestra del programma "Inglese". Allora perché era tutto necessario. È chiaro che i forum e le voci sono da incolpare ...

Ma c'è anche un'esperienza utile. La mia amica ha chiesto di vedere le condizioni del suo laptop. In qualche modo lentamente iniziò a lavorare. Ciò non sorprende: la partizione di sistema aveva solo il 5% di spazio libero. Rimuovendo i programmi non necessari, ho visto che la versione ufficiale era più di 2,3 GB. Questa cifra ci sarà utile in seguito. (immagine.07)



Il riconoscimento della lingua russa, come si è scoperto, non è stato un compito banale. A Minsk sono riuscito a trovare il "Gorynych" di un amico. Da tempo cercava il disco tra le sue vecchie macerie e, secondo lui, questa è la pubblicazione ufficiale. Il programma è stato installato istantaneamente e ho scoperto che il suo dizionario contiene 5.000 parole russe più 100 comandi e 600 parole inglesi più 31 comandi.

Per prima cosa devi impostare il microfono, cosa che ho fatto. Poi ho aperto il dizionario e ho aggiunto la parola "Dai un'occhiata" perché non era nel dizionario del programma. Ho cercato di parlare in modo chiaro, monotono. Alla fine, ho aperto il programma "Gorynych Pro 3.0", ho attivato la modalità di dettatura e ho ottenuto questo elenco di "parole dal suono simile". (immagine.09)

Il risultato ottenuto mi ha lasciato perplesso, perché differiva nettamente in peggio dal lavoro di uno smartphone Android, e ho deciso di provare altri programmi da " negozio online Google Chrome "... E rimandò a occuparsi dei "serpenti di montagna" per dopo. Mi è sembrato rinvio azione nello spirito originale russo

5. Funzionalità vocali di Google

Per lavorare con la voce su un normale computer Windows, è necessario installare un browser Google Chrome... Se lo stai utilizzando su Internet, in basso a destra puoi fare clic sul collegamento per il negozio di software. Lì ho trovato gratuitamente due programmi e due estensioni per l'inserimento vocale del testo. I programmi vengono chiamati "Blocco note vocale" e "Voisnot - Da voce a testo"... Dopo l'installazione, possono essere trovati nella scheda "Applicazioni" il tuo browser "Cromo". (immagine. 10)

Vengono chiamate le estensioni "Hotword di Google Voice Search (Beta) 0.1.0.5" e "Inserimento di testo vocale - Speechpad.ru 5.4"... Dopo l'installazione, possono essere disattivati \u200b\u200bo eliminati nella scheda "Estensioni". (immagine. 11)

Nota vocale... Nella scheda dell'applicazione nel browser Chrome, fare doppio clic sull'icona del programma. Si aprirà una finestra di dialogo come l'immagine qui sotto. Cliccando sull'icona del microfono, pronunci brevi frasi nel microfono. Il programma invia le tue parole al server di riconoscimento vocale e digita il testo nella finestra. Tutte le parole e le frasi mostrate nell'illustrazione sono state digitate la prima volta. Ovviamente, questo metodo funziona solo con una connessione Internet attiva. (immagine. 12)

Blocco note vocale... Se esegui il programma nella scheda dell'applicazione, si aprirà una nuova scheda della pagina Internet Speechpad.ru... Ci sono istruzioni dettagliate su come utilizzare questo servizio e un modulo compatto. Quest'ultimo è mostrato nell'illustrazione sotto. (immagine. 13)

Input vocale testo ti consente di riempire i campi di testo delle pagine Internet con la tua voce. Ad esempio, sono andato alla mia pagina Google+... Nel campo di immissione del nuovo messaggio ho fatto clic con il pulsante destro del mouse e selezionato "SpeechPad"... La casella di input di colore rosa ti dice di dettare il tuo testo. (immagine. 14)

Ricerca vocale di Google ti permette di cercare con la voce. Durante l'installazione e l'attivazione di questa estensione, nella barra di ricerca viene visualizzato il simbolo del microfono. Quando fai clic su di esso, viene visualizzato un simbolo in un grande cerchio rosso. Pronuncia una frase di ricerca e apparirà nei risultati della ricerca. (immagine. 15)

Nota importante: affinché il microfono funzioni con le estensioni di Chrome, è necessario consentire l'accesso al microfono nelle impostazioni del browser. È disabilitato per impostazione predefinita per motivi di sicurezza. Vai a Impostazioni → Dati personali → Impostazioni contenuto... (Per accedere a tutte le impostazioni, in fondo all'elenco, fare clic su Mostra impostazioni avanzate)... Si aprirà una finestra di dialogo Impostazioni del contenuto della pagina... Seleziona un elemento in fondo all'elenco Multimedia → microfono.

6. Risultati del lavoro con programmi di riconoscimento vocale russi

Un po 'di esperienza nell'utilizzo di programmi di input vocale ha mostrato un'eccellente implementazione di questa funzionalità sui server di una società Internet Google... Senza alcuna formazione preliminare, le parole vengono riconosciute correttamente. Ciò indica che il problema del riconoscimento vocale russo è stato risolto.

Ora possiamo dire che il risultato dello sviluppo Google sarà un nuovo criterio per valutare i prodotti di altri produttori. Vorrei che il sistema di riconoscimento funzionasse offline senza accedere ai server dell'azienda, quindi è più comodo e veloce. Ma non è noto quando verrà rilasciato un programma indipendente per lavorare con un flusso continuo di discorso russo. Si deve presumere, tuttavia, che data la possibilità di formazione, questa "creazione" sarà una vera svolta.

Programmi di sviluppatori russi "Gorynych", "Dictographer" e "Combattere" Entrerò nei dettagli nella seconda parte di questa recensione. Questo articolo è stato scritto molto lentamente a causa del fatto che la ricerca di dischi originali è ora difficile. Al momento ho già tutte le versioni di "riconoscitori" voce-testo russi eccetto "Combat 2.52". Nessuno dei miei amici o colleghi ha questo programma e io stesso ho solo pochi commenti elogiativi sui forum. È vero, c'era un'opzione così strana: scarica Kombat tramite SMS, ma non mi piace. (immagine16)


Un breve video clip ti mostrerà come avviene il riconoscimento vocale in uno smartphone con sistema operativo Android. Una caratteristica della composizione vocale è la necessità di connettersi ai server di Google. Pertanto, Internet dovrebbe funzionare per te

© 2020 hecc.ru - Notizie sulle tecnologie informatiche