如何在IE中将MS网络聊天与必应语音配合使用

时间:2019-05-22 05:02:52

标签: javascript internet-explorer async-await web-chat bing-speech

我正在为聊天机器人v4.3(webchat-es5)使用网络聊天 https://github.com/microsoft/BotFramework-WebChat

由于IE不支持浏览器语音功能,因此我想使用bing语音/认知语音服务 但提供的示例包括使用IE中不允许的等待/异步方法 https://github.com/Microsoft/BotFramework-WebChat/tree/master/samples/06.a.cognitive-services-bing-speech-js

让我知道是否需要更多信息。 谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用then / catch方法来避免使用异步/等待。看看下面的ES5 Bundle Web Chat Sample和代码片段

window.fetch('https://webchat-mockbot.azurewebsites.net/directline/token', { method: 'POST' })
  .then(function (res) {
  return res.json();
})
  .then(function (json) {
  const token = json.token;

  window.fetch('https://webchat-mockbot.azurewebsites.net/speechservices/token', { method: 'POST' })
    .then(function (res) {
    return res.json();
  })
    .then(function (json) {
    const region = json.region;
    const authorizationToken = json.token;

    window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory({ authorizationToken: authorizationToken, region: region })
      .then(function (webSpeechPonyfillFactory) {
      window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({ token: token }),
        webSpeechPonyfillFactory: webSpeechPonyfillFactory
      }, document.getElementById('webchat'));

      document.querySelector('#webchat > *').focus();
    });
  });
});

尽管您可以避免使用异步/等待,但根据GitHub上的issue,认知语音服务在Internet Explorer中不起作用。因此,上面的代码导致“此浏览器不支持WebRTC”错误。

无论如何,希望这会有所帮助。