Как передать аудиопоток в реальном времени на конечную точку Direct Line Speech? - PullRequest
2 голосов
/ 03 октября 2019

Я пытаюсь использовать Direct Line Speech (DLS) в моем собственном голосовом приложении. Приложение Voice имеет доступ к аудиопотокам в режиме реального времени, которые я хочу (в кодировке pcm), напрямую в Direct Line Speech, что позволяет осуществлять обмен данными в режиме реального времени.

Из примера кода клиента DLS(https://github.com/Azure-Samples/Cognitive-Services-Direct-Line-Speech-Client), Я вижу, что метод ListenOneAsync () в пространстве имен Microsoft.CognitiveServices.Speech.Dialog.DialogServiceConnector, но выглядит так, как будто он захватывает медиа с локального микрофона.

Но, глядя на ответ здесь ( Подходит ли новая прямая речь MS Botbuilder для сценария центра обработки вызовов? ), кажется, я могу отправить аудиопоток напрямую в DLS. Кажется, я не могу найти какую-либо документацию по этому поводу. Может кто-то пролить некоторыесвет о том, как этого добиться?

1 Ответ

2 голосов
/ 08 октября 2019

Полагаю, ваш ответ лежит в классе Microsoft.CognitiveServices.Speech.Audio.AudioConfig. Посмотрите на эту строку в клиенте Direct Line Speech:

this.connector = new DialogServiceConnector(config, AudioConfig.FromDefaultMicrophoneInput());

AudioConfig предоставляет множество опций, кроме FromDefaultMicrophoneInput. Я подозреваю, что вы захотите использовать одну из трех FromStreamInput перегрузок. Если вы сделаете это, ListenOnceAsync будет использовать ваш поток вместо микрофона.

...