如何将实时语音添加到 Microsoft bot 框架的文本数据(正是 google 语音所做的)

Posted

技术标签:

【中文标题】如何将实时语音添加到 Microsoft bot 框架的文本数据(正是 google 语音所做的)【英文标题】:How to add live speech to text data for microsoft bot framework(exactly what google speech does) 【发布时间】:2017-11-14 06:57:26 【问题描述】:

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

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

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

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

【问题讨论】:

【参考方案1】:

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

一般来说,为了快速测试代码中的一些要点:

    在您的网页中包含样式和脚本文件:

<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>

    初始化语音选项:

    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)'
      )
    ;
    

    在脚本中初始化 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'));
    

【讨论】:

感谢@GaryLiu 的回复,我试过了,但我收到错误,因为 directline.botframework.com/v3/directline/conversations 无法加载资源:服务器响应状态为 403(禁止访问).. 我在哪里可以找到 botframework 中的 Directline 令牌? 语音连接建立在WSS portocol上,你需要强制使用https来请求你的服务器。 链接已损坏。 @Sana,由于有升级,所以代码会有所不同,请参考新样例github.com/Microsoft/BotFramework-WebChat/blob/master/samples/…

以上是关于如何将实时语音添加到 Microsoft bot 框架的文本数据(正是 google 语音所做的)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Microsoft speech将文本到语音和语音到文本功能添加到SIP软件

如何向 Azure Bot 发送短信?

Microsoft Bot Framework - 如何将数据从 Azure 数据库获取到我的 Bot 项目?

如何在基于Bot framewok v4构建的团队聊天机器人中启用语音功能

如何使用 Microsoft Bot Framework 将文件附加到消息?

如何将RASA基本文本bot转换为Rasa基本语音机器人