如何为microsoft bot框架的文本数据添加实时语音(确切地说是谷歌语音所做的)

时间:2017-11-14 06:57:26

标签: c# botframework luis google-speech-api bing-speech

我是微软机器人框架的新手。我已经构建了一个简单的聊天机器人,当我发布它并将其部署到webapp频道时,它看起来像这样  enter image description here

用户将选择或键入文本,机器人将响应。现在我需要的是,我需要通过发送选项添加一个麦克风,这样如果用户点击麦克风并开始说话,那么它应该由机器人自动输入(谷歌语音的确如此)

我有文字api ref键的bing语音,但我不知道如何在其中添加和激活麦克风功能。

如果有人知道请帮我解决这个问题

1 个答案:

答案 0 :(得分:3)

您可以在Web应用程序中使用Embeddable web chat control for the Microsoft Bot Framework插件。您可以参考https://github.com/Microsoft/BotFramework-WebChat/blob/master/samples/speech/index.html获取语音样本。

一般而言,代码中的某些要点用于快速测试:

  1. 在您的网页中包含样式和脚本文件:
  2. <link href='https://cdn.botframework.com/botframework-webchat/latest/botchat.css' rel="stylesheet"/> ... <script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script> <script src="https://cdn.botframework.com/botframework-webchat/latest/CognitiveServices.js"></script>

    1. 初始演讲选项:

      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. 脚本中的Init BotChat:

      BotChat.App({
        bot: bot,
        locale: params['locale'],
        resize: 'detect',
        // sendTyping: true,    // defaults to false. set to true to send 'typing' activities to bot (and other users) when user is typing
        speechOptions: speechOptions,
        user: user,
        // locale: 'es-es', // override locale to Spanish
        directLine: {
          domain: params['domain'],
          secret: params['s'],
          token: params['t'],
          webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
        }
      }, document.getElementById('BotChatGoesHere'));