Как включить доверительное управление на уровне слов для MS Azure Речевой текст - PullRequest
3 голосов
/ 14 февраля 2020

Как получить достоверность на уровне слов для каждого слова, используя MS Azure услуги преобразования речи в текст? В настоящее время я получаю значение достоверности для уровня предложения, и мне нужна достоверность на уровне слов для дальнейшей обработки.

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Вы можете получить wordLevelConfidence, добавив 'format = details' & 'wordLevelConfidence = true' к URI

Например, язык, установленный на US Engli sh с использованием конечной точки на западе США: https://westus.stt.speech.microsoft.com/speech/recognition/conversation/cognitiveservices/v1?language=en-US&format=detailed&wordLevelConfidence=true. enter image description here

Если вы используете SDK:

var config = SpeechConfig.FromSubscription(sub, "westeurope");
config.SetServiceProperty("wordLevelConfidence", "true", ServicePropertyChannel.UriQueryParameter);
//config.RequestWordLevelTimestamps(); in case you also want wordleveltimestamps
config.OutputFormat = OutputFormat.Detailed;

значения достоверности слова не являются частью результата напрямую, посмотрите на приведенное ниже для полного результат в JSON форме. ognizer.Recognized + = (s, e) => {var j = e.Result.Properties.GetProperty (PropertyId.SpeechServiceResponse_JsonResult);

0 голосов
/ 03 мая 2020

Используя этот код: setServiceProperty("wordLevelConfidence","true", ServicePropertyChannel.UriQueryParameter);

Вот как я это сделал

SpeechConfig config = SpeechConfig.fromSubscription(speechSubscriptionKey, serviceRegion);

config.setServiceProperty("wordLevelConfidence","true", ServicePropertyChannel.UriQueryParameter);
config.setServiceProperty("format", "detailed", ServicePropertyChannel.UriQueryParameter); //you have to do it in this order

И это получить результаты обратно

PropertyCollection properties = result.getProperties();
String property = properties.getProperty(PropertyId.SpeechServiceResponse_JsonResult);
...