Watson 对话中的函数
Function in Watson conversation
我正在成功使用 Watson 对话服务。但现在的要求是将数学方程式放入 Watson Response 中。我怎么做?我还尝试使用外部数学键盘打字,但由于我的 TTS 服务不理解方程式,所以我没有得到我想要的响应。有没有办法在这里使用 LaTex?还有一种方法可以将函数放入我的 JSON Watson Response 中。
非常感谢
例如:
我在这里看到两个问题:
- 如何在 Watson Conversation 服务响应中发送数学方程式
- 如何使用 Watson Text to Speech 服务将数学公式合成为文本。
对于 #1,请在 上查看我的回答 - 它基本上是您想要的任何文本,包括 JSON 和 HTML,并且您可以选择 convert/translate 它然后再说话或将其显示给您的用户。
对于#2,您需要用文字写出等式。因此,您需要向 TTS 服务发送字符串 "f of x",而不是 "f(x)",等等(该服务支持一些自定义,但我认为它不适用于这种情况。)
如果您使用 JSON 作为响应,您可以包括两个版本 - HTML 一个用于显示,一个 "wordy" 用于 TTS。 (请注意,因为该服务已经用字符串响应发送回 JSON,所以您将以 JSON-inside-of-JSON 结束。不理想,但不是结束世界。)
开始时,这样做会简单得多,只需写两遍。您的初始 "translation" 层将解码 JSON,将这两个分开,例如将数学部分显示为 HTML 并使用冗长的部分调用 Text to Speech 服务。
您可以在 https://github.com/watson-developer-cloud?utf8=%E2%9C%93&q=conversation&type=&language= 上看到一些示例应用程序 - 其中大部分将响应转换为 HTML,因此只需从那里简单跳转至 HTML + 音频。
一旦您通过从公式到单词的手动转换顺利运行,您就可以开始在系统上工作以自动执行此操作。我在这里没有任何经验,但我觉得它比听起来更复杂。我不知道有任何现有代码可以执行此操作,因此此时您几乎只能靠自己了。
这是我对 html 和冗长的回复说 JSON 时的意思的图片:
并且,这是一个使用翻译层处理的示例:
// 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
});
}
我正在成功使用 Watson 对话服务。但现在的要求是将数学方程式放入 Watson Response 中。我怎么做?我还尝试使用外部数学键盘打字,但由于我的 TTS 服务不理解方程式,所以我没有得到我想要的响应。有没有办法在这里使用 LaTex?还有一种方法可以将函数放入我的 JSON Watson Response 中。 非常感谢 例如:
我在这里看到两个问题:
- 如何在 Watson Conversation 服务响应中发送数学方程式
- 如何使用 Watson Text to Speech 服务将数学公式合成为文本。
对于 #1,请在
对于#2,您需要用文字写出等式。因此,您需要向 TTS 服务发送字符串 "f of x",而不是 "f(x)",等等(该服务支持一些自定义,但我认为它不适用于这种情况。)
如果您使用 JSON 作为响应,您可以包括两个版本 - HTML 一个用于显示,一个 "wordy" 用于 TTS。 (请注意,因为该服务已经用字符串响应发送回 JSON,所以您将以 JSON-inside-of-JSON 结束。不理想,但不是结束世界。)
开始时,这样做会简单得多,只需写两遍。您的初始 "translation" 层将解码 JSON,将这两个分开,例如将数学部分显示为 HTML 并使用冗长的部分调用 Text to Speech 服务。
您可以在 https://github.com/watson-developer-cloud?utf8=%E2%9C%93&q=conversation&type=&language= 上看到一些示例应用程序 - 其中大部分将响应转换为 HTML,因此只需从那里简单跳转至 HTML + 音频。
一旦您通过从公式到单词的手动转换顺利运行,您就可以开始在系统上工作以自动执行此操作。我在这里没有任何经验,但我觉得它比听起来更复杂。我不知道有任何现有代码可以执行此操作,因此此时您几乎只能靠自己了。
这是我对 html 和冗长的回复说 JSON 时的意思的图片:
并且,这是一个使用翻译层处理的示例:
// 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
});
}