C #: WAV-Datei in Text (Sprache-zu-Text) mit System.Speech-Namespaces transkribieren

8

Wie verwenden Sie die .NET-Sprach-Namespace-Klassen, um Audio in einer WAV -Datei in eine Textform umzuwandeln, die ich kann auf dem Bildschirm anzeigen oder in Datei speichern?

Ich suche nach einigen Tutorial-Beispielen.

AKTUALISIEREN

hier ein Codebeispiel gefunden . Aber wenn ich es versuchte, gibt es falsche Ergebnisse. Unten ist das Vb-Code-Beispiel, das ich übernommen habe. (Eigentlich macht mir die Sprache nichts aus, solange es entweder vb / c # ist ...). Es gibt mir keine richtigen Ergebnisse. Ich nehme an, wenn wir die richtige Grammatik einsetzen - also die Wörter, die wir in der Aufnahme erwarten -, sollten wir die textliche Ausgabe davon erhalten. Zuerst habe ich mit Beispielworten versucht, die im Anruf sind. Es druckte manchmal nur dieses (ein) Wort und nichts anderes. Dann habe ich Wörter ausprobiert, die wir bei der Aufnahme nicht erwarten ... Leider hat es das auch gedruckt ...: (

%Vor%

UPDATE (nach dem 28. November)

Es wurde eine Möglichkeit gefunden, eine Standardgrammatik zu laden. Es geht ungefähr so:

%Vor%

Hier gibt es immer noch Probleme. Die Anerkennung ist nicht exakt. Die Ausgabe ist Quatsch. Für eine 6min-Datei gibt es wahrscheinlich 5-6 Wörter Text, die für die Sprachdatei völlig irrelevant sind.

    
deostroll 20.11.2009, 06:21
quelle

5 Antworten

8

Die Klassen in System.Speech sind für Text-to-Speech (hauptsächlich eine Accessibility-Funktion).

Sie suchen nach Spracherkennung. Es gibt den Namespace System.Speech.Recognition , der seit .Net 3.0 verfügbar ist. Es verwendet die Windows Desktop-Sprach-Engine. Das könnte dir den Anfang machen, aber ich denke, es gibt bessere Motoren da draußen.

Spracherkennung ist sehr kompliziert und schwer zu machen, es gibt auch einige kommerzielle Produkte.

    
Johannes Rudolph 20.11.2009, 07:31
quelle
1

Mir ist klar, dass dies eine alte Frage ist, aber in späteren Fragen und Antworten gibt es bessere Informationen. Zum Beispiel siehe Was ist die beste Option für die Übertragung von Sprache in Text in einer asp.net Web App?

Anstatt SetInputToDefaultAudioDevice () aufzurufen, können Sie SetInputToWaveFile () aufrufen, um von einer Audiodatei zu lesen.

Die Desktop-Erkennungs-Engine, die in Windows Vista und Windows 7 enthalten ist, enthält eine Diktat-Grammatik, wie in der referenzierten Antwort gezeigt.

    
Michael Levy 22.03.2011 15:03
quelle
0
Tinku 20.11.2009 07:39
quelle
0

Sie sollten die SpeechRecognitionEngine verwenden. Um eine Wave-Datei zu verwenden, rufen Sie SetInputToWaveFile auf. Ich wünschte, ich könnte dir mehr helfen, aber ich bin kein Experte.

Oh, und wenn dein Wort wirklich triskaidekaphobia ist, glaube ich nicht einmal, dass eine menschliche Spracherkennungs-Engine das erkennen würde ...

    
configurator 23.11.2009 08:22
quelle
0

Ich habe Ihren Code getestet, aber er greift die Wave-Datei nicht richtig auf. Es fängt ab

Wenn nicht OpenFileDialog1.FileName.Contains ("wav") Dann                 MessageBox.Show ("Falsche Datei")             Sonst                 TextBox1.Text = OpenFileDialog1.FileName             Ende Wenn

Nicht die sonst Bedingung. Ich habe versucht,. Wav in der Zeichenfolge auch.

Ich benötige auch einen Beispielcode zum Umwandeln von WAV-Datei in Text, nicht von Microphone. Bitte, wenn Sie zu einer guten Lösung gekommen sind, bitte posten Sie es hier.

    
Umaid 27.11.2009 16:34
quelle

Tags und Links