Microsoft.CognitiveServices.Speech.SpeechRecognizer - получение временных смещений результатов в файле с непрерывным распознаванием. - PullRequest
0 голосов
/ 26 июня 2018

Я тестирую новый унифицированный речевой движок в Azure и работаю над частью, в которой я пытаюсь расшифровать 10-минутный аудиофайл. Я создал распознаватель с помощью CreateSpeechRecognizerWithFileInput и начал непрерывное распознавание с помощью StartContinuousRecognitionAsync. Я создал распознаватель с включенными подробными результатами.

В событии FinalResultsReceived, по-видимому, нет способа получить доступ к смещению звука в SpeechRecognitionResult. Если я сделаю это, хотя:

string rawResult = ea.Result.ToString();  //can get access to raw value this way.
Regex r=new Regex(@".*Offset"":(\d*),.*");
int offset=Convert.ToInt32(r?.Match(rawResult)?.Groups[1]?.Value);

Тогда я могу извлечь смещение. Необработанный результат выглядит примерно так:

ResultId:4116b361141446a98f306fdc11c3a5bd Status:Recognized Recognized text:<OK, so what's your think it went well, let's look at number number is 104-828-1198.>. Json:{"Duration":129500000,"NBest":[{"Confidence":0.887861133,"Display":"OK, so what's your think it went well, let's look at number number is 104-828-1198.","ITN":"OK so what's your think it went well let's look at number number is 104-828-1198","Lexical":"OK so what's your think it went well let's look at number number is one zero four eight two eight one one nine eight","MaskedITN":"OK so what's your think it went well let's look at number number is 104-828-1198"}],"Offset":6900000,"RecognitionStatus":"Success"}

Проблема в том, что смещение иногда равно нулю, даже в случаях, когда это ненулевой индекс файла, поэтому я получу нули в середине потока распознавания.

Я также пытался отправить тот же файл через API пакетной транскрипции , что дает мне совершенно другой результат:

{
                "RecognitionStatus": "Success",
                "Offset": 531700000,
                "Duration": 91300000,
                "NBest": [{
                        "Confidence": 0.87579143,
                        "Lexical": "OK so what's your think it went well let's look at number number is one zero four eight two eight one",
                        "ITN": "OK so what's your think it went well let's look at number number is 1048281",
                        "MaskedITN": "OK so what's your think it went well let's look at number number is 1048281",
                        "Display": "OK, so what's your think it went well, let's look at number number is 1048281."
                    }
                ]
            }, 

Итак, у меня есть три вопроса по этому вопросу:

  1. Есть ли поддерживаемый метод для получения смещения распознанной части файла в API распознавателя? SpeechRecognitionResult не раскрывает этого, равно как и расширение Best ().
  2. Почему смещение возвращается в 0 для сегмента, проходящего через файл?
  3. Каковы единицы для смещений в API массового распознавания и распознавания файлов, и почему они отличаются? Они не выглядят как ms или frame, по крайней мере из того, что я нашел в Audacity. Результат, который я опубликовал, был примерно 59-ых в файле, что примерно равно 800 тысячам образцов.

1 Ответ

0 голосов
/ 29 июня 2018

Крис,

Спасибо за ваш отзыв. На ваши вопросы, 1) Смещение, а также продолжительность были добавлены в API. Следующая версия (очень скоро) позволит вам получить доступ к обоим свойствам. Пожалуйста, не переключайтесь. 2) Вероятно, это связано с использованием другого режима распознавания Мы также исправим это в следующем выпуске. 3) Единица времени для обоих API составляет 100 нс (отметка). Также обратите внимание, что в пакетной транскрипции используется другая модель, нежели в режиме онлайн-распознавания, поэтому результат распознавания может немного отличаться.

Приносим извинения за доставленные неудобства!

Спасибо

...