0

我需要自动为客户拨打电话并通过语音与他们进行互动。基本上,当客户拿起电话时,我的“机器人”会问:“嘿,你的订单好像没有完成,你想通过电话完成吗?” 客户会说“是”、“否”或其他短语,我将按照流程进行操作。

我的问题

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

2) 似乎 Twilio 具有此功能 (ASR),仅在我使用函数时才能理解入站呼叫。我怎样才能通过外拨电话做到这一点?

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

谢谢您的帮助。

4

1 回答 1

0

Twilio 开发人员布道者在这里。

要自动拨打电话,您需要使用Twilio 可编程语音 API。我注意到您根据标签使用 C#,因此您可以从Twilio C# library开始。使用该库,您可以使用 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);
    }
}

有关这一切意味着什么的更多详细信息,请查看使用 C# 拨打电话的指南。

您将在该示例中看到我们将 URL 传递给进行调用的方法。此 URL 可以指向任何地方,包括Twilio 函数(它只是在 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属性设置为“语音”,以便我们可以使用语音转文本来识别他们所说的内容。还包括可以为您希望听到的文本的服务提供提示的hints属性。最后,还有一个action属性,它是一个 URL,将使用 this 的结果调用。

您可以使用属性<Gather>更改期望听到的语言。有多种语言可用,包括巴西葡萄牙语,您可以使用.language"pt-BR"

嵌套在里面的<Gather><Say>你用来读出你的信息的。您可以使用该voice属性来更改可用的声音。

您需要做的下一件事是响应<Gather>. 在这个阶段,这取决于您使用的 Web 应用程序框架。重要的是,当它有结果时,Twilio 将对设置为action属性的 URL 发出 HTTP 请求。在该请求中将有两个重要参数,SpeechResultConfidence. SpeechResult有 Twilio 认为有人说过的文字,并且 Twilio 对此的确定Confidence程度介于 0.0 和 1.0 之间。希望您的结果将是“是”或“否”(或巴西葡萄牙语等价物)。此时,您需要返回更多 TwiML 来告诉 Twilio 下一步该调用该做什么,具体取决于答案是肯定的、否定的还是缺失/不正确的。有关如何处理来自此处的呼叫的更多想法,请查看C# 中的 Twilio 语音教程

让我知道这是否有帮助。

于 2018-01-29T04:40:43.877 回答