如何使用C#在SAPI 5.4的听写过程中获得备用单个单词?

时间:2013-01-04 00:01:29

标签: c# speech-recognition speech-to-text sapi

我正在进行语音识别和新技术的用户研究。在实验室测试期间,我需要使用我编程的界面显示所有口述的文本。

目前,我可以在C#中获得备用整句,但我需要得到单个单词。例如,如果有人说“你好,我的名字是安德鲁”,我想得到“你好”,“我的”,“名字”,“是”和“安德鲁”的替代词,而不是完整的替代词句。

这是我正在使用的处理程序的代码片段。

public void OnSpeechRecognition(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult Result)
{
    int NUM_OF_ALTERNATES = 5; // Number of alternates sentences to be read
    string recognizedSentence = Result.PhraseInfo.GetText(0, -1, true);

    // Get alternate sentences
    ISpeechPhraseAlternates phraseAlternates = Result.Alternates(NUM_OF_ALTERNATES);
}

任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:2)

您需要在Result.Alternates调用中指定元素计数和索引。

,例如,

public void OnSpeechRecognition(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult Result)
{
    int NUM_OF_ALTERNATES = 5; // Number of alternates sentences to be read
    string recognizedSentence = Result.PhraseInfo.GetText(0, -1, true);

    // Get alternate sentences
    int elementCount = Result.PhraseInfo.Elements.Count();
    for (int i = 0; i < elementCount; ++i)
    {
          ISpeechPhraseAlternates phraseAlternates = Result.Alternates(NUM_OF_ALTERNATES, i, 1);
    }
}