4

16000 で Android フォンを介して記録された .wav ファイルを、C# を使用してテキストに変換しようとしています。つまり、System.Speech 名前空間です。私のコードは以下に記載されています。

recognizer.SetInputToWaveFile(Server.MapPath("~/spoken.wav"));
recognizer.LoadGrammar(new DictationGrammar());
RecognitionResult result = recognizer.Recognize();
label1.Text = result.Text;

は、サンプルの .wav "Hello world" ファイルで完全に機能しています。しかし、電話で何かを録音して PC に変換しようとすると、変換されたテキストは私が録音したものとはまったく異なります。音声ファイルが正確に書き起こされていることを確認する方法はありますか?

4

3 に答える 3

3

電話のオーディオファイルはどの形式で録音されていますか?ファイルはエンコードされていますか?Microsoftレコグナイザーは、PCM、ALaw、およびULawをサポートしています。サポートされている形式で録音していることを確認してください。RecognizerInfo.SupportedAudioFormatsプロパティ(http://msdn.microsoft.com/en-us/library/system.speech.recognition.recognizerinfo.supportedaudioformats(v=VS.90).aspx)を確認し、認識機能の形式を確認できます。バージョンはサポートしています。

携帯電話で録音したファイルを聴きましたか?うるさいですか?はっきり聞こえますか?レコグナイザーに可能な限り最高のサウンドのオーディオを供給していることを確認してください。

ディクテーション文法を使用しているので、Windows 7を使用していると想定しています。レコグナイザーのトレーニングを試しましたか?私の理解では、ディクテーション文法のパフォーマンスはトレーニングによって改善でき、標準のWindows7音声認識トレーニングはそのパフォーマンスに役立ちます-http://windows.microsoft.com/en-US/windows7/Set-up-Speech-Recognition

StackOverflowに関する他のいくつかの質問も、いくつかの洞察を与える可能性があります。開始するには、優れた音声認識APIを参照してください。

于 2011-05-10T13:15:33.687 に答える
-1

まさにあなたが望むものの完全な実装の詳細は、ここにあります:

System.Speech を使用して WAV オーディオをテキストに変換する

于 2012-03-23T20:26:09.890 に答える
-2
Imports System
Imports System.Speech.Recognition

Public Class Form1

    Dim WithEvents sre As SpeechRecognitionEngine

    Private Sub btnLiterate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLiterate.Click
        If TextBox1.Text.Trim.Length = 0 Then Exit Sub
        sre.SetInputToWaveFile(TextBox1.Text)
        Dim r As RecognitionResult
        r = sre.Recognize()
        If r Is Nothing Then
            TextBox2.Text = "Could not fetch result"
            Return
        End If
        TextBox2.Text = r.Text
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = String.Empty
        Dim dr As DialogResult
        dr = OpenFileDialog1.ShowDialog()
        If dr = Windows.Forms.DialogResult.OK Then
            If Not OpenFileDialog1.FileName.Contains("wav") Then
                MessageBox.Show("Incorrect file")
            Else
                TextBox1.Text = OpenFileDialog1.FileName
            End If
        End If
    End Sub

    Public Sub New()

        ' This call is required by the Windows Form Designer.
        InitializeComponent()

        sre = New SpeechRecognitionEngine()

    End Sub

    Private Sub sre_LoadGrammarCompleted(ByVal sender As Object, ByVal e As System.Speech.Recognition.LoadGrammarCompletedEventArgs) Handles sre.LoadGrammarCompleted

    End Sub

    Private Sub sre_SpeechHypothesized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechHypothesizedEventArgs) Handles sre.SpeechHypothesized
        System.Diagnostics.Debug.Print(e.Result.Text)
    End Sub

    Private Sub sre_SpeechRecognitionRejected(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognitionRejectedEventArgs) Handles sre.SpeechRecognitionRejected
        System.Diagnostics.Debug.Print("Rejected: " & e.Result.Text)
    End Sub

    Private Sub sre_SpeechRecognized(ByVal sender As Object, ByVal e As System.Speech.Recognition.SpeechRecognizedEventArgs) Handles sre.SpeechRecognized
        System.Diagnostics.Debug.Print(e.Result.Text)
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim words As String() = New String() {"triskaidekaphobia"}
        Dim c As New Choices(words)
        Dim grmb As New GrammarBuilder(c)
        Dim grm As Grammar = New Grammar(grmb)
        sre.LoadGrammar(grm)
    End Sub

End Class 

または、このリンクを試してください 音声からテキストへのソフトウェアを無料で

于 2012-01-03T12:19:38.297 に答える