【问题标题】:How to load the computer speech into the speech recognizer?如何将计算机语音加载到语音识别器中?
【发布时间】:2019-09-20 05:30:02
【问题描述】:

我正在编写以下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Speech.Recognition;
using System.Speech.Synthesis;
using System.Windows.Forms;

namespace US_Speech_Recognizer
{
    public class RecognizeSpeech
    {
        private SpeechRecognitionEngine sEngine; //Speech recognition engine
        private SpeechSynthesizer sSpeak; //Speech synthesizer

        public RecognizeSpeech()
        {
            //Make the recognizer ready
            sEngine = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));


            //Load grammar
            Choices sentences = new Choices();
            sentences.Add(new string[] { "I am hungry" });

            GrammarBuilder gBuilder = new GrammarBuilder(sentences);

            Grammar g = new Grammar(gBuilder);

            sEngine.LoadGrammar(g);

            //Add a handler
            sEngine.SpeechRecognized +=new EventHandler<SpeechRecognizedEventArgs>(sEngine_SpeechRecognized);

            //Ask the to speak
            sSpeak = new SpeechSynthesizer();
            sSpeak.Rate = -2;

            sSpeak.Speak("Please speak the sentence above");


            //Configure the recognizer to Mike
            sEngine.SetInputToDefaultAudioDevice();

            sEngine.RecognizeAsync(RecognizeMode.Multiple);
        }

        //Start the speech recognition task
        private void sEngine_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
        {
            MessageBox.Show(e.Result.Confidence.ToString());
        }
    }
}

在这里,我正在加载来自 Mike 的输入。但是,我需要从计算机在sSpeak.Speak("Please speak the sentence above"); 内部发出的内容加载输入,而不是那样做。如何将此计算机语音加载为语音识别器的输入?

【问题讨论】:

    标签: c# .net windows speech-recognition voice-recognition


    【解决方案1】:

    我找到了路

    Stream stream = new MemoryStream();
                sSpeak.SetOutputToWaveStream(stream);
    
    
                sSpeak.Speak("I was hungry");
                stream.Position = 0;
                sSpeak.SetOutputToNull();
    
    
                //Configure the recognizer to stream
                sEngine.SetInputToWaveStream(stream);
    

    sSpeakSpeechSynthesizer 的实例。 sEngineSpeechRecognitionEngine 的实例

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-20
      • 1970-01-01
      • 2019-02-23
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多