使用3CX呼叫流程设计器将文字转为语音

介绍

很多时候,我们需要重现我们无法预先录制的音频。 它可以是一个名称,一个地点,一些我们从数据库中获得的任务描述,仅举几例。 在这些情况下,可以使用Text to Speech文本转语音(TTS),让我们即时创建WAV文件,以便CFD应用程序可以将其回放给呼叫者。

3CX呼叫流程设计器( Call Flow Designer)包括“文本转语音音频提示”属性,该属性在配置提示音时使用,例如“提示音播放”组件,“菜单”组件,“用户输入”组件等。

要使用TTS,你需要一个亚马逊网络服务(Amazon Web Services)账号。3CX使用Amazon Polly来做TTS,因为在考虑了不同的引擎后,我们发现Amazon Polly的质量非常好,语言覆盖率非常好,语音数量多,价格也非常实惠,还包括第一年内完全免费的层级。需要3CX手机系统15.5 SP2或更高的版本才能使用这个功能。

CFD应用程序可以在将消息播放给呼叫者之前实时将文本实时转换为语音。 它调用Web服务以获取音频流,并将其保存到本地WAV文件。 最后,当呼叫结束时,将自动删除WAV文件,始终保持安装干净。

本指南介绍了如何创建 Amazon Web Services 帐户、如何启用 Amazon Polly,以及如何将其与文本转语音音频提示器一起使用以播放动态生成的音频流。

这个应用程序的项目与3CX呼叫流程设计器一起安装在你的Windows用户文档文件夹中,即 “C:Users/Users/YourUsername/YourUsername/Documents/3CX Call Flow Designer Demos”。

步骤 1:创建一个 Amazon Web Services (AWS) 帐户

在我们的CFD项目开始工作之前,我们需要一个Amazon Web Services账户。要创建它,请按照亚马逊提供的这个指南进行操作。

步骤2:创建一个身份和访问管理(IAM)用户

拥有AWS帐户后,我们需要创建一个IAM用户。CFD应用程序使用该用户的凭证来访问Amazon Web Services。请按照Amazon的本指南进行操作。在询问时,将访问类型设置为“程序访问(Programmatic access)”。配置权限时,选择“直接将现有策略附加给用户(Attach existing policies to user directly)”,搜索“ AmazonPollyFullAccess”并进行检查。

创建IAM用户后,进入用户设置,点击安全凭证,然后点击 “创建访问密钥(Create access key)”。记下 “访问密钥ID(Access key ID) “和 “秘密访问密钥(Secret access key)”。这些信息是配置CFD项目使用TTS时需要的。

重要提示:请注意Amazon Polly的限制。这些限制通常不会对CFD项目造成任何问题。

步骤3:创建项目

现在我们已经准备好了Amazon Web Services账户与Amazon Polly一起工作,我们可以创建我们的Call Flow Designer项目了。打开 CFD,进入 “File”>”New”>”Project”,选择您要保存的文件夹,并为项目输入一个名称,例如 “TextToSpeechDemo”。

现在进入 “项目资源管理器(Secret access keyProject Explorer) “面板,选择项目名称,在 “属性 “面板中显示我们需要在 “属性(Properties)”面板中配置的设置,以便TTS工作。

  • AmazonClientID:这是我们在步骤2中生成的“访问密钥ID(Access key ID)”。
  • AmazonClientSecret:这是我们在步骤2中生成的“秘密访问密钥(Secret access key)”。
  • AmazonRegion:选择离您的位置最近的区域,以减少延迟。 此处列出了Amazon Polly的可用区域。

在这里输入的设置将用于本项目中的每一个文字转语音音频提示。

步骤4:添加 “Prompt Playback “组件

通常,我们使用TTS从数据源(如数据库或Web服务)检索的数据动态生成音频。 但是在这种情况下,为简单起见,我们将创建文本以将其转换为将静态文本和调用流变量连接在一起的语音。 因此,我们定义了一个名为“ AccountBalance”的呼叫流程变量,并将其值设置为100,这样我们就可以播放一条消息:“您的帐户余额为$ 100”。

要添加“Prompt Playback”组件:

  • 从工具箱中拖动一个 “Prompt Playback “组件,将其拖动到 “Main “调用流的设计视图中。然后选择添加的组件,进入 “Properties“,将其重命名为 “playPrompt“。
  • 从 “Properties “中,打开 “Prompt Collection Editor“,点击 “Prompts “属性右侧的按钮。
  • 点击 “Add “添加新的提示音,并将类型改为 “Text to Speech Audio Prompt“。
  • 选择要使用的语音。下拉列表中的语音按语言排序,因此您可以轻松找到您需要使用的语言的可用选项。Amazon Polly 可用的语音在此列出。如果亚马逊发布的新语音尚未包含在此下拉列表中,您只需从 “Name/ID “栏中输入值即可使用。如果你想预先填充特定的语音,可以从 “Tools“>”Options“>”Component Templates“>”Text To Speech “中设置。在这个演示中,我们使用 “Joanna(英文-美国,女性)”。
  • 选择文本类型 – 选项是 “Text “和 “SSML“(语音合成标记语言)。在这个例子中,我们使用 “Text”,作为典型的使用。当你选择了 “Text “类型时,下面的属性Text的值将被视为纯文本,TTS引擎会尝试将其转换为语音。如果你选择了 “SSML “类型,根据SSML规范,Text属性的值被认为是XML。使用 SSML,您可以控制语音的各个方面,如发音、音量、音高和语音速率。有关更多信息,请参阅使用 SSML
  • 输入文本的表达式。 根据上一步中选择的类型,表达式必须返回纯文本以转换为语音或根据SSML规范转换为XML。 对于此演示,我们使用表达式:

CONCATENATE(“Your account balance is $”,callflow$.AccountBalance)

步骤5:构建并部署到3CX电话系统

该项目已准备就绪,可以通过以下步骤构建并上传到我们的3CX电话系统服务器:

  • 选择 “Build“>”Build All“,CFD生成文件 “PredictiveDialerDemo.zip”。
  • 进入 “3CX管理控制台”>”高级”>”呼叫流程应用程序”>”添加/更新”,上传上一步CFD创建的文件。
  • 呼叫流程应用已准备就绪,可以使用。 拨打电话以测试此应用。 请注意,第一次调用此应用程序时,文本到语音的转换可能会延迟几秒钟。 这与身份验证过程有关,并且仅在您首次调用该应用程序时发生。

最后说明

通常情况下,一个项目需要一些静态提示,例如欢迎用户或提供选项菜单,以及一些可变提示,例如播放来电者的账户余额。你可能只想用TTS服务来做一些可变提示,以避免为将始终相同的文本转换为语音而付出过多的代价。但同时,你可能也希望所有的提示都有相同的语音。所以建议您为静态提示创建WAV文件,使用Amazon Polly控制台,将其作为WAV文件下载到您的项目中,并将这些文件作为标准的音频文件提示,而不是将其从文本转换为语音,用于每次通话。

所以,在Amazon Polly控制台中,选择你的语言和地区,然后选择要使用的语音,输入提示文字,按 “下载MP3″。请注意,3CX要求文件必须是WAV格式,单声道,8.000Hz,每采样16位。下载完MP3文件后,使用本指南将文件转换为正确的格式。