Azure Bot Framework с когнитивной речью не работает

#javascript #azure #speech-recognition #microsoft-cognitive #azure-bot-service

#javascript #azure #распознавание речи #azure-cognitive-services #azure-bot-service

Вопрос:

Я перехожу по этой ссылке, где мы можем использовать распознавание речи в bot Framework.

Код по умолчанию работает с вариантом 2,

   // // Option 2: Native browser speech (not supported by all browsers, no speech recognition priming support)
  //
  // Note that Chrome automatically blocks speech if the HTML file is loaded from disk. You can run a server locally
  // or launch Chrome (close all the existing Chrome browsers) with the following option:
  // chrome.exe --allow-file-access-from-files <sampleHtmlFile>
  //
  const speechOptions = {
     speechRecognizer: new BotChat.Speech.BrowserSpeechRecognizer(),
     speechSynthesizer: new BotChat.Speech.BrowserSpeechSynthesizer()
  };
  

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

Это изменение, которое я внес,

       // // Option 3: Cognitive Services speech recognition using API key (cross browser, speech priming support)
 const speechOptions = {
        speechRecognizer: new CognitiveServices.SpeechRecognizer({ subscriptionKey: 'YOUR_COGNITIVE_SPEECH_API_KEY' }),
        speechSynthesizer: new CognitiveServices.SpeechSynthesizer({
          gender: CognitiveServices.SynthesisGender.Female,
          subscriptionKey: 'YOUR_COGNITIVE_SPEECH_API_KEY',
          voiceName: 'Microsoft Server Speech Text to Speech Voice (en-US, JessaRUS)'
        })
      };
  

Кроме комментирования и раскомментирования я ничего не делал. Но все равно код работает только с вариантом 2

Пожалуйста, помогите мне решить это

Комментарии:

1. Была аналогичная проблема, связанная с этим потоком — github.com/Microsoft/BotFramework-WebChat/issues/687 Пожалуйста, проверьте и посмотрите, помогает ли это.

2. @MohitVerma-MSFT спасибо за ссылку. Я думаю, что это не связано с этой проблемой, поскольку я пробовал почти со всеми браузерами, такими как Chrome, Firefox и Edge, потому что cognitive может работать в кроссплатформенных браузерах. Я устал от всего другого. Ни один из них не работает, когда я нажимаю значок микрофона, браузеры получают структуру и переходят в режим прослушивания ни в одном из браузеров.

Ответ №1:

После некоторого глубокого изучения моим коллегой мы обнаружили проблему.

Исходный код использует javascript из https://cdn.botframework.com/botframework-webchat/latest/CognitiveServices.js

  <div id="BotChatGoesHere"></div>


    <!-- If you do not want to use Cognitive Services library, comment out the following line -->
    <script src="https://cdn.botframework.com/botframework-webchat/latest/CognitiveServices.js"></script>
  

Если мы откроем этот JS-файл, вы можете найти строку, подобную приведенной ниже, где используется URL-адрес bing speech

 Storage.Local.GetOrAdd("Host","wss://speech.platform.bing.com")}
  

Поскольку bing speech не ограничен, мы должны обновить эту строку в нашей собственной подписке

 Storage.Local.GetOrAdd("Host","wss://<region>.stt.speech.microsoft.com")}
  

После того, как мы обновили, теперь он работает нормально

Комментарии:

1. У меня такая же проблема, не могли бы вы поделиться обновленным кодом? Я не понимаю последнего. Где обновлять и что? @Jayendran

2. @MarcoWirtl в CognitiveServices.js файле есть конкретная строка, где вам нужно ее обновить. Эта строка Storage.Local.GetOrAdd("Host","wss://speech.platform.bing.com") вам нужно обновить ее следующим образом Storage.Local.GetOrAdd("Host","wss://<region>.stt.speech.microsoft.com")

3. Итак, я скачал JS и изменил ссылку, также изменил <region> на westus и загрузил скрипт с помощью ./CognitiveServices.js кнопка по-прежнему недоступна для нажатия. Что не так?

4. Извините, понятия не имею, что не так. Потому что для нас после этого это сработало

5. Что насчет вспомогательных ключей? Это одно и то же? Из когнитивного сервиса Speech?