我有一个场景,每天早上5点说,我有一个唤醒的服务器端脚本/批处理作业,根据算法从列表中选择一个电话号码,拨打该电话号码并使用文本 - 演讲以提供定制的消息。我有2个问题,
我可以使用哪种Twilio API来实现这一目标?请记住,没有应用程序UI,所有代码都在后端。想想NodeRED流程或在给定时间运行的Python脚本。
我可以将Watson的Text to Speech中的音频流传递给相应的Twilio API,而不是指定TwiML中的文本吗?
答案 0 :(得分:1)
为此,您需要使用Twilio的可编程语音API。这可以让你播放音频文件,文本到语音,制作和操作电话等。我从未使用Watson Text-to-Speech,但是,如果它可以输出音频文件,你可以用Twilio TwiML播放。
这是Node中的一个例子。
npm install twilio
//require the Twilio module and create a REST client
var client = require('twilio')('ACCOUNT_SID', 'AUTH_TOKEN');
client.makeCall({
to:'+16515556677', // Any number Twilio can call
from: '+14506667788', // A number you bought from Twilio
url: 'url/to/twiml/which/may/have/WatsonURL' // A URL that produces TwiML
}, function(err, responseData) {
//executed when the call has been initiated.
console.log(responseData.from); // outputs "+14506667788"
});
TwiML看起来像这样:
<Response>
<Play loop="1">https://api.twilio.com/cowbell.mp3</Play>
</Response>
这将播放来自Twilio API的牛铃声。只是默认声音。如果你可以获得一个URL,可以很容易地生成这个来播放Watson声音文件。
如果你不想手动构建XML,你可以在Node中做同样的事情。
var resp = new twilio.TwimlResponse();
resp.say('Welcome to Twilio!')
.pause({ length:3 })
.say('Please let us know if we can help during your development.', {
voice:'woman',
language:'en-us'
})
.play('http://www.example.com/some_sound.mp3');
如果你要把它带到toString(),它将输出格式化的XML(TwiML):
console.log(resp.toString());
输出:
<Response>
<Say>Welcome to Twilio!</Say>
<Pause length="3"></Pause>
<Say voice="woman" language="en-us">Please let us know if we can help during your development.</Say>
<Play>http://www.example.com/some_sound.mp3</Play>
</Response>
希望这能为你解决这个问题。
斯科特