Выполните непрерывное распознавание речи в реальном времени, используя Xamarin и Microsoft Speech Service API

В документации Bing Speech API я увидел, что можно передавать потоковый вход микрофона в службу REST ( https://docs.microsoft.com/en-us/azure/cognitive-services/speech/home):

Непрерывное распознавание в реальном времени. API распознавания речи позволяет пользователям транскрибировать аудио в текст в режиме реального времени и поддерживает получение промежуточных результатов слов, которые были распознаны до сих пор.

Однако мне не удалось найти пример, показывающий, как этого можно достичь кроссплатформенным способом с использованием форм Xamarin.

Я нашел следующий учебник: https://developer.xamarin.com/guides/xamarin-forms/cloud-services/cognitive-services/speech-recognition/

Но при этом аудиопоток, отправляемый в API, является уже существующим аудиофайлом , однако я хотел бы добиться потоковой передачи микрофонного входа устройства, на котором выполняется приложение (Android, iOS, UWP).

Любое понимание будет оценено.

3 ответа

Решение

Боюсь, что нет библиотек, совместимых с Xamarin которые поддерживают Microsoft Speech API в реальном времени. Единственным совместимым является Bing Speech API, который использует протокол REST и не предлагает транскрипцию в реальном времени.

Для транскрипции в реальном времени требуется протокол Speech Service WebSocket, который полностью документирован. Вы можете реализовать этот интерфейс самостоятельно, но это может быть довольно сложной задачей, чтобы сделать это надежно.

Однако существуют встроенные библиотеки для iOS и Android, которые поддерживают потоковую передачу в реальном времени. Вы можете увидеть учебник для iOS и учебник для Android.

Тогда вы можете использовать библиотеки привязки Xamarin для привязки нативных библиотек к вашему проекту Xamarin. Для библиотеки Java см. Этот учебник, а для библиотеки Objective-C - этот учебник.

Особенно создание привязки Objective-C может быть сложной задачей, и обычно проще создать библиотеку Objective-C, которая будет действовать как фасад, который затем использует собственную библиотеку. Вы будете знать интерфейс вашей библиотеки фасадов, и тогда вам будет проще создавать привязку. Вы также можете попросить команду Xamarin создать привязку для вас, так как они поддерживают растущую коллекцию привязок сторонних библиотек на GitHub.

Здесь есть отличная библиотека, которая должна соответствовать вашим потребностям:

https://github.com/NateRickard/Xamarin.Cognitive.BingSpeech

У меня есть кроссплатформенное решение с использованием Bing Speech. Получил IOS работает. Никогда не тестировал решение Android.

Другие вопросы по тегам