Watson Conversation + TTS

时间:2016-10-14 07:21:09

标签: ibm-cloud ibm-watson node-red watson-conversation watson-dialog

我正在尝试使用Watson Conversation服务和Watson TTS服务开发Web应用程序。会话输出被发送到TTS服务进行转换。我在NodeRED中这样做,并且我在会话节点和分配有效负载的TTS节点之间放置了一个功能节点。部署之后,我只得到会话对话聊天机器人,但不是我想的那样。请帮我弄清楚我错过了什么?

* PS:我正在使用HTTP post和HTTP get。

3 个答案:

答案 0 :(得分:0)

以下是在HTML网页上使用“文字转语音”的示例流程的链接。把它当作你的首发,然后加入对话。

https://github.com/watson-developer-cloud/node-red-labs/tree/master/basic_examples/text_to_speech

答案 1 :(得分:0)

我构建了一个可用的流程,您需要安装一个可以播放音频的节点。文本到语音节点实际上不播放任何声音。它会创建一个音频文件。

  1. 转到节点红色编辑器右上方的汉堡包。寻找调色板管理器。寻找node-red-contrib-play-audio并安装它。我假设你已经node-red-bluemix-nodes了。

  2. 您需要一个节点来检索输入,我使用了一个注入节点进行测试。

  3. 将其连接到对话节点。双击它并放置工作区ID。 (它位于每个工作区右上角三个点下方的工作区。将长字符串复制到您的节点中。我使用了默认的汽车教程。

  4. 将其连接到功能节点。然后我必须将对话的响应从msg.payload.output.text [0]移到msg.payload,如下所示:
  5. msg.payload = msg.payload.output.text[0]; return msg;

    1. 将其连接到文本到语音节点。填写任何凭据,选择一个语音,然后单击输出到msg.payload。 如果您忘记执行此操作,则音频节点将实际读取文本而不是使用文本到语音节点的语音。音频节点的声音不是很好。

    2. 连接播放音频节点。

    3. 就是这样。你应该有一个工作的声音。

      查看正在发生的事情的好方法是使用调试节点。这使您可以查看内容流动的位置,并放入函数以适当地为每个节点重定向输出。

      复制下面的代码并进入汉堡包并从剪贴板导入新流程。您需要填写适当的密码和工作区ID,但这会显示它是如何工作的。

      [{
          "id": "b7b6d9fc.1997f8",
          "type": "tab",
          "label": "Flow 2"
      }, {
          "id": "d0ed4492.045c18",
          "type": "inject",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "topic": "",
          "payload": "play the radio",
          "payloadType": "str",
          "repeat": "",
          "crontab": "",
          "once": false,
          "x": 159.5,
          "y": 122,
          "wires": [
              ["dc33249.3227bd8"]
          ]
      }, {
          "id": "dc33249.3227bd8",
          "type": "watson-conversation-v1",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "workspaceid": "",
          "multiuser": false,
          "context": true,
          "default-endpoint": true,
          "service-endpoint": "https://gateway.watsonplatform.net/conversation/api",
          "x": 383.5,
          "y": 121,
          "wires": [
              ["d3c07b87.22f9c8"]
          ]
      }, {
          "id": "711b8067.a1c7",
          "type": "debug",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "active": true,
          "console": "false",
          "complete": "true",
          "x": 751.5,
          "y": 200,
          "wires": []
      }, {
          "id": "9826b891.eb02b8",
          "type": "watson-text-to-speech",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "lang": "en-US",
          "langhidden": "en-US",
          "langcustom": "NoCustomisationSetting",
          "langcustomhidden": "",
          "voice": "en-US_MichaelVoice",
          "voicehidden": "",
          "format": "audio/wav",
          "password": "",
          "payload-response": true,
          "default-endpoint": true,
          "service-endpoint": "https://stream.watsonplatform.net/text-to-speech/api",
          "x": 757.5,
          "y": 64,
          "wires": [
              ["ccf6f5a7.700508"]
          ]
      }, {
          "id": "d3c07b87.22f9c8",
          "type": "function",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "func": "msg.payload = msg.payload.output.text[0];\nreturn msg;",
          "outputs": 1,
          "noerr": 0,
          "x": 561.5,
          "y": 120,
          "wires": [
              ["9826b891.eb02b8", "711b8067.a1c7"]
          ]
      }, {
          "id": "ccf6f5a7.700508",
          "type": "play audio",
          "z": "b7b6d9fc.1997f8",
          "name": "",
          "voice": "0",
          "x": 963.5,
          "y": 64,
          "wires": []
      }]
      

答案 2 :(得分:0)

您需要提供有关您问题的更多信息。

无论如何,我注意到的一件事是文本到语音产生一个44khz的音频文件。例如,如果您使用某些USB加密狗在RPI中本地运行它,它可能无法播放,因为它默认支持22Khz音频。因此能够在本地播放也取决于硬件以及声音的配置方式。