Почему преобразование речи в текст Azure Cognitive Services неожиданно останавливается внутри службы WCF? - PullRequest
0 голосов
/ 31 января 2019

Я обращаюсь к службе Windows Communication Foundation (WCF) с асинхронным вызовом от клиента, чтобы запустить экземпляр Azure Cognitive Speech Service SDK (using Microsoft.CognitiveServices.Speech) SpeechRecognizer.Распознаватель речи принимает два аргумента:

SpeechConfig.FromSubscription(key, region)

и

AudioConfig.FromWavFileInput(fileName) 

Когда клиент вызывает WCF в среде разработки (localhost), SpeechRecognizer способен распознавать аудиофайлыболее 120 минут, успешно возвращая наши RecognizedSpeech текстовые результаты.

Когда служба WCF развернута как облачная служба Azure на основе WCF, SpeechRecognizer для аудиофайлов длиной более 9 минут, кажется, никогда не вводится:

recognizer.Canceled += (s, e) => {} 

Похоже, что естьSpeechRecognizer не выдает ошибку и не выдает ошибку.Служба, по-видимому, неожиданно прекращает «прослушивание» аудиовхода.

Я попытался увеличить переменные <basicHttpBinding /> <binding /> Timeout службы WCF до одного часа, а также увеличить BufferSize переменные до 2GB.Не повезло.

Теперь я спрашиваю, должен ли я вообще когда-либо включать эту функцию в службу WCF ...

Я предоставлю больше информации по мере необходимости!Спасибо.


Обновление

Мне удалось решить эту проблему путем извлечения службы когнитивной речи Azure из службы WCF и в консольное приложение (.exe).Пройдя по этому пути, я рекомендую использовать очередь сообщений внутри веб-службы, чтобы запустить Cognitive Service, живущий в другом месте, или просто ввести Azure Cognitive Speech Service в клиент.Я не рекомендую свое решение, его трудно отлаживать и тестировать в производственных средах (только журналы).

...