如何在使用nodejs在本地主机上运行聊天机器人时实现watson文本到语音?
我的聊天机器人已在localhost上运行..我想将沃森文本嵌入语音服务。我已经读过它可以通过websocket接口来完成。我对此没有任何想法
答案 0 :(得分:1)
假设您有使用Node.js和Conversation Service的IBM Developers构建的Conversation Simple示例,您只需让您的应用通过使用Websocket跟踪此tutorial来提交HTTP REST请求,或者您可以使用一种语言特定的SDK,我将粘贴在下面的链接中。
因此,几个月前@kane构建了一个将对话简单示例与文本转换为语音的示例,您可以在此link中轻松找到它们。
您可以查看此commit以查看更改,并按照逻辑在您的应用程序中实现Text to Speech。您将看到上面的代码使用.env文件中的服务凭据调用Text to Speech服务,就像代码中的注释一样:
const TextToSpeechV1 = require('watson-developer-cloud/text-to-speech/v1');
const textToSpeech = new TextToSpeechV1({
// If unspecified here, the TEXT_TO_SPEECH_USERNAME and
// TEXT_TO_SPEECH_PASSWORD env properties will be checked
// After that, the SDK will fall back to the bluemix-provided VCAP_SERVICES environment property
// username: '<username>',
// password: '<password>',
});
app.get('/api/synthesize', (req, res, next) => {
const transcript = textToSpeech.synthesize(req.query);
transcript.on('response', (response) => {
if (req.query.download) {
if (req.query.accept && req.query.accept === 'audio/wav') {
response.headers['content-disposition'] = 'attachment; filename=transcript.wav';
} else {
response.headers['content-disposition'] = 'attachment; filename=transcript.ogg';
}
}
});
transcript.on('error', next);
transcript.pipe(res);
});
// Return the list of voices
app.get('/api/voices', (req, res, next) => {
textToSpeech.voices(null, (error, voices) => {
if (error) {
return next(error);
}
res.json(voices);
});
});
Obs。:我建议您看到Commit
并按照相同的逻辑在您的应用中进行更改。