Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在vb.net中识别语音文本_.net_Vb.net - Fatal编程技术网

如何在vb.net中识别语音文本

如何在vb.net中识别语音文本,.net,vb.net,.net,Vb.net,我有下面的代码来识别我选择的语音文本 Public speechRecognitionEngine As SpeechRecognitionEngine Private Sub SpeechRecog() Try speechRecognitionEngine = New SpeechRecognitionEngine(SpeechRecognitionEngine.InstalledRecognizers()(0)) AddHandler speech

我有下面的代码来识别我选择的语音文本

Public speechRecognitionEngine As SpeechRecognitionEngine

Private Sub SpeechRecog()
    Try
        speechRecognitionEngine = New SpeechRecognitionEngine(SpeechRecognitionEngine.InstalledRecognizers()(0))
        AddHandler speechRecognitionEngine.SpeechRecognized, AddressOf engine_SpeechRecognized
        Dim texts As Choices = New Choices()
        texts.Add("HOW")
        texts.Add("ARE")
        texts.Add("YOU")
        Dim wordsList As Grammar = New Grammar(New GrammarBuilder(texts))
        speechRecognitionEngine.LoadGrammar(wordsList)
        speechRecognitionEngine.SetInputToDefaultAudioDevice()
        speechRecognitionEngine.RecognizeAsync(RecognizeMode.Multiple)
    Catch ex As Exception
        MessageBox.Show(ex.Message, "Voice recognition failed")
    End Try
End Sub

Public reader As System.Speech.Synthesis.SpeechSynthesizer

Public Sub engine_SpeechRecognized(sender As Object, e As SpeechRecognizedEventArgs)
   If e.Result.Confidence > 0.9 Then
      usrText.Text = e.Result.Text
   Else
      reader = New Speech.Synthesis.SpeechSynthesizer
      reader.SpeakAsync("Please speak clear and louder")
   End If
End Sub
如果我说的是我选择的任何东西,那么它就起作用了。 如果信心超过0.9,则打印其他内容,并说“请讲清楚,大声点”

但如果我说的不是我的选择,那么它就什么也没做

有没有办法,如果有人说任何文本的选择,那么我可以说,无效文本

请帮帮我


提前感谢….

您应该添加另一个处理程序:

使用RecognizeCompleted事件的处理程序,可以访问 RecognizeCompletedEventArgs对象中的RecognitionResult。如果 识别未成功,识别结果将为空。到 确定音频输入超时或中断是否导致 如果识别失败,您可以访问的属性 InitialSilenceTimeout、BabbleTimeout或InputStreamEnded


这就是为什么我总是强调让人们阅读文档。当人们不读它的时候,他们会错过一些重要的东西,而这些东西本来可以让他们免于陷入困境。当你只是盲目地跟随别人的在线示例演示代码/教程而不为自己着想时,你就不会帮助自己并错过重要的事情。作为记录,这个评论不是关于OP的,而是一般性的。只是一个有用的提示。。不要包含与你的问题没有直接关系的标签。因为它与C无关,所以标签不应该在那里。我知道你想接触到尽可能多的受众,但C#和VB.Net的差异很大,以至于“另一阵营”的人往往无法回答,他们想过滤掉其他语言的问题。我们希望能够专注于我们所知道的:-)有时候,当我只添加VB.Net时,我觉得没有得到足够的帮助。但在加入C#之后,我得到了一些快速的建议。这就是我在这里添加这两个标签的原因。但是谢谢你的建议。。。