本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Speak
您可以通过提供文本在任何调用分支上播放语音。您可以输入纯文本或语音合成标记语言 (SSML)。SSML 可以通过添加暂停、强调某些单词或更改说话风格等,更好地控制 Amazon Chime SDK 生成语音的方式。
亚马逊 Chime 软件开发工具包使用 Amazon Polly 服务进行转换。 text-to-speechAmazon Polly 允许您在标准或神经引擎之间进行选择,以提高语音质量。Amazon Polly 支持超过 20 种语言和 60 种语音,可自定义应用程序的用户体验。Amazon Chime SDK 免费提供语音功能,但使用 Amazon Polly 需要付费。有关定价信息,请参阅 Amazon Polly 定价页面
重要
使用 Amazon Polly 需遵守 AWS 服务条款
使用动Speak作
以下示例显示典型的 Speak
操作。
{ "SchemaVersion": "1.0", "Actions":[ { "Type": "Speak", "Parameters": { "Text": "
Hello, World!
", // required "CallId": "call-id-1
", // required "Engine": "neural
", // optional. Defaults to standard "LanguageCode": "en-US
", // optional "TextType": "text
", // optional "VoiceId": "Joanna
" // optional. Defaults to Joanna } } ] }
- CallId
-
描述 — Lambda 函数调用的
CallDetails
中参与者的CallId
允许的值 — 有效的调用 ID
必填 — 是
默认值 – 无
- Text
-
描述 — 指定要合成语音的输入文本。如果指定
ssml
为TextType
,按照 SSML 格式输入文本。允许的值 — 字符串
必填 — 是
默认值 – 无
- Engine
-
描述 — 指定在处理语音合成文本时使用的引擎:标准引擎或神经引擎。
允许的值 — standard | neural
必填 — 否
默认值:标准
- LanguageCode
-
描述 — 指定语言代码。仅在使用双语语音时需要。如果您使用没有语言代码的双语语音,则使用双语语音的默认语言。
允许的值 — Amazon Polly 语言代码
必填 — 否
默认值 – 无
- TextType
-
描述 — 指定输入文本的类型,即纯文本或 SSML。如果未指定输入类型,则使用纯文本作为默认值。有关 SSML 的更多信息,请参阅 Amazon Polly 开发人员指南中的由 SSML 文档生成语音。
允许的值 — ssml | text
必填 — 否
默认值 – 无
- VoiceId
-
描述 — 指定要使用的语音的 ID。
允许的值 — Amazon Polly 语音 ID
必填 — 否
默认值 — Joanna
处理ACTION_SUCCESSFUL事件
以下示例显示了使用 Amazon Polly 的 Joanna
声音将文本“Hello World”合成英语语音操作的典型 ACTION_SUCCESSFUL
事件。
{ "SchemaVersion": "1.0", "Sequence":
3
, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "Speak", "Parameters": { "CallId": "call-id-1
", "Engine": "neural
", "LanguageCode": "en-US
", "Text": "Hello World
", "TextType": "text
", "VoiceId": "Joanna
" } }, "CallDetails":{ ... } }
处理ACTION_FAILED事件
以下示例显示了与上一个示例中使用相同事件的典型 ACTION_FAILED
事件。
{ "SchemaVersion": "1.0", "Sequence":
2
, "InvocationEventType": "ACTION_FAILED", "ActionData":{ "Type": "Speak", "Parameters": { "CallId": "call-id-1
", "Engine": "neural
", "LanguageCode": "en-US
", "Text": "Hello World
", "TextType": "text
", "VoiceId": "Joanna
" }, "ErrorType": "SystemException", "ErrorMessage": "System error while running action" }, "CallDetails":{ ... } }
错误处理
此表列出并描述了 Speak
操作引发的错误消息。
错误 | 消息 | Reason |
---|---|---|
|
|
用于向 Amazon Polly 发出请求的服务关联角色不存在或缺少权限。要解决这一问题,请参阅 使用 Amazon Chime SDK 语音连接器服务相关角色 部分中的相关步骤 |
|
|
验证操作参数时出错。有关参数的更多信息,请参阅 Amazon Polly 开发者指南中的 SynthesizeSpeech API。 |
ActionExecutionThrottled |
Amazon Polly 正在限制合成语音的请求。 | 向 Amazon Polly 发出的请求返回限制异常。有关 Amazon Polly 限制限额的更多信息,请参阅 https://docs.aws.amazon.com/polly/latest/dg/limits.html#limits-throttle。 |
|
|
操作参数必须有 |
|
|
文本超出了字符限制。 |
|
运行操作时出现系统错误。 |
运行操作时出现一个系统错误。 |
程序流程
下图显示了为调用者启用 Speak
操作的程序流程。在此示例中,调用者听到的文本是
在图中
调用者使用软件电话输入注册到 SIP 媒体应用程序的号码。应用程序使用 SIP INVITE
法并向调用者发送 Trying
(100)
响应。这表明下一跳服务器收到了调用请求。然后,SIP 应用程序使用 INVITE
联系终端节点。建立连接后,应用程序会向调用者发送 Ringing (180)
响应,并开始发出警报。
然后,SIP 媒体应用程序向 Lambda 函数发送 NEW_INBOUND_CALL
事件,Lambda 函数以包含调用者 ID 和要转换为语音的文本的 Speak
操作进行响应。然后,SIP 应用程序发送 200 (OK)
响应,表示调用已应答。该协议还启用媒体。
如果 Speak
操作成功并将文本转换为语音,则它会向 SIP 媒体应用程序返回一个 ACTION_SUCCESSFUL
事件,而该应用程序会返回下一组操作。如果操作失败,SIP 媒体应用程序会向 Lambda 函数发送 ACTION_FAILED
事件,而 Lambda 函数会以一组 Hangup
操作进行响应。应用程序挂断调用者并向 Lambda 函数返回 HANGUP
事件,而该函数不会执行任何进一步操作。
下图显示了为被调用者启用 Speak
操作的程序流程。
在图中
调用者输入注册到 SIP 媒体应用程序的号码,应用程序的响应如前图所述。当 Lambda 函数收到 NEW_INBOUND_CALL
事件时,它会将 CallAndBridge 操作返回给 SIP 应用程序。然后,应用程序使用 SIP INVITE
法向被调用者发送 Trying (100)
和 Ringing (180)
响应。
如果被调用者应答,SIP 媒体应用程序会收到 200 (OK)
响应,并向调用者发送相同的响应。这会建立媒体,并且 SIP 应用程序会向 Lambda 函数发送 CallAndBridge 操作的 ACTION_SUCCESSFUL
事件。然后,该函数将 Speak 操作和数据返回给 SIP 应用程序,后者会转换