我需要自动为客户拨打电话,并通过语音与他们开始互动。基本上,当客户拿起电话时,我的机器人"会问:"嘿,看来你还没有完成你的订单。你想通过电话完成吗?"客户会说YES,NO或其他短语,我会按照流程进行操作。
我的问题:
1)使用Twilio解决此问题的最佳方法是什么?
2)看起来Twilio有这个功能(ASR)只能在我使用函数时理解入站调用。我怎么能用外拨电话呢?
3)Twilio是否准备好了解除英语之外的其他语言?我需要使用巴西葡萄牙语。
感谢您的帮助。
答案 0 :(得分:0)
Twilio开发者传道者在这里。
要自动拨打电话,您需要使用Twilio Programmable Voice API。我注意到您根据标记使用了C#,因此您可以从Twilio C# library开始。使用这个库你可以make calls with the API这样:
using System;
using Twilio;
using Twilio.Rest.Api.V2010.Account;
using Twilio.Types;
class Example
{
static void Main(string[] args)
{
// Find your Account Sid and Auth Token at twilio.com/console
const string accountSid = "your_account_sid";
const string authToken = "your_auth_token";
TwilioClient.Init(accountSid, authToken);
var to = new PhoneNumber("+14155551212");
var from = new PhoneNumber("+15017122661");
var call = CallResource.Create(to,
from,
url: new Uri("http://demo.twilio.com/docs/voice.xml"));
Console.WriteLine(call.Sid);
}
}
有关所有这些含义的详细信息,请查看making outbound phone calls with C#上的指南。
您将在该示例中看到我们将URL传递给进行调用的方法。此URL可以指向任何位置,包括Twilio Function(只是在Twilio基础架构中运行的Node.js)或您自己的服务器。当呼叫连接到用户时,Twilio将向该URL发出HTTP请求,以找出下一步要做的事情。要告诉Twilio要做什么,您需要返回TwiML。
要回复您想要的消息,然后从您的用户收集语音输入,您需要使用TwiML的<Say>
和<Gather>
元素。示例响应可能如下所示:
<Response>
<Gather input="speech" hints="yes, no" action="/gatherResponse">
<Say voice="alice">Hey, it seems you didn't finish your order. Would you like to finish by phone?</Say>
</Gather>
</Response>
在这种情况下,我们从<Gather>
开始,以便我们可以在呼叫与他们通话时捕获用户所说的任何内容。我们将input
attribute设置为&#34;语音&#34;这样我们就可以用语音来识别他们说的话。还包括hints
attribute,它可以为您希望听到的文本提供服务提示。最后,有一个action
attribute,它是一个将使用此结果调用的URL。
您可以使用language
attribute更改<Gather>
期望听到的语言。有number of languages available包含巴西葡萄牙语,您可以使用"pt-BR"
设置。
嵌套在<Gather>
内的是<Say>
,您可以用它来宣读您的信息。您可以使用voice
attribute更改可用语音。
您需要做的下一件事是回复<Gather>
的结果。在此阶段,它取决于您使用的Web应用程序框架。重要的是,当它有结果时,Twilio将对设置为action
属性的URL发出HTTP请求。在该请求中,将有两个重要参数SpeechResult
和Confidence
。 SpeechResult
有Twilio认为的文字,Confidence
是一个介于0.0和1.0之间的分数,以确定Twilio是如何确定的。希望你的结果会有&#34;是&#34;或&#34;否&#34; (或巴西葡萄牙语等同物)。此时你需要返回更多的TwiML告诉Twilio接下来要做什么,这取决于答案是肯定的,否定的还是缺失/不正确的。有关如何处理此处来电的更多提示,请查看Twilio voice tutorials in C#。
让我知道这是否有帮助。