如何从 Microsoft.CognitiveServices.Speech 获取详细的 SpeechRecognitionResult
How can I get DetailedSpeechRecognitionResult from Microsoft.CognitiveServices.Speech
我目前正在评估 Azure CognitiveServices Speech。在 API 文档中,我看到有一个 DetailedSpeechRecognitionResult class 但我找不到获取它的方法。
我这样创建 SpeechRecognizer:
var recognizer = factory.CreateSpeechRecognizerWithFileInput(filePath, "en-US", SpeechOutputFormat.Detailed)
但我在文档中找不到 return 来自 SpeechRecognizer 的 DetailedSpeechRecognitionResult 的函数。
我是不是漏掉了什么?
好的,我找到了答案。要获得详细结果,您应该使用
SpeechRecognitionResultExtensions.Best(result)
好的,你可以使用这个跟随。首先,如果您使用 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";
}
}
我目前正在评估 Azure CognitiveServices Speech。在 API 文档中,我看到有一个 DetailedSpeechRecognitionResult class 但我找不到获取它的方法。 我这样创建 SpeechRecognizer:
var recognizer = factory.CreateSpeechRecognizerWithFileInput(filePath, "en-US", SpeechOutputFormat.Detailed)
但我在文档中找不到 return 来自 SpeechRecognizer 的 DetailedSpeechRecognitionResult 的函数。
我是不是漏掉了什么?
好的,我找到了答案。要获得详细结果,您应该使用
SpeechRecognitionResultExtensions.Best(result)
好的,你可以使用这个跟随。首先,如果您使用 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";
}
}