1

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

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

  2. 除了在 TwiML 中指定文本,我可以将来自 Watson 的 Text to Speech 的音频流传递给适当的 Twilio API 吗?

4

1 回答 1

1

为此,您需要使用 Twilio 的可编程语音 API。这使您可以播放音频文件、文本转语音、拨打和操作电话等。我从未使用过 Watson Text-to-Speech,但是,如果它可以输出音频文件,您可以使用 Twilio TwiML 播放它。

这是 Node.js 中的一个示例。

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>

希望这可以为您解决问题。

斯科特

于 2016-11-15T19:09:14.933 回答