You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS StartOutboundVoiceContact API实现带TTS的动态文本外呼?

实现AWS带动态TTS内容的外呼API调用(PHP)

我来帮你梳理下用AWS实现带动态文本转语音(TTS)的外呼API调用的具体方案,结合你提到的步骤,把关键细节补充完整:

整体流程概述

核心思路是通过PHP调用AWS Connect的StartOutboundVoiceContact API发起外呼请求,同时传递自定义的动态文本;然后由指定的AWS Connect联系流接收这个动态文本,通过“Play Prompt”模块将文本转为语音播放给接听者。

步骤1:用PHP调用StartOutboundVoiceContact API

首先确保你已经安装了AWS SDK for PHP v3(可以通过Composer安装:composer require aws/aws-sdk-php)。以下是完整的调用示例,重点是通过Attributes参数传递动态文本:

<?php
require 'vendor/autoload.php';

use Aws\Connect\ConnectClient;
use Aws\Exception\AwsException;

// 初始化AWS Connect客户端
$client = new ConnectClient([
    'version' => '2017-08-08',
    'region' => '你的AWS区域(比如us-east-1)',
    // 生产环境推荐用IAM角色/环境变量配置凭证,这里仅作示例
    'credentials' => [
        'key' => '你的AWS Access Key',
        'secret' => '你的AWS Secret Access Key',
    ]
]);

try {
    // 动态文本内容,可根据业务逻辑自定义生成
    $dynamicMessage = "您好,这是一条自定义语音通知,您的订单编号是12345,请及时处理。";

    $result = $client->startOutboundVoiceContact([
        'ContactFlowId' => '你的联系流ID', // 对应步骤2中配置的联系流ID
        'DestinationPhoneNumber' => '+8613xxxxxxxxx', // 目标号码需符合E.164标准格式
        'InstanceId' => '你的AWS Connect实例ID',
        // 传递动态文本到联系流,键名可自定义,后续联系流需对应使用
        'Attributes' => [
            'custom_tts_message' => $dynamicMessage
        ]
    ]);

    echo "外呼请求已发起,联系ID:" . $result['ContactId'];
} catch (AwsException $e) {
    echo "调用失败:" . $e->getMessage();
}
?>

注意事项:

  • 生产环境禁止硬编码凭证,优先使用IAM角色(如在EC2/EKS上运行)或环境变量配置
  • 目标号码必须遵循E.164标准格式(带国家代码前缀,如+86开头的国内号码)
  • 确保你的IAM实体(用户/角色)拥有connect:StartOutboundVoiceContact权限

步骤2:配置AWS Connect联系流处理动态TTS播放

接下来需要在AWS Connect控制台中配置联系流,确保它能接收并播放你传递的动态文本:

  1. 登录AWS Connect控制台,进入你的实例,打开“联系流”页面
  2. 创建新联系流(或编辑现有联系流),添加Play Prompt模块
  3. 在Play Prompt模块设置中:
    • 选择“Text-to-Speech (TTS)”作为播放源
    • 点击“Insert attribute”按钮,选择“User defined”选项
    • 输入你在API调用中使用的属性键名(比如custom_tts_message),此时TTS内容会自动关联你传递的动态文本
  4. 按需添加其他模块(比如等待接听逻辑、异常处理分支),最后保存并发布联系流

额外优化建议:

  • 设置 fallback 文本:如果custom_tts_message属性未传递,可以配置默认TTS内容作为兜底
  • 选择合适的TTS语音:在Play Prompt模块中可选择AWS Polly提供的不同语音类型,提升播放体验

内容的提问来源于stack exchange,提问作者Chitrang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:59:40