Twilio API,用于使用语音流进行出站呼叫

时间:2016-11-15 18:50:12

标签: twilio node-red twilio-api watson

我有一个场景,每天早上5点说,我有一个唤醒的服务器端脚本/批处理作业,根据算法从列表中选择一个电话号码,拨打该电话号码并使用文本 - 演讲以提供定制的消息。我有2个问题,

  1. 我可以使用哪种Twilio API来实现这一目标?请记住,没有应用程序UI,所有代码都在后端。想想NodeRED流程或在给定时间运行的Python脚本。

  2. 我可以将Watson的Text to Speech中的音频流传递给相应的Twilio API,而不是指定TwiML中的文本吗?

1 个答案:

答案 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>

希望这能为你解决这个问题。

斯科特