我目前正在评估Azure CognitiveServices语音。在API文档中,我看到有一个DetailsSpeechRecognitionResult类,但是我找不到找到它的方法。 我这样创建SpeechRecognizer:
var recognizer = factory.CreateSpeechRecognizerWithFileInput(filePath, "en-US", SpeechOutputFormat.Detailed)
但是我在文档中找不到从SpeechRecognizer返回DetailedSpeechRecognitionResult的函数。
我在这里想念东西吗?
答案 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";
}
}