5

Dies ist wahrscheinlich eine einfache Frage, aber ich konnte nirgendwo eine definitive Antwort finden.Nutzt dieser System.Speech.Recognition-Erkennungscode "Sprachtraining"?

Nehmen wir an, ich habe einen einfachen Code aus dem System.Speech.Recognition Namespace, das funktioniert gut.

 using (
      var recognizer = 
       new SpeechRecognitionEngine(
        new CultureInfo("en-US"))) 
     { 
      // Create and load a dictation grammar. 
      recognizer.LoadGrammar(new DictationGrammar()); 

      recognizer.SpeechRecognized -= 
recognizer_SpeechRecognized; 

      // Add a handler for the speech recognized event. 
      recognizer.SpeechRecognized += 
       recognizer_SpeechRecognized; 

      // Configure input to the speech recognizer. 
      recognizer.SetInputToDefaultAudioDevice(); 

      // Start asynchronous, continuous speech recognition. 
      recognizer.RecognizeAsync(RecognizeMode.Multiple); 
     } 
    } 

    // Handle the SpeechRecognized event. 
    private void recognizer_SpeechRecognized(object sender, SpeechRecognizedEventArgs e) 
    { 
     textBox1.Text = ("Recognized text: " + e.Result.Text); 
    } 

Meine Fragen ist, wenn Windows 7 verwenden, und ich tue das Sprachtraining finden Sie unter „Systemsteuerung“ -> „Spracherkennung“ -> „Ihr Computer trainieren, besser verstehen Sie“, hat mein Programm automatisch ein Training nutzen?
Sind die Trainingsvorteile von Benutzer oder Maschine abhängig?
Können diese Sprach- "Profile" (leicht) verschoben werden?

Antwort

1

Ja, Training (vor allem für Diktat) ist nützlich. Die Genauigkeit kann sich durch Training um 20-50% verbessern. (Dies gilt insbesondere, wenn der Benutzer einen Akzent hat.)

Die Trainingsvorteile sind pro Benutzer.

Microsoft hat ein Tool, das Sprachprofile kopiert, aber es ist für eine ältere Version der SR-Engine (XP-Ära) gebaut, und so weit ich weiß, ist niemand bei Microsoft bereit, es zu aktualisieren oder dafür bürgen auf neueren SR-Engines. Wenn Sie es versuchen möchten, Bing für "Speech Profile Manager", und es wird direkt aufspringen.

0

Ja, es scheint, dass, obwohl es nicht notwendig sein kann, es zu trainieren, es getan werden kann: this site und .

+1

Dank David, ich weiß, es muss nicht trainiert werden, um als Code-Funktionen zu arbeiten. Ich frage mich im Grunde, ob es sich lohnt, den Leuten zu sagen, dass sie ihr Windows 7 trainieren sollen, da es den obigen Code besser funktionieren lässt? Und wenn dies zutrifft, basiert dieser Nutzen auf dem angemeldeten Benutzer oder der Maschine. – bulltorious

+0

In den meisten Fällen, nein. Wenn fast alles anerkannt wird, würde das Training die Leistung nur marginal steigern. –

0

Ich denke, wenn Sie die Diktiergrammatik verwenden, wäre Training hilfreich. Wenn Sie eine eingeschränktere Anwendungsgrammatik verwenden, ist das Training weniger wertvoll. Beachten Sie, dass einer der Hauptunterschiede zwischen den Windows-Client-Spracherkennungs-APIs (System.Speech) und den Server-Spracherkennungs-APIs (Microsoft.speech) darin besteht, dass die Server-APIs Multiuser sein sollen und nicht trainiert werden können (Denken Sie an sprachgesteuerte Telefonsysteme, Sie können nicht für jeden Anrufer trainieren). Diese Frage kann hilfreich sein, wenn Sie neugierig sind - What is the difference between System.Speech.Recognition and Microsoft.Speech.Recognition?