我如何从Microsoft.CognitiveServices.Speech

时间:2018-07-05 10:59:00

标签: text-to-speech microsoft-cognitive azure-cognitive-services

我目前正在评估Azure CognitiveServices语音。在API文档中,我看到有一个DetailsS​​peechRecognitionResult类,但是我找不到找到它的方法。 我这样创建SpeechRecognizer:

var recognizer = factory.CreateSpeechRecognizerWithFileInput(filePath, "en-US", SpeechOutputFormat.Detailed)

但是我在文档中找不到从SpeechRecognizer返回DetailedSpeechRecognitionResult的函数。

我在这里想念东西吗?

2 个答案:

答案 0 :(得分:1)

好,我找到了答案。要获得详细的结果,您应该使用

SpeechRecognitionResultExtensions.Best(result)

答案 1 :(得分:0)

好的,您可以按照以下步骤使用。首先,如果您使用StartContinuousRecognitionAsync()过程(当您尝试识别15秒的语音时),则需要在CreateSpeechRecognizerWithFileInput函数内部创建一个事件:

    private async Task RecognitionStart(SpeechRecognizer recognition, TaskCompletionSource<int> breakProcess)
{
recognition.Recognized += RecognizedEventHandler;
}

之后,在事件处理程序中,您可以显示Azure的详细答案:

 private void RecognizedEventHandler(object sender,SpeechRecognitionEventArgs e)
    {
        if (!string.IsNullOrEmpty(e.Result.Text))
        {
            List<DetailedSpeechRecognitionResult> theBestResult = e.Result.Best().ToList();
            resultingText = $"{string.Format(CultureInfo.InvariantCulture, e.Result.Text)} [Confidence:{theBestResult[0].Confidence}] \n";                
        }
    }