2016-11-15 167 views
1

我有一個場景,每天早上在上午5點說,我有一個服務器端腳本/批處理作業醒來,從基於算法的列表中選擇一個電話號碼,撥打該電話號碼並使用文字轉語音來發送定製的消息。我有2個問題,用於通過語音流進行呼出呼叫的Twilio API

  1. 哪個Twilio API可以用來實現這個?請記住,沒有應用程序用戶界面,所有代碼都將位於後端。考慮NodeRED流或在給定時間運行的Python腳本。

  2. 而不是指定TwiML中的文本,我可以通過說Watson的文本到語音的音頻流到相應的Twilio API嗎?

回答

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> 

希望這清除它適合你。

Scott

+0

感謝您提供這樣一個詳細的答覆斯科特!我們能寄給你一件T恤嗎?詳情請電郵[email protected]。 –

+0

謝謝梅根。我給你發了封郵件。 –