IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

Speech.Recognition Demo sous Windows 10 en français, Erreurs


Sujet :

Framework .NET

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut Speech.Recognition Demo sous Windows 10 en français, Erreurs
    Bonjour,

    J'ai tapé le code du petit démo sur YouTube
    mais je ne réussi pas à le faire fonctionner.

    Je vous épargne tous les essais que j'ai fait.

    J'ai 2 type d'exeptions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
             static System.Globalization.CultureInfo USCulture = new System.Globalization.CultureInfo("en-US");
     
            // Erreur ici
            //HResult=0x80004003
            //Message=La référence d'objet n'est pas définie à une instance d'un objet.
            //Source=System.Speech
            SpeechRecognitionEngine recEngine = new SpeechRecognitionEngine(USCulture);
    et ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Erreur ici ??????
                recEngine.LoadGrammarAsync(grammar);
                //System.UnauthorizedAccessException
                //HResult = 0x80070005
                //Message = Accès refusé. (Exception de HRESULT: 0x80070005(E_ACCESSDENIED))
                //Source = System.Speech
    Je veux l'utiliser en ANGLAIS sur Windows 10 en français. Je ne sais pas si c'est ça qui cause le problème.

    Si vous voulez tester le code il va falloir ajouter l'assembly System.Speech.Recognition comme référence.

    J'ai zippé le petit projet en C# juste 71k

    Fichiers attachés Fichiers attachés

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut
    C'est le même problème avec le code de l'exemple de Microsoft pour SpeechRecognitionEngine Class

    https://docs.microsoft.com/en-us/dot...4.8#definition

    J'obtiens l'erreur

    System.NullReferenceException
    HResult = 0x80004003
    Message = La référence d'objet n'est pas définie à une instance d'un objet.
    Source = System.Speech

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Speech.Recognition;
     
     
    // Speech​Recognition​Engine Class  Console Example
    // https://docs.microsoft.com/en-us/dotnet/api/system.speech.recognition.speechrecognitionengine?view=netframework-4.8#definition
     
    namespace Voice_Recognition_Console_Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                // Create an in-process speech recognizer for the en-US locale.  
                using (
     
                //System.NullReferenceException
                //  HResult = 0x80004003
                //  Message = La référence d'objet n'est pas définie à une instance d'un objet.
                //  Source = System.Speech
                SpeechRecognitionEngine recognizer =
                  new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US")))  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
                {
     
                    // Create and load a dictation grammar.  
                    recognizer.LoadGrammar(new DictationGrammar());
     
                    // Add a handler for the speech recognized event.  
                    recognizer.SpeechRecognized +=
                      new EventHandler<SpeechRecognizedEventArgs>(recognizer_SpeechRecognized);
     
                    // Configure input to the speech recognizer.  
                    recognizer.SetInputToDefaultAudioDevice();
     
                    // Start asynchronous, continuous speech recognition.  
                    recognizer.RecognizeAsync(RecognizeMode.Multiple);
     
                    // Keep the console window open.  
                    while (true)
                    {
                        Console.ReadLine();
                    }
                }
            }
     
            // Handle the SpeechRecognized event.  
            static void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
            {
                Console.WriteLine("Recognized text: " + e.Result.Text);
            }
        }
    }

  3. #3
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Par défaut
    Bonjour.

    Il semble qu'il y a des manipulations à faire pour avoir le langage "en". Soit des choses à installer, soit des choses à activer.

    https://docs.microsoft.com/fr-fr/dot...tframework-4.8


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    RecognizerInfo info = null;
                foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
                {
                    if (ri.Culture.TwoLetterISOLanguageName.Equals("en"))
                    {
                        info = ri;
                        break;
                    }
                }
                if (info == null) return;
    Sur mon poste il n'y a que "fr".

    Vu que la fonction s'appelle "InstalledRecognizers", j'imagine qu'il fait l'installer manuellement.

    Sur cette page https://docs.microsoft.com/en-us/pre...v%3Doffice.14)

    A recognizer is an installed Runtime Language. A Runtime Language includes the language model, acoustic model, and other data necessary to provision a speech engine to perform speech recognition in a particular language. The Microsoft Speech Platform Runtime 11 and Microsoft Speech Platform SDK 11 do not include Runtime Languages for speech recognition. You must download a Runtime Language for each language in which you want to perform speech recognition.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 249
    Par défaut
    À Moldavi

    Vous dites:
    Sur mon poste il n'y a que "fr".
    Est-ce que vous avez déjà installé un Runtime Languages et le Speech Platform SDK 11 ?

    Parce que moi je ne peut même pas exécuter le code suggéré dans https://docs.microsoft.com/en-us/pre...v%3Doffice.14) j'obtiens à l'exécution de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    foreach (RecognizerInfo ri in SpeechRecognitionEngine.InstalledRecognizers())
    System.NullReferenceException
    HResult=0x80004003
    Message=La référence d'objet n'est pas définie à une instance d'un objet.
    Source=System.Speech
    StackTrace:
    at System.Speech.Recognition.SpeechRecognitionEngine.InstalledRecognizers()
    at SpeechRecognitionApp.Program.Main(String[] args) in J:\SpeechRecognitionApp\SpeechRecognitionApp\Program.cs:line 20

    Il y définitivement quelque chose qui manque ou qui n'a pas été initialisé.

    J'utilise Windows 10 avec la langue d'affichage Français(Canada)

    Juste pour voir si mon installation de Windows était correcte j'ai essayé d'activer la reconnaissance vocale de Windows et je me suis aperçu que je ne peux même pas l'activer j'obtiens une message d'erreur.

    Dans Panneau de configuration\Options d’ergonomie\Lancer la Reconnaissance vocale

    La reconnaissance vocale n'a pas pu démarrer, car la langue configuré n'est pas pris en charge.

    La langue de reconnaissance doit correspondre à la langue de l'interface utilisateur. Modifiez la langue de reconnaissance dans le Panneau de configuration Reconnaissance vocale sous Options Avancées.
    Hors il n'y a pas d'options Avancées dans Panneau de configuration > Reconnaissance vocale donc je ne sais pas comment la modifier

    Mais de plus si je vais dans Paramètres > Langue tout est bien en Français (Canada) et en bas sous Langues par défaut il n'y a que Français (Canada) et j'ai les petits icones dont celui de Reconnaissance vocale installée pour Français (Canada) !!!


    C'est a ni rien comprendre.

    Bon je n'aime pas trop perdre de temps là-dessus c'est le genre de problème avec lequel on peut perdre beaucoup trop de temps.

Discussions similaires

  1. Réponses: 11
    Dernier message: 10/09/2011, 16h24
  2. Retour au langue français sous windows 7
    Par moooona dans le forum Windows 7
    Réponses: 5
    Dernier message: 28/08/2011, 09h12
  3. Réponses: 0
    Dernier message: 06/05/2011, 14h37
  4. [Lazarus] [0.9.28.2] Date en français sous Windows et en anglais sous Linux
    Par G-Assfeld dans le forum Lazarus
    Réponses: 3
    Dernier message: 27/11/2010, 07h18
  5. [PC] Compilateur en français sous Windows
    Par carottercl dans le forum Cobol
    Réponses: 3
    Dernier message: 21/01/2008, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo