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.
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%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.
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.
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.
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 ...
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.
Tags und Links c# namespaces speech-to-text