2016-11-15 1 views
1

Ich habe ein Szenario, wo sagen jeden Morgen um 5.00 Uhr, ich habe eine serverseitige Skript/Batch-Job, wählt eine Telefonnummer aus einer Liste auf einem Algorithmus basiert, tätigt einen Anruf an diese Telefonnummer und verwendet Text-zu-Sprache, um eine benutzerdefinierte Nachricht zuzustellen. Ich habe 2 Fragen,Twilio API für die Herstellung von ausgehenden Anrufe mit einem Sprach-Stream

  1. Welche Twilio API kann ich verwenden, um dies zu erreichen? Denken Sie daran, es gibt keine App-Benutzeroberfläche und der gesamte Code wäre am Back-End. Denken Sie an NodeRED-Flow oder ein Python-Skript, das zu einem bestimmten Zeitpunkt ausgeführt wird.

  2. Anstatt den Text in der TwiML zu spezifizieren, kann ich sagen, dass ein Audio-Stream von Watson's Text zu Speech an die entsprechende Twilio API geht?

Antwort

1

Um dies zu tun, müssten Sie die programmierbare Sprach-API von Twilio verwenden. Auf diese Weise können Sie Audiodateien, Text-zu-Sprache, Telefonanrufe tätigen und bearbeiten usw. Ich habe Watson Text-to-Speech noch nie verwendet, aber wenn es eine Audiodatei ausgeben kann, können Sie diese mit Twilio TwiML wiedergeben.

Hier ist ein Beispiel in 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" 

}); 

Die TwiML könnte wie folgt aussehen:

<Response> 
    <Play loop="1">https://api.twilio.com/cowbell.mp3</Play> 
</Response> 

Dies würde die Kuhglocke Ton aus dem Twilio API spielen. Nur ein Standard-Sound. Dies könnte leicht generiert werden, um eine Watson-Sounddatei abzuspielen, wenn Sie eine URL dafür erhalten.

Sie könnten dasselbe in Node tun, wenn Sie die XML nicht manuell erstellen möchten.

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'); 

Wenn Sie diese toString nehmen sind() würde es Ausgabe formatierte XML (TwiML):

console.log(resp.toString()); 

Diese Ausgänge:

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

Hoffentlich es für Dich aufräumt.

Scott

+0

Vielen Dank für das Angebot einer so detaillierten Antwort Scott! Können wir dir ein T-Shirt schicken? E-Mail [email protected] für Details. –

+0

Danke Megan. Ich habe dir eine Mail geschickt. –

Verwandte Themen