Microsoft Speech Platform 语音转文本

Posted

技术标签:

【中文标题】Microsoft Speech Platform 语音转文本【英文标题】:Microsoft Speech Platform speech to text 【发布时间】:2014-12-16 22:17:25 【问题描述】:

我想写一个用户对文本说的演讲。我可以使用 Microsoft 语音平台执行此操作吗?也许我只是误解了它应该如何工作以及它的预期用例是什么。

我现在有了这个控制台应用程序:

static void Main(string[] args)
        
            Choices words = new Choices();
            words.Add(new string[]  "test", "hello" ,"blah");
            GrammarBuilder gb = new GrammarBuilder();
            gb.Append(words);
            Grammar g = new Grammar(gb);

            SpeechRecognitionEngine sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
            sre.LoadGrammar(g);
            sre.SetInputToDefaultAudioDevice();

            //add listeners

            sre.Recognize();
            Console.ReadLine();
        

而且它似乎只输出我在Choices 中指定的单词。

如果我想匹配(大部分)用户会说的话,我是否必须添加整个词典?

此外,它在匹配单个单词后立即停止。如果我想捕捉整个句子怎么办?

我正在寻找 A) 捕获大量单词和 B) 一次捕获多个单词的解决方案。

编辑:

我发现了这个:http://www.codeproject.com/Articles/483347/Speech-recognition-speech-to-text-text-to-speech-a#torecognizeallspeech

【问题讨论】:

【参考方案1】:

如this page 中所见,DictationGrammar 类有一个基本的常用词库。

为了一次捕捉多个单词,我做到了

 sre.RecognizeAsync(RecognizeMode.Multiple);

所以我的代码现在是这样的:

    public static SpeechRecognitionEngine sre;
    static void Main(string[] args)
    
        sre = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
        sre.LoadGrammar(new Grammar(new GrammarBuilder("exit")));
        sre.LoadGrammar(new DictationGrammar());
        sre.SetInputToDefaultAudioDevice();

        sre.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(sre_SpeechRecognized);

        Console.ReadLine();
    


    private static void sre_SpeechRecognized(object sender, SpeechRecognizedEventArgs e)
    
        if (e.Result.Text == "exit")
        
            sre.RecognizeAsyncStop();
        
        Console.WriteLine("You said: " + e.Result.Text);
    

【讨论】:

以上是关于Microsoft Speech Platform 语音转文本的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Speech API - Cognitive Speech STT iOS:语言不变

Microsoft.CognitiveServices.Speech 在发布应用程序后不起作用

Microsoft.Speech SpeechRecognitionEngine.setInputToDefaultAudioDevice() 方法抛出 System.InvalidOperation

加载 Microsoft Speech SDK v11 时出错

我可以像在 VS 调试器中一样模拟 List<Microsoft.Bing.Speech.Recognition Phrase> 的值吗?

Microsoft Speech 产品/平台之间的差异