Watson对话中的功能

时间:2017-01-03 04:14:43

标签: json latex ibm-watson watson-conversation

我成功使用了Watson会话服务。但现在要求将数学方程式放在Watson Response中。我怎么做?我也尝试使用外部数学键盘输入,但由于我的TTS服务不理解方程式,我没有得到我想要的响应。有没有办法在这里使用LaTex?还有一种方法可以将函数放入我的JSON Watson Response中。 非常感谢 例如:

enter image description here

1 个答案:

答案 0 :(得分:2)

我在这里看到两个问题:

  1. 如何在Watson Conversation Service响应中发送数学方程式
  2. 如何使用Watson Text to Speech服务将数学公式合成为文本。
  3. 对于#1,请参阅https://stackoverflow.com/a/41489073/933879上的答案 - 它基本上是您想要的任何文本,包括JSON和HTML,您可以选择在说出或将其显示给用户之前进行转换/翻译。

    对于#2,你需要用文字写出等式。因此,代替“f(x)”,您需要向TTS服务发送字符串“f of x”等(该服务支持一些自定义,但我认为它不适用于这种情况。 )

    如果您使用JSON作为响应,则可以包含两个版本 - 一个用于显示的HTML和一个用于TTS的“罗嗦”版本。 (请注意,因为服务已经使用字符串响应发回JSON,所以最终将使用JSON-inside-of-JSON。不理想,但不是世界末日。)

    要开始使用,这样做会简单得多,只需写两次。您的初始“翻译”图层将解码JSON,将这两者分开,例如将数学部分显示为HTML并使用罗嗦部分调用文本到语音服务。

    您可以在https://github.com/watson-developer-cloud?utf8=%E2%9C%93&q=conversation&type=&language=看到一些示例应用 - 大多数应用都会将响应转换为HTML,因此只需从那里轻松跳转到HTML +音频。

    一旦您通过从公式到单词的手动转换顺利运行,您就可以开始使用系统来自动执行此操作。我没有任何经验,但我觉得它比听起来更复杂。我不知道有任何现有的代码可以做到这一点,所以你现在几乎都是你自己。

    这是我在为html和罗嗦的回复说JSON时的意思:

    IBM Watson conversation tooling UI with JSON output

    并且,以下是使用翻译层处理的示例:

    // this is meant to run in a browser
    // `WatsonSpeech` is from https://github.com/watson-developer-cloud/speech-javascript-sdk/releases
    // `ttsToken` is an auth token you generate server-side, eg: https://github.com/watson-developer-cloud/speech-javascript-sdk/blob/master/examples/tts-token.js
    // `res` is the JSON Object returned from the Conversation service's send endpoint - http://www.ibm.com/watson/developercloud/conversation/api/v1/#send_message
    
    function translationLayer(res) {
      var formula = JSON.parse(res.output.text[0]);
      $('#output').append(formula.html);
      WatsonSpeech.TextToSpeech.synthesize({
        text: formula.wordy,
        token: ttsToken
      });
    }