Twilio功能 - 使用ASR通过出站呼叫了解客户语音

时间:2018-01-28 14:08:10

标签: c# twilio twilio-api twilio-functions

我需要自动为客户拨打电话,并通过语音与他们开始互动。基本上,当客户拿起电话时,我的机器人"会问:"嘿,看来你还没有完成你的订单。你想通过电话完成吗?"客户会说YES,NO或其他短语,我会按照流程进行操作。

我的问题

1)使用Twilio解决此问题的最佳方法是什么?

2)看起来Twilio有这个功能(ASR)只能在我使用函数时理解入站调用。我怎么能用外拨电话呢?

3)Twilio是否准备好了解除英语之外的其他语言?我需要使用巴西葡萄牙语。

感谢您的帮助。

1 个答案:

答案 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请求。在该请求中,将有两个重要参数SpeechResultConfidenceSpeechResult有Twilio认为的文字,Confidence是一个介于0.0和1.0之间的分数,以确定Twilio是如何确定的。希望你的结果会有&#34;是&#34;或&#34;否&#34; (或巴西葡萄牙语等同物)。此时你需要返回更多的TwiML告诉Twilio接下来要做什么,这取决于答案是肯定的,否定的还是缺失/不正确的。有关如何处理此处来电的更多提示,请查看Twilio voice tutorials in C#

让我知道这是否有帮助。