Как я могу получить DetailSpeechRecognitionResult от Microsoft.CognitiveServices.Speech - PullRequest
0 голосов
/ 05 июля 2018

В настоящее время я оцениваю речь Azure CognitiveServices. В документации API я вижу, что есть класс DetailSpeechRecognitionResult, но я не могу найти способ его получить. Я создаю SpeechRecognizer следующим образом:

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

, но я не могу найти в документации функцию для возврата подробного SpeechRecognitionResult из SpeechRecognizer.

Я что-то здесь упускаю?

Ответы [ 2 ]

0 голосов
/ 31 мая 2019

Хорошо, вы можете использовать это. Во-первых, если вы используете процесс 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";                
        }
    }
0 голосов
/ 05 июля 2018

Хорошо, я нашел ответ. Чтобы получить подробный результат, вы должны использовать

SpeechRecognitionResultExtensions.Best(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...