Téléchargement forcé du package russe sur le téléphone. Reconnaissance vocale ultra-rapide sans serveurs utilisant un exemple réel

Téléchargement forcé du package russe sur le téléphone. Reconnaissance vocale ultra-rapide sans serveurs utilisant un exemple réel

13.11.2020

Produits et technologies:

Visual Studio, C #, bibliothèques vocales .NET

L'article traite:

  • l'ajout de la prise en charge de la reconnaissance vocale à l'application console;
  • traitement de la parole reconnue;
  • installation de bibliothèques pour la reconnaissance vocale;
  • comparaison de Microsoft.Speech et System.Speech;
  • ajout de la prise en charge de la reconnaissance vocale à une application Windows Forms.

Avec l'avènement de Téléphone Windows Cortana, un assistant personnel activé par la parole (ainsi qu'un homologue d'une entreprise fruitière qu'il ne faut pas mentionner en vain), les applications vocales sont devenues de plus en plus importantes dans le développement de logiciels. Dans cet article, je vais vous montrer comment démarrer avec la reconnaissance vocale et la synthèse vocale dans les applications de la console Windows, les applications Windows Forms et Windows Presentation Foundation (WPF).

Notez que vous pouvez également ajouter des fonctionnalités vocales aux applications Windows Phone, aux applications Web ASP.NET, aux applications du Windows Store, à Windows RT et à Xbox Kinect, mais les techniques sont différentes de celles décrites dans cet article.

Bonne façon comprendre ce qui sera exactement discuté dans cet article - jetez un œil aux captures d'écran de deux démos différentes sur figue. une et 2 ... Après avoir lancé l'application console sur figue. une dit immédiatement «je suis réveillé». Bien sûr, vous ne pourrez pas entendre l'application de démonstration en lisant cet article, donc il affiche le texte de ce que dit l'ordinateur. Ensuite, l'utilisateur dit la commande "Parole activée". L'application de démonstration répond avec le texte reconnu, puis écoute en interne et répond aux demandes d'ajout des deux nombres.

Chiffre: 1. Reconnaissance et synthèse de la parole dans une application console


Chiffre: 2. Reconnaissance vocale dans l'application Windows Forms

L'utilisateur a demandé à l'application de plier un et deux, puis deux et trois. L'application a reconnu les commandes vocales et a donné des réponses vocales. Je décrirai plus tard des moyens plus utiles d'utiliser la reconnaissance vocale.

Ensuite, l'utilisateur a dit "Speech off" - une commande vocale qui désactive l'écoute des commandes pour ajouter des nombres, mais ne désactive pas complètement la reconnaissance vocale. Après cette commande vocale, l'ajout suivant de 1 et 2 a été ignoré. Enfin, l'utilisateur a recommencé à écouter les commandes et a prononcé une commande dénuée de sens "Klatu barada nikto", que l'application a reconnu comme une commande pour désactiver complètement la reconnaissance vocale et s'arrêter d'elle-même.

Sur figue. 2 montre une application Windows Forms avec la fonction vocale factice activée. Cette application reconnaît les commandes vocales, mais n'y répond pas avec une sortie vocale. Lorsque l'application a été lancée pour la première fois, la case Speech On n'était pas cochée, ce qui indique que la reconnaissance vocale n'est pas active. L'utilisateur a coché la case puis a dit «Bonjour». L'application a répondu en affichant le texte reconnu dans le contrôle ListBox en bas de la fenêtre.

Ensuite, l'utilisateur a dit: «Réglez la zone de texte 1 sur le rouge». L'application a reconnu le discours et a répondu: "Définir la zone de texte 1 en rouge", ce qui est presque (mais pas tout à fait) exactement ce que l'utilisateur a dit. Bien que sur figue. 2 vous ne pouvez pas le voir, le texte dans la zone de texte en haut de la fenêtre est vraiment rouge.

Ensuite, l'utilisateur a dit: "Veuillez définir la zone de texte 1 en blanc". L'application l'a reconnu comme "définir la zone de texte 1 blanche" et c'est exactement ce que fait. Enfin, l'utilisateur a dit «Au revoir» et l'application a affiché ce texte, mais n'a rien fait avec Windows Forms, bien qu'elle puisse, par exemple, désactiver la case à cocher Parole activée.

L'utilisation de l'objet synthétiseur est assez simple.

Dans les sections suivantes, je vais vous guider à travers le processus de création des deux démos, y compris l'installation des bibliothèques vocales .NET requises. Cet article suppose que vous avez au moins des compétences en programmation intermédiaires, mais que vous ne savez rien sur la reconnaissance et la synthèse vocales.

Ajout de la prise en charge de la reconnaissance vocale à une application console

Pour créer la démo présentée dans figue. une, J'ai démarré Visual Studio et créé une nouvelle application console C # appelée ConsoleSpeech. J'ai utilisé les aides vocales avec succès avec Visual Studio 2010 et 2012, mais toute version relativement récente devrait fonctionner. Après avoir chargé le code du modèle dans l'éditeur, j'ai renommé le fichier Program.cs dans la fenêtre Explorateur de solutions en ConsoleSpeechProgram.cs, plus descriptif, et Visual Studio a renommé la classe Program pour moi.

Ensuite, j'ai ajouté un lien vers le fichier Microsoft.Speech.dll, qui se trouve dans C: \\ ProgramFiles (x86) \\ Microsoft SDKs \\ Speech \\ v11.0 \\ Assembly. Cette DLL manquait sur mon ordinateur et j'ai dû la télécharger. L'installation des fichiers nécessaires pour ajouter la reconnaissance vocale et la synthèse à une application n'est pas si simple. J'expliquerai le processus d'installation en détail dans la section suivante, mais pour l'instant, disons que vous avez Microsoft.Speech.dll sur votre système.

En ajoutant une référence à la DLL vocale, j'ai supprimé toutes les instructions using du haut du code, à l'exception de l'espace de noms System de niveau supérieur. Ensuite, j'ai ajouté des instructions d'utilisation pour les espaces de noms Microsoft.Speech.Recognition, Microsoft.Speech.Synthesis et System.Globalization. Les deux premiers espaces de noms sont mappés à une DLL vocale. Notez qu'il existe également des espaces de noms tels que System.Speech.Recognition et System.Speech.Synthesis, qui peuvent prêter à confusion. Je vais vous expliquer la différence entre les deux sous peu. L'espace de noms de globalisation était disponible par défaut et ne nécessitait pas l'ajout d'une nouvelle référence au projet.

Le code source complet de l'application console de démonstration est affiché à figue. 3et également disponible en package code sourceaccompagnant cet article. J'ai supprimé toute la gestion des erreurs standard pour éviter autant que possible de brouiller les idées principales.

Chiffre: 3. Code source de l'application console de démonstration

en utilisant le système; en utilisant Microsoft.Speech.Recognition; en utilisant Microsoft.Speech.Synthesis; en utilisant System.Globalization; namespace ConsoleSpeech (classe 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) Console nDevice ("\\ \\ (Parlant: je suis éveillé) "); ss.Speak (" Je suis réveillé "); 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; nb_StartStopbommands (nouveau) (ch_StartStopCommands); Grammaire g_StartStop \u003d new Grammar (gb_StartStop); Choices ch_Numbers \u003d new Choices (); ch_Numbers.Add ("1"); ch_Numbers.Add ("2" Add ("3"); ch_Numbers.Add ("4) "); GrammarBuilder gb_WhatI sXplusY \u003d nouveau GrammarBuilder (); gb_WhatIsXplusY.Append ("Qu'est-ce que"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammaire g_WhatIsXplusY \u003d nouvelle grammaire (gb_WhatIsXplusY); sre.LoadGrammarAsync (g_StartStop); sre.LoadGrammarAsync (g_WhatIsXplusY); sre.RecognizeAsync (RecognizeMode.Multiple); while (done \u003d\u003d false) (;) Console.WriteLine ("\\ nHit< enter > pour fermer le shell \\ n "); Console.ReadLine ();) catch (Exception ex) (Console.WriteLine (ex.Message); Console.ReadLine ();)) // Main static void sre_SpeechRecognized (expéditeur de l'objet, SpeechRecognizedEventArgs e ) (string txt \u003d e.Result.Text; float confidence \u003d e.Result.Confidence; Console.WriteLine ("\\ nRecognized:" + txt); if (confidence< 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 ("(Parlant: Adieu) "); ss.Speak (" Adieu ");) if (txt.IndexOf (" Quoi ")\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 (words); int sum \u003d num1 + num2; Console.WriteLine (" (Speaking: "+ words +" plus "+ words +" equals "+ somme +") "); ss.SpeakAsync (mots +" plus "+ mots +" égal "+ somme);)) // sre_SpeechRecognized) // Programme) // ns

Après les instructions d'utilisation, le code de démonstration commence comme ceci:

namespace ConsoleSpeech (classe 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'objet SpeechSynthesizer au niveau de la classe permet à une application de synthétiser la parole. L'objet SpeechRecognitionEngine permet à une application d'écouter et de reconnaître des mots ou des phrases prononcés. Le booléen done détermine la fin de l'application entière. La variable booléenne speechOn contrôle si l'application écoute les commandes autres que la commande pour quitter le programme.

L'idée ici est que l'application console n'accepte pas les entrées au clavier, donc elle écoute toujours les commandes. Cependant, si speechOn est faux, seule la commande de sortie du programme est reconnue et exécutée; les autres commandes sont reconnues mais ignorées.

La méthode principale commence comme ceci:

try (ss.SetOutputToDefaultAudioDevice (); Console.WriteLine ("\\ n (Parlant: je suis réveillé)"); ss.Speak ("Je suis réveillé");

L'objet SpeechSynthesizer a été instancié lors de sa déclaration. L'utilisation de l'objet synthétiseur est assez simple. La méthode SetOutputToDefaultAudioDevice envoie la sortie aux haut-parleurs connectés à votre ordinateur (la sortie peut également être envoyée vers un fichier). La méthode Speak prend une chaîne, puis la prononce. C'est aussi simple que ça.

La reconnaissance vocale est beaucoup plus difficile que sa synthèse. La méthode Main continue en créant un objet de reconnaissance:

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

Tout d'abord, l'objet CultureInfo spécifie la langue à reconnaître, dans ce cas l'anglais des États-Unis. L'objet CultureInfo se trouve dans l'espace de noms Globalization que nous avons référencé avec l'instruction using. Ensuite, après avoir appelé le constructeur SpeechRecognitionEngine, l'entrée vocale est affectée au périphérique audio par défaut, le plus souvent le microphone. Notez que la plupart des ordinateurs portables ont un microphone intégré, mais les ordinateurs de bureau auront besoin d'un microphone externe (cela est souvent combiné avec des écouteurs de nos jours).

La méthode clé de l'objet de reconnaissance est le gestionnaire d'événements SpeechRecognized. Lorsque vous utilisez Visual Studio, si vous entrez "sre.SpeechRecognized + \u003d" et attendez une fraction de seconde, IntelliSense terminera automatiquement votre expression avec le nom du gestionnaire d'événements sre_SpeechRecognized. Je vous conseille d'appuyer sur la touche Tab pour accepter l'option suggérée et d'utiliser ce nom par défaut.

Choices ch_Numbers \u003d new Choices (); ch_Numbers.Add ("1"); ch_Numbers.Add ("2"); ch_Numbers.Add ("3"); ch_Numbers.Add ("4"); // d'un point de vue technique, // c'est Add (new string ("4")); GrammarBuilder gb_WhatIsXplusY \u003d new GrammarBuilder (); gb_WhatIsXplusY.Append ("Qu'est-ce que"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammaire g_WhatIsXplusY \u003d nouvelle grammaire (gb_WhatIsXplusY);

Les trois objets principaux ici sont l'ensemble de choix, le modèle GrammarBuilder et le gestionnaire de grammaire. Lorsque je crée une grammaire pour la reconnaissance, je commence par énumérer des exemples spécifiques de ce que je dois reconnaître. Disons "Qu'est-ce qu'un plus deux?" et "Qu'est-ce que trois plus quatre?"

Ensuite, je définis un modèle générique approprié, par exemple "Qu'est-ce que plus ? ". Le modèle est un GrammarBuilder, et les valeurs spécifiques qui sont transmises au modèle sont l'ensemble de choix. L'objet Grammar encapsule un modèle et des choix.

Dans le programme de démonstration, je contrains l'addition de 1 à 4 et les ajoute sous forme de chaînes à l'ensemble de choix. Approche plus efficace:

numéros de chaîne \u003d nouvelle chaîne ("1", "2", "3", "4"); Choices ch_Numbers \u003d new Choices (nombres);

Je vous présente une approche moins efficace pour créer un ensemble de choix pour deux raisons. Tout d'abord, l'ajout d'une ligne à la fois était la seule approche que j'ai vue dans d'autres exemples de reconnaissance vocale. Deuxièmement, vous pourriez penser que l'ajout d'une ligne à la fois ne devrait pas fonctionner du tout; Visual Studio IntelliSense montre en temps réel que l'une des surcharges Ajouter prend un paramètre de phrases de chaîne de paramètres. Si vous n'avez pas remarqué le mot clé params, vous avez peut-être supposé que la méthode Add n'accepte que les tableaux de chaînes et n'accepte pas une seule chaîne. Mais ce n'est pas le cas: il accepte les deux. Mon conseil est de passer un tableau.

La création d'un ensemble de choix à partir de nombres séquentiels est en quelque sorte un cas particulier et permet une approche programmatique comme:

numéros de chaîne \u003d nouvelle chaîne; pour (int i \u003d 0; i< 100; ++i) numbers[i] = i.ToString(); Choices ch_Numbers = new Choices(numbers);

Après avoir créé des choix pour remplir les emplacements de GrammarBuilder, la démo crée un GrammarBuilder puis contrôle la grammaire:

GrammarBuilder gb_WhatIsXplusY \u003d new GrammarBuilder (); gb_WhatIsXplusY.Append ("Qu'est-ce que"); gb_WhatIsXplusY.Append (ch_Numbers); gb_WhatIsXplusY.Append ("plus"); gb_WhatIsXplusY.Append (ch_Numbers); Grammaire g_WhatIsXplusY \u003d nouvelle grammaire (gb_WhatIsXplusY);

La démo utilise un modèle similaire pour créer une grammaire pour les commandes de démarrage et d'arrêt:

Choices ch_StartStopCommands \u003d new Choices (); ch_StartStopCommands.Add ("discours activé"); ch_StartStopCommands.Add ("speech off"); ch_StartStopCommands.Add ("klatu barada nikto"); GrammarBuilder gb_StartStop \u003d new GrammarBuilder (); gb_StartStop.Append (ch_StartStopCommands); Grammaire g_StartStop \u003d nouvelle grammaire (gb_StartStop);

Vous pouvez définir des grammaires de manière très flexible. Ici, les commandes «speech on», «speech off» et «klatu barada nikto» sont placées dans la même grammaire, car elles sont logiquement liées. Ces trois commandes peuvent être définies dans trois grammaires différentes, ou vous pouvez mettre les commandes «speech on» et «speech off» dans une grammaire et la commande «klatu barada nikto» dans la seconde.

Une fois que vous avez créé tous les objets Grammar, vous les placez dans le module de reconnaissance vocale et la reconnaissance vocale est activée:

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

L'argument RecognizeMode.Multiple est requis lorsque vous avez plus d'une grammaire, qui sera dans tous les programmes sauf les plus simples. La méthode Main se termine comme suit:

While (done \u003d\u003d false) (;) Console.WriteLine ("\\ nHit< enter > pour fermer le shell \\ n "); Console.ReadLine ();) catch (Exception ex) (Console.WriteLine (ex.Message); Console.ReadLine ();)) // Main

Une boucle while vide d'aspect étrange maintient le shell d'une application console en cours d'exécution. La boucle se termine lorsque le booléen de niveau classe done est défini sur true par le gestionnaire d'événements de reconnaissance vocale.

Traitement de la parole reconnu

Le code de gestion des événements de reconnaissance vocale commence comme ceci:

static void sre_SpeechRecognized (expéditeur de l'objet, SpeechRecognizedEventArgs e) (string txt \u003d e.Result.Text; float confidence \u003d e.Result.Confidence; Console.WriteLine ("\\ nRecognized:" + txt); if (confidence< 0.60) return; ...

Le texte reconnu est stocké dans la propriété Result.Text de l'objet SpeechRecognizedEventArgs. Vous pouvez également utiliser l'ensemble Result.Words. La propriété Result.Confidence contient une valeur comprise entre 0,0 et 1,0, qui est une estimation approximative de la correspondance entre le texte parlé et l'une des grammaires associées au module de reconnaissance. La démonstration demande au gestionnaire d'événements d'ignorer le texte de faible confiance dans le texte reconnu.

Les valeurs de confiance dépendent fortement de la complexité de vos grammaires, de la qualité du microphone et d'autres facteurs. Par exemple, si la démo ne doit reconnaître que les nombres de 1 à 4, les valeurs de confiance sur mon ordinateur sont généralement de 0,75. Mais, si la grammaire doit reconnaître des nombres de 1 à 100, les valeurs de confiance chutent à environ 0,25. En un mot, vous devez généralement expérimenter des valeurs de confiance pour obtenir de bons résultats de reconnaissance vocale.

if (txt.IndexOf ("speech on")\u003e \u003d 0) (Console.WriteLine ("Speech is now ON"); speechOn \u003d true;) if (txt.IndexOf ("speech off")\u003e \u003d 0) (Console .WriteLine ("La parole est maintenant désactivée"); speechOn \u003d false;) if (speechOn \u003d\u003d false) return;

Bien que cela ne soit pas tout à fait évident au début, cette logique devrait avoir du sens quand vous y réfléchissez. Ensuite, la commande de sortie secrète est traitée:

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

Notez que le moteur de reconnaissance vocale peut en fait reconnaître des mots sans signification. Si un objet Grammar contient des mots qui ne sont pas dans le vocabulaire intégré de cet objet, Grammar essaie d'identifier ces mots autant que possible en utilisant l'heuristique sémantique, et réussit généralement assez bien. C'est pourquoi j'ai utilisé "klatu" au lieu du "klaatu" correct (tiré d'un vieux film de science-fiction).

Notez également que vous n'avez pas besoin de traiter tout le texte grammatical reconnu ("klatu barada nikto") - vous avez juste besoin de suffisamment d'informations pour identifier de manière unique la phrase grammaticale ("klatu" et "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 (words); int sum \u003d num1 + num2; Console.WriteLine ("(Speaking:" + words + "plus" + words + "equals" + sum + ")"); ss.SpeakAsync (words + "plus" + mots + "égal" + somme);)) // sre_SpeechRecognized) // Programme) // ns

Notez que le texte de Results.Text est sensible à la casse ("Quoi" et "Quoi"). Une fois que vous avez reconnu une phrase, vous pouvez l'analyser en mots spécifiques. Dans ce cas, le texte reconnu est de la forme "Qu'est-ce que x plus y", donc "Quoi" est mis en mots, et les deux nombres ajoutés (sous forme de chaînes) sont stockés en mots et en mots.

Installation de bibliothèques

L'explication du programme de démonstration suppose que toutes les bibliothèques vocales requises sont installées sur votre ordinateur. Pour créer et exécuter des programmes de démonstration, vous devez installer quatre packages: le SDK (offre la possibilité de créer des démos dans Visual Studio), le runtime (exécute les démos après leur création), et le système de reconnaissance et de synthèse ) langues.

Pour installer le SDK, recherchez sur Internet «Speech Platform 11 SDK». Cela vous mènera à la bonne page dans le Centre de téléchargement Microsoft ( figue. quatre). En cliquant sur le bouton Télécharger, vous verrez les options affichées dans figue. cinq... Le SDK est disponible en versions 32 et 64 bits. Je recommande fortement d'utiliser la version 32 bits quel que soit le bitness de votre système. La version 64 bits n'interagit pas avec certaines applications.


Chiffre: 4. Page principale de l'installation du SDK dans le Centre de téléchargement Microsoft


Chiffre: 5. Installation du SDK Speech

Vous n'avez besoin de rien d'autre qu'un seul fichier .msi pour x86 (pour les systèmes 32 bits). Avec ce fichier sélectionné et en cliquant sur Suivant, vous pouvez lancer le programme d'installation à partir d'ici. Les bibliothèques vocales ne donnent pas beaucoup de commentaires sur la fin de l'installation, alors ne cherchez pas de messages de réussite.


Chiffre: 6. Installation de l'environnement d'exécution

Il est extrêmement important de sélectionner la même version de plate-forme (dans la démo - 11) et bitness (32 ou 64) que le SDK. Encore une fois, je recommande fortement la version 32 bits, même si vous êtes sur un système 64 bits.

Ensuite, vous pouvez définir la langue de reconnaissance. La page de téléchargement est à figue. 7... La démo utilise le fichier MSSpeech_SR_en-us_TELE.msi (anglais-États-Unis). SR signifie reconnaissance vocale et TELE signifie téléphonie; cela signifie que la langue reconnue est conçue pour fonctionner avec une entrée audio de faible qualité telle qu'un téléphone ou un microphone de bureau.


Chiffre: 7. Réglage de la langue reconnue

Enfin, vous pouvez définir la langue et la voix pour la synthèse vocale. La page de téléchargement est à figue. 8... La démo utilise le fichier MSSpeech_TTS_en-us_Helen.msi. TTS (text-to-speech) est essentiellement un synonyme de synthèse vocale. Notez les deux voix disponibles en anglais, aux États-Unis. Il y a d'autres voix anglaises, mais pas des États-Unis. La création de fichiers de langage de synthèse est une tâche complexe. Cependant, d'autres voix peuvent être achetées et installées auprès de diverses entreprises.


Chiffre: 8. Réglage de la langue de la voix et de la synthèse

Curieusement, alors que la reconnaissance vocale et la synthèse vocale / vocale sont en fait des choses complètement différentes, les deux packages sont des options sur la même page de téléchargement. L'interface utilisateur du centre de téléchargement vous permet de marquer à la fois la langue de reconnaissance et la langue de synthèse, mais essayer de les installer en même temps a été désastreux pour moi, je recommande donc de les installer séparément.

Comparaison de Microsoft.Speech et System.Speech

Si vous êtes nouveau dans la reconnaissance et la synthèse vocales pour les applications Windows, vous pouvez facilement vous perdre dans la documentation, car il existe plusieurs plates-formes vocales. Plus précisément, en plus de la bibliothèque Microsoft.Speech.dll utilisée par les démos de cet article, il existe la bibliothèque System.Speech.dll, qui fait partie de système opérateur Les fenêtres. Les deux bibliothèques sont similaires en ce sens que leurs API sont presque, mais pas complètement identiques. Par conséquent, si vous recherchez des exemples de traitement de la parole sur Internet et que vous voyez des extraits de code, et non des programmes complets, il n'est pas du tout évident que cet exemple appartient à System.Speech ou à Microsoft.Speech.

Si vous débutez dans le traitement de la parole, utilisez la bibliothèque Microsoft.Speech plutôt que System.Speech pour ajouter la prise en charge de la parole à votre application .NET.

Bien que les deux bibliothèques partagent une base de code de base commune et des API similaires, elles sont définitivement différentes. Certaines des principales différences sont résumées dans languette. une.

Languette. 1. Les principales différences entre Microsoft.Speech et System.Speech

La DLL System.Speech fait partie du système d'exploitation, elle est donc installée sur tous les systèmes Windows. La DLL Microsoft.Speech (ainsi que son environnement d'exécution et ses langues associées) doivent être téléchargées et installées sur le système. La reconnaissance à l'aide de System.Speech nécessite généralement une formation pour un utilisateur spécifique, lorsque l'utilisateur lit du texte et que le système apprend à comprendre la prononciation de cet utilisateur. La reconnaissance à l'aide de Microsoft.Speech fonctionne immédiatement pour n'importe quel utilisateur. System.Speech peut reconnaître presque n'importe quel mot (c'est ce qu'on appelle la dictée gratuite). Microsoft.Speech reconnaîtra uniquement les mots et les phrases qui se trouvent dans l'objet Grammar défini dans le programme.

Ajout de la prise en charge de la reconnaissance vocale à une application Windows Forms

Le processus d'ajout de la reconnaissance vocale et de la prise en charge de la synthèse vocale à une application Windows Forms ou WPF est similaire à celui d'une application console. Pour créer le programme de démonstration présenté dans figue. 2, J'ai démarré Visual Studio, créé une nouvelle application Windows Forms C # et l'ai renommée WinFormSpeech.

Après avoir chargé le code du modèle dans l'éditeur, j'ai ajouté un lien vers le fichier Microsoft.Speech.dll dans la fenêtre Explorateur de solutions - comme je l'ai fait dans le programme de la console. En haut du code source, j'ai supprimé les instructions using inutiles, ne laissant que des références aux espaces de noms System, Data, Drawing et Forms. Ensuite, j'ai ajouté deux instructions d'utilisation pour les espaces de noms Microsoft.Speech.Recognition et System.Globalization.

La démonstration de Windows Forms n'utilise pas la synthèse vocale, je ne suis donc pas lié à la bibliothèque Microsoft.Speech.Synthesis. L'ajout de synthèse vocale à une application Windows Forms est identique à l'ajout de synthèse vocale à une application console.

Dans Visual Studio, en mode Création, j'ai fait glisser les contrôles TextBox, CheckBox et ListBox sur le formulaire. J'ai double-cliqué sur CheckBox et Visual Studio a automatiquement créé un squelette pour la méthode de gestionnaire d'événements CheckChanged.

Rappelez-vous que le programme de la console de démonstration a immédiatement commencé à écouter les commandes vocales et a continué à le faire jusqu'à la fin. Cette approche peut également être utilisée dans une application Windows Forms, mais à la place, j'ai décidé de laisser l'utilisateur activer et désactiver la reconnaissance vocale à l'aide d'un contrôle CheckBox (c'est-à-dire en utilisant une case à cocher).

Le code source dans le fichier Form1.cs du programme de démonstration où la classe partielle est définie est affiché dans figue. 9... Un objet de moteur vocal est déclaré et instancié en tant que membre de Form. Dans le constructeur du formulaire, je connecte le gestionnaire d'événements SpeechRecognized, puis je crée et charge deux objets Grammars:

form1 publique () (InitializeComponent (); sre.SetInputToDefaultAudioDevice (); sre.SpeechRecognized + \u003d sre_SpeechRecognized; grammaire g_HelloGoodbye \u003d GetHelloGoodbyeGrammar (); grammaire g_SetTextBox \u003d GetTextBox1TextGrammar (); sre.LoadGrammarAsync (g_HelloGoodbye); sre.LoadGrammarAsync (g_SetTextBox); // sre.RecognizeAsync () est // dans le gestionnaire d'événements CheckBox)

Chiffre: 9. Ajout de la prise en charge de la reconnaissance vocale à Windows Forms

en utilisant le système; en utilisant System.Data; en utilisant System.Drawing; en utilisant System.Windows.Forms; en utilisant Microsoft.Speech.Recognition; en utilisant System.Globalization; namespace WinFormSpeech (classe partielle publique Form1: Form (static CultureInfo ci \u003d new CultureInfo ("en-us"); static SpeechRecognitionEngine sre \u003d new SpeechRecognitionEngine (ci); public Form1 () (InitializeComponent (); sre.SetInputToDefaultAudioDevice (); sre.SetInputToDefaultAudioDevice () .SetInputToDefaultAudioDevice (); sre.SetInputToDefaultAudioDevice .SpeechRecognized + \u003d sre_SpeechRecognized; grammaire g_HelloGoodbye \u003d GetHelloGoodbyeGrammar (); grammaire g_SetTextBox \u003d GetTextBox1TextGrammar (); sre.LoadGrammarAsync (g_HelloGoodbye); sre.LoadGrammarAsync (g_SetTextBox); // sre.RecognizeAsync () / / stocké dans le gestionnaire d'événements CheckBox) static Grammar GetHelloGoodbyeGrammar () (Choices ch_HelloGoodbye \u003d new Choices (); ch_HelloGoodbye.Add ("hello"); ch_HelloGoodbye.Add ("goodbye"); GrammarBuilder gb_result \u003d new ch_HelloGoodbye \u003d new ch_HelloGrese ch_HelloGoodbye (return) g_result;) static Grammar GetTextBox1TextGrammar () (Choices ch_Colors \u003d new Choices (); ch_Colors.Add (nouvelle chaîne ("red", "white", "blue")); GrammarBuilder gb_r esult \u003d nouveau GrammarBuilder (); gb_result.Append ("définir la zone de texte 1"); gb_result.Append (ch_Colors); Grammaire g_result \u003d nouvelle grammaire (gb_result); return g_result; ) private void checkBox1_CheckedChanged (expéditeur de l'objet, EventArgs e) (if (checkBox1.Checked \u003d\u003d true) sre.RecognizeAsync (RecognizeMode.Multiple); else if (checkBox1.Checked \u003d\u003d false) // désactivé sre.RecognizeAsyncCancel ();) void sre_SpeechRecognized (expéditeur de l'objet, 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 ("Je vous ai entendu dire:" + txt);))); // Spécificités de 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;))); // spécificités de WinForm))) // Form) // ns

J'aurais pu créer directement deux objets Grammar, comme dans un programme console, mais à la place, pour rendre le code un peu plus clair, j'ai défini deux méthodes d'aide (GetHelloGoodbyeGrammar et GetTextBox1TextGrammar) qui font le travail.

statique Grammar GetTextBox1TextGrammar () (Choices ch_Colors \u003d new Choices (); ch_Colors.Add (nouvelle chaîne ("red", "white", "blue")); GrammarBuilder gb_result \u003d new GrammarBuilder (); gb_result.Append ("set text box 1 "); gb_result.Append (ch_Colors); Grammaire g_result \u003d new Grammar (gb_result); return g_result;)

Cette méthode d'assistance reconnaîtra l'expression "définir la zone de texte 1 rouge". Cependant, l'utilisateur n'est pas obligé de prononcer cette phrase avec précision. Par exemple, il pourrait dire: "Veuillez définir le texte de la zone de texte 1 sur rouge" et le moteur de reconnaissance vocale reconnaîtrait toujours la phrase comme "définir la zone de texte 1 en rouge" - mais avec une valeur de confiance inférieure à une correspondance exacte avec le modèle de grammaire. En d'autres termes, lors de la création d'objets Grammar, vous n'êtes pas obligé de prendre en compte toutes les variations de la phrase. Cela simplifie considérablement l'utilisation de la reconnaissance vocale.

Le gestionnaire d'événements pour CheckBox est défini comme ceci:

private void checkBox1_CheckedChanged (expéditeur de l'objet, EventArgs e) (if (checkBox1.Checked \u003d\u003d true) sre.RecognizeAsync (RecognizeMode.Multiple); else if (checkBox1.Checked \u003d\u003d false) // désactivé sre.RecognizeAsyncCancel ();)

L'objet du moteur de reconnaissance vocale (sre) existe toujours pendant toute la durée de vie d'une application Windows Forms. Cet objet est activé et désactivé par des appels aux méthodes RecognizeAsync et RecognizeAsyncCancel lorsque l'utilisateur bascule le CheckBox en conséquence.

La définition du gestionnaire d'événements SpeechRecognized commence par:

void sre_SpeechRecognized (expéditeur de l'objet, SpeechRecognizedEventArgs e) (string txt \u003d e.Result.Text; float conf \u003d e.Result.Confidence; if (conf< 0.65) return; ...

En plus des propriétés Result.Text et Result.Confidence utilisées de manière plus ou moins cohérente, l'objet Result possède plusieurs autres propriétés utiles mais plus complexes que vous voudrez peut-être explorer; par exemple Homophones et ReplacementWordUnits. De plus, le moteur de reconnaissance vocale fournit plusieurs événements utiles comme SpeechHypothesized.

this.Invoke ((Action) (() \u003d\u003e listBox1.Items.Add ("Je vous ai entendu dire:" + txt)));

En théorie, dans cette situation, l'utilisation du délégué MethodInvoker est légèrement plus efficace que le délégué Action, puisque MethodInvoker fait partie de l'espace de noms Windows.Forms, ce qui signifie qu'il est spécifique aux applications Windows Forms. Le délégué Action est plus polyvalent. Cet exemple montre que vous pouvez manipuler complètement application Windows Les formulaires grâce à la reconnaissance vocale sont une fonctionnalité incroyablement puissante et utile.

Conclusion

Les informations présentées dans cet article devraient vous permettre de démarrer immédiatement si vous souhaitez explorer la synthèse vocale et la reconnaissance dans les applications .NET. Maîtriser la technologie elle-même est facile une fois que vous avez surmonté les difficultés de la formation initiale et de la configuration des composants. Le vrai défi de la synthèse et de la reconnaissance de la parole est de savoir quand c'est vraiment utile.

Dans le cas des programmes de console, vous pouvez créer des dialogues réciproques intéressants où l'utilisateur pose une question et le programme répond, résultant essentiellement en un environnement de type Cortana. Vous devez faire preuve de prudence car lorsque la parole provient des haut-parleurs de votre ordinateur, elle sera captée par le microphone et pourra être à nouveau reconnue. Je me suis moi-même retrouvé dans des situations assez amusantes où j'ai posé une question, l'application l'a reconnue et y a répondu, mais la réponse orale a déclenché le prochain événement de reconnaissance, et à la fin j'ai eu une drôle de boucle de parole sans fin.

Une autre utilisation possible de la parole dans un programme de console consiste à reconnaître des commandes telles que Lancer le bloc-notes et Lancer Word. En d'autres termes, un tel programme de console peut être utilisé sur votre ordinateur pour effectuer des actions qui, autrement, nécessiteraient beaucoup de manipulation du clavier et de la souris.

James McCaffrey(Dr James McCaffrey) travaille pour Microsoft Research à Redmond, Washington. Participation à la création de plusieurs produits Microsoft, dont Internet Explorer et Bing. Vous pouvez le contacter au [email protected].

Merci aux experts Microsoft Research suivants d'avoir relu cet article: Rob Gruen, Mark Marron et Curtis von Veh.

Ce téléphone a reconnaissance de la parole ou la saisie vocale, mais cela ne fonctionne que sur Internet, en se connectant aux services Google. Mais le téléphone peut apprendre à reconnaître la parole sans Internet, nous verrons comment activer la reconnaissance de la langue russe dans hors ligne... Pour que cette méthode fonctionne, vous devez avoir installé deux applications. Recherche vocale et recherche Google, bien que ces programmes soient déjà présents dans le firmware d'usine.

Pour le firmware

Accédez aux paramètres du téléphone et sélectionnez

Choisissez le russe et téléchargez-le.

Pour le firmware 2.8B

Dans le nouveau firmware, l'élément de menu " Reconnaissance vocale hors ligne"absent.

Si vous aviez des packages hors ligne installés avant la mise à jour du micrologiciel et que vous n'avez pas effacé (réinitialisé les paramètres) pendant la mise à jour, ils auraient dû être enregistrés. Sinon, vous devrez revenir au firmware 2.2 , installez des packs vocaux, puis mettez à jour le système pour 2,8 milliards.

Pour les appareils Rev.B

Nous installons la mise à jour grâce à la récupération et profitons de la reconnaissance vocale dans l'huile.

2. Téléchargez la base pour le discours russe et copiez-la sur la carte SD

Télécharger Russian_offline.zip 1301

3. Accédez à la récupération en maintenant (Volume + et On) avec le téléphone éteint.

4. Sélectionnez Appliquer la mise-à-jour depuis la mémoire externe et sélectionnez l'archive téléchargée.

Aucun programme ne peut remplacer complètement le travail manuel de transcription de la parole enregistrée. Cependant, il existe des solutions qui peuvent considérablement accélérer et faciliter la traduction de la parole en texte, c'est-à-dire simplifier la transcription.

La transcription est l'enregistrement d'un fichier audio ou vidéo sous forme de texte. Il existe des tâches rémunérées sur Internet, lorsqu'une certaine somme d'argent est versée à l'interprète pour la transcription du texte.

La traduction parole-texte est utile

  • les étudiants à traduire en texte des conférences audio ou vidéo enregistrées,
  • blogueurs dirigeant des sites Web et des blogs,
  • écrivains, journalistes pour la rédaction de livres et de textes,
  • info aux professionnels qui ont besoin de texte après leur webinaire, discours, etc.,
  • les personnes qui ont du mal à taper - elles peuvent dicter une lettre et l'envoyer à la famille ou aux amis,
  • autres options.

Décrivons les outils les plus efficaces disponibles sur les PC, les applications mobiles et les services en ligne.

1 Site Web speechpad.ru

C'est un service en ligne qui vous permet de navigateur google Chrome traduit la parole en texte. Le service fonctionne avec un microphone et des fichiers prêts à l'emploi. Bien sûr, la qualité sera beaucoup plus élevée si vous utilisez un microphone externe et que vous vous dictez. Cependant, le service fait un très bon travail même avec des vidéos YouTube.

Cliquez sur "Activer l'enregistrement", répondez à la question sur "Utilisation du microphone" - pour cela, cliquez sur "Autoriser".

Une longue instruction sur l'utilisation du service peut être réduite en cliquant sur le bouton 1 de la Fig. 3. Vous pouvez vous débarrasser des publicités en passant par une simple inscription.

Chiffre: 3. Service Speechpad

Le résultat final est facile à modifier. Pour ce faire, vous devez soit corriger manuellement le mot sélectionné, soit le dicter à nouveau. Les résultats du travail sont enregistrés dans compte personnel, ils peuvent également être téléchargés sur votre ordinateur.

Liste des didacticiels vidéo sur l'utilisation de speechpad:

Vous pouvez transcrire des vidéos depuis Youtube ou depuis votre ordinateur, cependant, vous avez besoin d'un mixeur, plus de détails:

Vidéo de transcription audio

Le service fonctionne en sept langues. Il y a un petit inconvénient. Cela consiste en ce que si vous avez besoin de transcrire un fichier audio fini, son son est distribué aux haut-parleurs, ce qui crée un bruit supplémentaire sous la forme d'un écho.

2 Service dictation.io

Un merveilleux service en ligne qui vous permettra de traduire la parole en texte gratuitement et facilement.

Figure. 4. Service dictation.io

1 sur la fig. 4 - Le russe peut être sélectionné à la fin de la page. Dans le navigateur Google Chrome, la langue est sélectionnée, mais dans Mozilla pour une raison quelconque, une telle possibilité n'existe pas.

Il est à noter que la possibilité d'enregistrer automatiquement le résultat final a été mise en œuvre. Cela empêchera la suppression accidentelle en fermant un onglet ou un navigateur. Ce service ne reconnaît pas les fichiers terminés. Fonctionne avec un microphone. Vous devez mentionner les signes de ponctuation lors de la dictée.

Le texte est reconnu assez correctement, il n'y a pas de fautes d'orthographe. Vous pouvez insérer vous-même des signes de ponctuation à partir du clavier. Le résultat final peut être enregistré sur votre ordinateur.

3 RealSpeaker

Ce programme facilite la traduction de la parole humaine en texte. Il est conçu pour fonctionner sur différents systèmes: Windows, Android, Linux, Mac. Avec son aide, vous pouvez convertir la parole qui sonne en microphone (par exemple, elle peut être intégrée à un ordinateur portable), ainsi que enregistrée dans des fichiers audio.

Peut percevoir 13 langues du monde. Il existe une version bêta du programme qui fonctionne comme un service en ligne:

Vous devez vous rendre sur le lien ci-dessus, sélectionner la langue russe, télécharger votre fichier audio ou vidéo sur le service en ligne et payer sa transcription. Après la transcription, vous pouvez copier le texte résultant. Plus le fichier de transcription est volumineux, plus il faudra de temps pour le traiter, plus en détail:

En 2017, il y avait une option de transcription gratuite utilisant RealSpeaker, en 2018, il n'y en a pas. Il est très embarrassant que le fichier transcrit soit disponible pour tous les utilisateurs en téléchargement, peut-être sera-t-il amélioré.

Contacts développeurs (VKontakte, Facebook, Youtube, Twitter, e-mail, téléphone) du programme se trouvent sur la page de son site (plus précisément, au sous-sol du site):

4 Speechlogger

Une alternative à l'application précédente pour appareils mobilesfonctionnant sur Android. Disponible gratuitement dans l'App Store:

Le texte est édité automatiquement, des signes de ponctuation y sont placés. Très pratique pour dicter des notes ou faire des listes. En conséquence, le texte sera d'une très bonne qualité.

5 Dictée de dragon

Il s'agit d'une application distribuée gratuitement pour les appareils mobiles d'Apple.

Le programme peut fonctionner avec 15 langues. Il vous permet d'éditer le résultat, de sélectionner les mots souhaités dans la liste. Il est nécessaire de prononcer clairement tous les sons, de ne pas faire de pauses inutiles et d'éviter l'intonation. Parfois, il y a des erreurs dans la fin des mots.

L'application Dragon Dictation est par exemple utilisée par les propriétaires pour dicter une liste de courses dans un magasin tout en se déplaçant dans l'appartement. Quand j'y arrive, vous pouvez regarder le texte dans la note, et vous n'avez pas besoin d'écouter.

Quel que soit le programme que vous utilisez dans votre pratique, soyez prêt à vérifier le résultat et à faire certains ajustements. C'est le seul moyen d'obtenir un texte impeccable sans erreurs.

Services également utiles:

Recevez les derniers articles sur l'informatique directement dans votre boîte de réception.
Déjà plus 3.000 abonnés

.

Mis à jour: lundi 31 juillet 2017

Qu'est-ce que l'idée semi-fantastique de parler à un ordinateur a à voir avec la photographie professionnelle? Presque aucun, si vous n'êtes pas fan de l'idée du développement sans fin de tout l'environnement technique d'une personne. Imaginez un instant que vous donniez des ordres vocaux à votre appareil photo pour changer la distance focale et effectuer une compensation d'exposition d'un demi-arrêt plus. La télécommande de la caméra a déjà été implémentée, mais là, vous devez appuyer silencieusement sur les boutons, et ici le mousseur auditif!

C'est devenu une tradition de citer un film de science-fiction comme exemple de communication vocale d'une personne avec un ordinateur, enfin, au moins "A Space Odyssey 2001" réalisé par Stanley Kubrick. Là, l'ordinateur de bord mène non seulement un dialogue significatif avec les astronautes, mais peut lire sur les lèvres comme une personne sourde. En d'autres termes, la machine a appris à reconnaître la parole humaine sans erreur. Peut-être qu'une commande vocale à distance de la caméra semblera superflue, mais beaucoup aimeraient cette phrase "Enlève-nous, bébé" et l'image de toute la famille sur le fond d'un palmier est prête.

Eh bien, ici j'ai rendu hommage à la tradition, fantasmé un peu. Mais, parlant du fond du cœur, cet article était difficile à écrire, et tout a commencé par un cadeau sous la forme d'un smartphone avec le système d'exploitation Android 4. Ce modèle HUAWEI U8815 dispose d'un petit écran tactile de quatre pouces et d'un clavier à l'écran. Il est quelque peu inhabituel de taper dessus, mais il s'est avéré que ce n'était pas particulièrement nécessaire. (image01)

1. Reconnaissance vocale dans un smartphone fonctionnant sous Android OS

En maîtrisant un nouveau jouet, j'ai remarqué une image graphique d'un microphone dans la barre de recherche Google et sur le clavier dans Notes. Auparavant, je n'étais pas intéressé par ce que ce symbole représente. J'ai eu des conversations dans Skypeet des lettres tapées sur le clavier. C'est ce que font la plupart des internautes. Mais comme ils m'ont expliqué plus tard, dans un moteur de recherche Google la recherche vocale en russe a été ajoutée et des programmes sont apparus qui vous permettent de dicter des messages courts lors de l'utilisation du navigateur "Chrome".

J'ai prononcé une phrase de trois mots, le programme les a identifiés et les a montrés dans une cellule sur fond bleu. Il y avait de quoi être surpris, car tous les mots étaient correctement orthographiés. Si vous cliquez sur cette cellule, la phrase apparaît dans le champ de texte du cahier Android. Il a donc dit quelques phrases de plus et a envoyé un message à l'assistant par SMS.


2. Un bref historique des programmes de reconnaissance vocale.

Ce n'était pas une découverte pour moi que les avancées modernes dans le domaine de la commande vocale permettent de donner des commandes à des appareils électroménagers, une voiture, un robot. Le mode Commande a été introduit dans les versions précédentes de Windows, OS / 2 et Mac OS. J'ai vu des programmes de discussion, mais à quoi cela sert-il? C'est peut-être ma particularité qu'il m'est plus facile de parler que de taper sur le clavier, et sur mon téléphone portable, je ne peux rien taper du tout. Je dois noter les contacts sur un ordinateur portable avec un clavier normal et les transférer via un câble USB. Mais parler simplement dans le microphone et l'ordinateur lui-même a tapé du texte sans erreur - c'était un rêve pour moi. L'atmosphère de désespoir a été alimentée par les discussions du forum. Il y avait une si triste pensée en eux partout:

«Cependant, en fait, jusqu'à présent, les programmes de véritable reconnaissance vocale (et même en russe) n'existent pratiquement pas, et ils ne seront évidemment pas créés de sitôt. De plus, même la tâche opposée à la reconnaissance - la synthèse vocale, qui semble être beaucoup plus facile que la reconnaissance, n'a pas été entièrement résolue. " (ComputerPress n ° 12, 2004)

«Il n'y a toujours pas de programmes de reconnaissance vocale normaux (pas seulement en russe), car la tâche est assez difficile pour un ordinateur. Et le pire, c'est que le mécanisme humain de reconnaissance des mots n'est pas encore compris, il n'y a donc rien à partir de quoi commencer lors de la création de programmes de reconnaissance. " (Une autre discussion sur le forum).

Dans le même temps, les examens des programmes de saisie vocale en anglais ont révélé des succès évidents. Par exemple, IBM ViaVoice 98 Executive Edition avait un vocabulaire de base de 64 000 mots et la possibilité d'ajouter le même nombre de ses propres mots. Le pourcentage de reconnaissance de mots sans formation du programme était d'environ 80% et avec un travail ultérieur avec un utilisateur spécifique atteint 95%.

Parmi les programmes de reconnaissance de la langue russe, il convient de noter "Gorynych" - un ajout au Dragon Dictate 2.5 de langue anglaise. A propos des recherches, puis "la bataille avec cinq Gorynychs" je vous raconterai dans la seconde partie de la revue. Le premier j'ai trouvé le "Dragon anglais".

3. Programme de reconnaissance de la parole continue "Dragon Naturally Speaking"

La version moderne du programme d'entreprise "Nuancer" s'est avéré être avec mon ancienne connaissance à l'Institut des langues étrangères de Minsk. Elle l'a apporté d'un voyage à l'étranger et l'a acheté, pensant qu'elle pourrait être une «secrétaire informatique». Mais quelque chose n'a pas fonctionné et le programme est resté presque oublié sur l'ordinateur portable. En raison du manque d'expérience intelligible, j'ai dû aller chez mon ami moi-même. Toute cette longue introduction est nécessaire pour une bonne compréhension des conclusions que j'ai tirées.

Le nom complet de mon premier dragon ressemblait à ceci: ... Le programme est en anglais et tout est clair même sans manuel. La première étape consiste à créer un profil d'un utilisateur spécifique pour déterminer les particularités du son des mots dans sa performance. Ce que j'ai fait - ce qui compte, c'est l'âge, le pays et la prononciation de l'orateur. Mon choix est le suivant: 22-54 ans, anglais britannique, prononciation standard. Ensuite, il y a plusieurs fenêtres où vous configurez votre microphone. (image04)

La prochaine étape pour les programmes sérieux de reconnaissance vocale est la formation à la prononciation d'une personne en particulier. Vous êtes invité à choisir la nature du texte: mon choix est une brève instruction sur la dictée, mais vous pouvez aussi «commander» une histoire humoristique.

L'essence de cette étape de travail avec le programme est extrêmement simple - un texte est affiché dans la fenêtre, au-dessus se trouve une flèche jaune. Lorsqu'elle est prononcée correctement, la flèche se déplace à travers les phrases et en bas se trouve une barre de progression de l'entraînement. L'anglais conversationnel était à peu près oublié par moi, donc j'ai à peine avancé. Le temps était également limité - l'ordinateur n'était pas le mien et j'ai dû interrompre mon entraînement. Mais une amie a dit qu'elle avait passé le test en moins d'une demi-heure. (image05)

Refusant d'adapter mon programme de prononciation, je suis allé dans la fenêtre principale et j'ai lancé l'éditeur de texte intégré. Il a prononcé des mots individuels de certains textes qu'il a trouvés sur l'ordinateur. Ces mots qu'il prononçait correctement, le programme imprimait, ceux qu'il disait mal, remplacés par quelque chose d '"anglais". Après avoir prononcé clairement la commande "effacer une ligne" en anglais - le programme l'a exécutée. Cela signifie que j'ai lu correctement les commandes et que le programme les reconnaît sans formation préalable.

Mais c'était important pour moi comment ce «dragon» écrit en russe. Comme vous l'avez compris dans la description précédente, lors de la formation du programme, vous ne pouvez sélectionner que le texte anglais, il n'y a tout simplement pas de russe. Il est clair que cela ne fonctionnera pas pour entraîner la reconnaissance de la parole russe. Sur la photo suivante, vous pouvez voir quelle phrase le programme a tapé lors de la prononciation du mot russe "Bonjour". (image06)

Le résultat de la communication avec le premier dragon s'est avéré légèrement comique. Si vous lisez attentivement le texte sur le site officiel, vous pouvez voir la "spécialisation" en anglais de ce logiciel. De plus, lors du chargement, nous lisons dans la fenêtre du programme "English". Alors pourquoi tout cela était-il nécessaire? Il est clair que les forums et les rumeurs sont à blâmer ...

Mais il y a aussi une expérience utile. Un de mes amis m'a demandé de voir l'état de son ordinateur portable. Quelque peu lentement, il a commencé à travailler. Ce n'est pas surprenant - la partition système ne disposait que de 5% d'espace libre. En retirant programmes inutiles j'ai vu ça version officielle occupé plus de 2,3 Go. Ce chiffre nous sera utile plus tard. (image.07)



Il s'est avéré que la reconnaissance du discours russe n'était pas une tâche insignifiante. A Minsk, j'ai réussi à trouver un "Gorynych" chez mon ami. Pendant longtemps, il cherchait le disque dans ses vieux gravats et, selon lui, il s'agit de la publication officielle. Le programme a été installé instantanément et j'ai découvert que dans son dictionnaire, il y avait 5000 mots russes plus 100 commandes et 600 mots anglais plus 31 commandes.

Vous devez d'abord configurer le microphone, ce que j'ai fait. Puis j'ai ouvert le dictionnaire et ajouté le mot "Vérifier" car il ne figurait pas dans le dictionnaire des programmes. J'ai essayé de parler clairement, monotone. Enfin, j'ai ouvert le programme "Gorynych Pro 3.0", activé le mode de dictée et obtenu cette liste de "mots à consonance similaire". (image.09)

Le résultat obtenu m'a intrigué, car il différait clairement pour le pire du travail d'un smartphone Android, et j'ai décidé d'essayer d'autres programmes de " boutique en ligne Google Chrome "... Et il remit à plus tard pour s'occuper des «serpents de montagne». Ça me semblait report action dans l'esprit russe d'origine

5. Capacités vocales de Google

Pour travailler avec la voix sur un ordinateur Windows standard, vous devez installer un navigateur Google Chrome... Si vous y travaillez sur Internet, en bas à droite, vous pouvez cliquer sur le lien du magasin logiciel... Là, complètement gratuit, j'ai trouvé deux programmes et deux extensions pour la saisie vocale de texte. Les programmes sont appelés "Bloc-notes vocal" et "Voisnot - Voice to Text"... Après l'installation, ils peuvent être trouvés sur l'onglet "Applications" ton navigateur "Chrome". (image. 10)

Les extensions sont appelées « La voix de Google Rechercher un mot clé (bêta) 0.1.0.5 " et "Saisie de texte vocal - Speechpad.ru 5.4"... Après l'installation, ils peuvent être désactivés ou supprimés sur l'onglet "Extensions". (image. 11)

VoiceNote... Dans l'onglet Application du navigateur Chrome, double-cliquez sur l'icône du programme. Une boîte de dialogue s'ouvrira comme dans l'image ci-dessous. En cliquant sur l'icône du microphone, vous prononcez de courtes phrases dans le microphone. Le programme transmet vos mots au serveur de reconnaissance vocale et tape le texte dans la fenêtre. Tous les mots et expressions présentés dans l'illustration ont été saisis la première fois. Évidemment, cette méthode ne fonctionne qu'avec une connexion Internet active. (image 12)

Bloc-notes vocal... Si vous exécutez le programme sur l'onglet Application, un nouvel onglet de la page Internet s'ouvrira Speechpad.ru... Il y a des instructions détailléescomment utiliser ce service et une forme compacte. Ce dernier est illustré dans l'illustration ci-dessous. (image 13)

Entrée vocale text vous permet de remplir les champs de texte des pages Internet avec votre voix. Par exemple, je suis allé sur ma page Google+... Dans le champ de saisie du nouveau message, j'ai cliqué avec le bouton droit de la souris et sélectionné "SpeechPad"... La zone de saisie de couleur rose vous indique de dicter votre texte. (image. 14)

Recherche vocale Google vous permet d'effectuer une recherche vocale. Lors de l'installation et de l'activation de cette extension, un symbole de microphone apparaît dans la barre de recherche. Lorsque vous cliquez dessus, un symbole apparaît dans un grand cercle rouge. Dites simplement une phrase de recherche et elle apparaîtra dans les résultats de la recherche. (image. 15)

Remarque importante: pour que le microphone fonctionne avec les extensions Chrome, vous devez autoriser l'accès au microphone dans les paramètres du navigateur. Il est désactivé par défaut pour des raisons de sécurité. Aller à Paramètres -\u003e Données personnelles -\u003e Paramètres de contenu... (Pour accéder à tous les paramètres, à la fin de la liste, cliquez sur Afficher les paramètres avancés)... Une boîte de dialogue s'ouvre Paramètres de contenu de la page... Sélectionnez un élément dans la liste Multimédia → microphone.

6. Résultats de l’utilisation des programmes de reconnaissance vocale russes

Une petite expérience d'utilisation des programmes de saisie vocale a montré une excellente implémentation de cette fonctionnalité sur les serveurs d'une société Internet Google... Sans aucune formation préalable, les mots sont reconnus correctement. Cela indique que le problème de la reconnaissance vocale russe a été résolu.

Maintenant, nous pouvons dire que le résultat du développement Google sera un nouveau critère d'évaluation des produits d'autres fabricants. J'aimerais que le système de reconnaissance fonctionne hors ligne sans accéder aux serveurs de l'entreprise, c'est tellement plus pratique et plus rapide. Mais on ne sait pas quand un programme indépendant pour travailler avec un flux continu de discours russe sera publié. Cependant, il faut supposer qu'avec la possibilité de formation, cette «création» sera une véritable rupture.

Programmes des développeurs russes «Gorynych», "Dictographe" et "Combat" J'entrerai dans les détails dans la deuxième partie de cette revue. Cet article a été rédigé très lentement car la recherche de disques originaux est désormais difficile. Pour le moment, j'ai déjà toutes les versions des "reconnaisseurs" voix-texte russes à l'exception de "Combat 2.52". Aucun de mes amis ou collègues n'a ce programme, et je n'ai moi-même que quelques commentaires élogieux sur les forums. Certes, il y avait une option si étrange - pour télécharger "Combat" via SMS, mais je ne l'aime pas. (image16)


Un court clip vidéo vous montrera comment la reconnaissance vocale se déroule dans un smartphone avec Android OS. Une caractéristique de la numérotation vocale est la nécessité de se connecter aux serveurs Google. Ainsi, Internet devrait fonctionner pour vous

© 2021 hecc.ru - Actualités de la technologie informatique