跳到正文
AWS Machine Learning Blog· Nolan Chen·· 2 小时前AI 评分41

Cartesia 如何在 AWS 上构建超低延迟语音 AI 应用

Building ultra-low-latency voice AI applications on AWS

AI 导读

AWS 合作伙伴 Cartesia 基于专为语音 AI 设计的 State Space Models(SSM)架构与 AWS 基础设施,提供 sub-100ms 延迟的语音生成与转写。

正文 · AI 翻译

对话式 AI 正在改变人类与技术交互的方式。从虚拟助手和 AI 驱动的联络中心,到实时翻译和无障碍工具,以语音为先的界面正在迅速成为全球数百万用户默认的交互方式。

然而,交付真正自然的语音体验仍然是 AI 基础设施中最艰巨的挑战之一。用户期待类人的响应速度。过高的延迟会破坏对话流程并削弱信任。为了显得自然,AI 生成的语音必须在人类轮流对话的相同时间窗口内到达。

本文将介绍 Cartesia——一家专注于实时语音 AI 的 AWS 合作伙伴——如何使用专门构建的状态空间模型(SSM)和 AWS 基础设施,在全球范围内实现低于 100 毫秒的文本转语音和语音转文本。开发者可以构建与人类对话难以区分的语音体验。

对话式 AI 的兴起与延迟期望

各行业对实时语音 AI 的需求正在快速增长:

  • 联络中心:处理数百万客户交互的 AI 智能体需要即时生成语音,以保持自然的对话。
  • 远程医疗:远程患者问诊需要低延迟语音,以实现准确、有同理心的沟通。
  • 游戏与虚拟世界:沉浸式体验需要为非玩家角色(NPC)和玩家交互提供实时语音合成。
  • 无障碍:屏幕阅读器和语音界面必须即时响应,以服务视障用户。
  • 呼入与呼出销售:AI 销售智能体必须毫不迟疑地作出响应,以甄别线索、处理异议并留住潜在客户。

传统的基于 transformer 的文本转语音(TTS)模型在流式延迟方面表现不佳,因为它们需要处理完整个序列才能产生输出。这种架构上的局限造成了一个根本性的矛盾:更高的质量往往意味着更高的延迟。新一类模型——状态空间模型——化解了这种权衡。

面向语音的 AI:状态空间模型(SSM)

状态空间模型(SSM)采用与 transformer 截然不同的序列处理方式,而 transformer 是当今大多数 AI 背后的架构。Transformer 使用一种称为注意力(attention)的机制,将序列中的每个元素与其他所有元素进行比较。因此,随着序列变长,计算量会呈平方级增长。SSM 则将序列视为一个随时间连续演化的系统,逐步处理并携带一个紧凑的内部状态向前推进。这可以转换为计算机能高效处理的形式,从而对某些长序列保持较低的成本。这种效率使 SSM 非常适合实时流式数据,例如实时语音。

SSM 在音频处理方面的关键优势包括:

  • 高质量的长程依赖:结构化 SSM 是一种线性递归形式,但其状态参数化能够在长音频序列上保留信息,避免了限制经典循环神经网络(RNN)(如长短期记忆(LSTM)网络)的长程信号衰减问题。
  • 恒定的内存占用:与缓存所有先前 token 的 transformer 不同,SSM 维护固定大小的隐藏状态。
  • 原生流式支持:其循环结构逐个 token 地处理输入,因此无需修改架构即可支持真正的流式处理。

这些特性使 SSM 独一无二地适合于质量和延迟都不可妥协的实时语音应用。

工作原理:用于实时语音的 SSM

Cartesia 将这些 SSM 优势运用到两个生产级语音模型中:用于语音生成的 Sonic 和用于转录的 Ink。

Cartesia 简介

Cartesia 是一家实时多模态智能公司,构建了一个基于状态空间模型架构、专为语音打造的 AI 应用。Cartesia 由率先推动 SSM 进展的研究人员创立,其应用专为人类感知边缘的流式推理而设计。

该应用包含两个核心模型:用于文本转语音的 Sonic 和用于语音转文本的 Ink,两者均针对低于 100 毫秒的首字节延迟进行了优化,同时保持录音室级别的输出质量。

Sonic(文本转语音)

Sonic 是 Cartesia 的旗舰流式文本转语音模型,以低于 100 毫秒的延迟提供超逼真的语音合成:

  • 首音频字节约 90 毫秒内返回:用户几乎能瞬间听到语音响应。
  • 超逼真的语音质量:在超过 44 种语言中实现自然的韵律、情感和表现力。
  • 极少数据即可克隆声音:仅需 10 秒音频样本即可创建自然听感的自定义声音。
  • 流式原生架构:在完整文本输入接收完毕之前即可开始生成音频。
  • 上下文感知合成:在长篇内容中保持一致的语调和风格。

推荐需要以最少的运维开销实现最快上线速度的团队使用 Sonic。只需调用 API,即可实时接收流式音频。

Ink(语音转文本)

Ink 是 Cartesia 的流式语音转文本模型,专为对话式 AI 应用打造:

  • 原生话轮检测:自动识别说话者何时结束发言,无需单独的语音活动检测(VAD)或端点检测模型即可避免尴尬的停顿。
  • 上下文感知的端点检测:利用语义理解来区分句中停顿和真正的对话边界。
  • 流式转录:在用户说话时实时输出部分转录结果,使下游大语言模型(LLM)能够在话轮结束前就开始组织响应。
  • 抗噪能力:在实际部署中常见的嘈杂环境中仍能保持准确度。
  • 多说话人支持:从容处理语音重叠和说话人切换。

Sonic 与 Ink 共同提供了构建具有人类般体验的对话式智能体所需的完整语音 AI 技术栈。

在 AWS 上部署 Cartesia

如果您需要数据主权、延迟控制或合规性,可以将 Cartesia 模型直接部署到您自己的 AWS 账户中。Sonic 以 Amazon SageMaker AI 模型包的形式通过 AWS Marketplace 提供,您可以将其部署到完全在您的虚拟私有云(VPC)内运行的 SageMaker AI 端点。推理数据不会离开您的账户。

本节中的部署模式涵盖 Sonic。Ink 目前可通过 Cartesia API 使用,您可以通过 AWS Marketplace 中的 Cartesia Voice AI Platform 列表购买。Sonic 有两种主要部署模式可选。

选项 1:Amazon SageMaker AI(AWS Marketplace 模型包)

在 Amazon SageMaker AI 上部署是获得托管的 VPC 内 Sonic 端点的最快途径。Sonic 以 AWS Marketplace 模型包的形式发布,因此需要一次性订阅步骤,该步骤会为你的账户授予特定于某个 AWS 区域的模型包 ARN。然后你可以基于该 ARN 创建 SageMaker AI 端点,既可以从控制台操作,也可以使用 SageMaker 或 Boto3 SDK。以下步骤遵循 Cartesia 官方的部署笔记本。

前提条件

在 Amazon SageMaker Notebook Instance 或 SageMaker Studio 中运行。

AWS Identity and Access Management (IAM) 执行角色需要 AmazonSageMakerFullAccess。

如需订阅,你的角色(以及你本人)需要 aws-marketplace:Subscribe、aws-marketplace:Unsubscribe 和 aws-marketplace:ViewSubscriptions。否则,账户必须已经订阅了该商品。

部署前,请从模型包的 SupportedRealtimeInferenceInstanceTypes field: 中选择一种受支持的实例类型

  • ml.g6e.xlarge 或更大
  • ml.g7e.2xlarge 或更大
  • ml.g7.2xlarge 或更大
  • ml.p5.48xlarge
  • ml.p5en.48xlarge

如果你所选实例类型的已应用配额值低于当前用量加上计划的端点实例数量,你可能需要申请提高服务配额。详情请参阅 SageMaker AI 配额。

将 Sonic 3.6 部署到 SageMaker 端点

在 Amazon SageMaker JumpStart 中,你可以订阅其 AWS Marketplace 模型包、创建 SageMaker 模型,并将其托管在实时端点上。以下四个步骤展示了部署路径。

  1. In SageMaker AI, open AWS Marketplace resources, then All products. Search for Sonic 3.6 SageMaker and choose the Cartesia listing.

    AWS Marketplace search results listing the Cartesia Sonic 3.6 SageMaker model package

    图 1:在 AWS Marketplace 中搜索 Cartesia Sonic 3.6 SageMaker 模型包

  2. Choose View purchase options, review the pricing and terms, and subscribe. The subscription grants your AWS account access to the model package. It doesn’t deploy resources.

    The Cartesia Sonic 3.6 SageMaker product listing page in AWS Marketplace

    图 2:AWS Marketplace 中的 Cartesia Sonic 3.6 商品

  3. Open Deployments & inference > Deployable models, choose Create model, select Use a model package subscription from AWS Marketplace, and select Sonic 3.6 SageMaker. Choose an execution role, then create the model.

    SageMaker Create model page using the Sonic 3.6 AWS Marketplace subscription

    图 3:基于 Sonic 3.6 订阅创建 SageMaker 模型

  4. Create a real-time endpoint from the model with a supported GPU instance, such as ml.g6e.2xlarge. The endpoint first appears with Creating status. Wait for InService before invoking it.

    SageMaker endpoint for the Cartesia Sonic 3.6 model showing InService status

    图 4:Sonic 3.6 的 SageMaker 端点

模型包 ARN 是特定于区域的。要在美国东部(弗吉尼亚州北部)区域通过 SageMaker API 验证 Sonic 3.6 软件包,请运行:

export MODEL_PACKAGE_ARN="arn:aws:sagemaker:us-east-1:865070037744:model-package/sonic36-sagemaker-v0-c6e9cacffcdf31178d1bd7c98c587480"

aws sagemaker describe-model-package \
    --model-package-name "$MODEL_PACKAGE_ARN" \
    --region us-east-1 \
    --query '{Status:ModelPackageStatus,ProductId:InferenceSpecification.Containers[0].ProductId,InstanceTypes:InferenceSpecification.SupportedRealtimeInferenceInstanceTypes}'

当端点达到 InService 状态后,使用 SageMaker Runtime 的 InvokeEndpointWithResponseStream API 调用它,并在你的应用程序中处理返回的音频流。

选项 2:在 EC2 GPU 实例上自行管理

一些团队已有 GPU 基础设施、严格的网络要求,或需要将 Cartesia 与其他服务部署在同一位置。对于这些情况,你可以在 Amazon Elastic Compute Cloud (Amazon EC2) GPU 实例上自行运行模型容器。这使你可以完全控制运行时、扩缩容和网络路径。它使用从 Cartesia 获取的 Cartesia 容器镜像,而不是 AWS Marketplace 模型包。

Eight-step deployment flow for self-managed Cartesia Sonic on Amazon EC2 GPU instances, from obtaining the container image through adding observability and resiliency

图 5:在 Amazon EC2 GPU 实例上自行管理部署 Cartesia Sonic 的流程

获取容器镜像。向 Cartesia 申请 Sonic 容器镜像和许可条款。将其复制到你自己的私有 Amazon Elastic Container Registry (Amazon ECR) 存储库中,这样你的计算层就可以使用 IAM 范围内限定的凭证拉取镜像,而不必大规模访问外部注册表。

选择你的 GPU 实例系列。Sonic 可在 NVIDIA GPU 实例上运行。G6 (L4) 和 G6e (L40S) 系列是实时 TTS 的最佳平衡选择。较早的 G5 (A10G) 也可使用。请根据目标并发量匹配 GPU 内存和 vCPU,并优先为每个模型副本使用单 GPU 实例,以实现最简单的扩缩容。

预置计算层(Amazon Elastic Container Service (Amazon ECS) 或 Amazon Elastic Kubernetes Service (Amazon EKS))。对于 ECS:注册一个 GPU 任务定义(设置容器的 GPU 资源需求,例如,resourceRequirements 并将类型设为 GPU),并将其作为 Application Load Balancer 背后的服务运行。对于 EKS:使用 EKS GPU 优化 AMI 创建 GPU 节点组(或 Karpenter 预置器),安装 NVIDIA device plugin,并将容器部署为一个由 Service/Ingress 前置的 Deployment。

配置低延迟网络。将推理节点放置在集群置放群组中以最小化节点间延迟,将副本保持在单个可用区以获得最短路径,并使用 VPC 端点进行 ECR/S3 拉取。对于混合部署或本地部署的调用方,通过 AWS Direct Connect 或私有 Network Load Balancer 终止流量,以避免经过公共互联网的跳数。

高效加载模型权重。将模型权重存储在跨副本挂载的共享低延迟卷(Amazon Elastic File System (Amazon EFS) 或 Amazon FSx for Lustre)上,这样新的 Pod/任务启动时无需各自重新下载数 GB 的制品。在容器启动时预热模型,并暴露健康检查,使负载均衡器只将流量路由到就绪的副本。

调优批处理与并发。设置容器的最大批处理大小和并发流限制,以匹配你的流量特征。更高的批处理大小可以提高 GPU 利用率,但会增加首字节延迟,因此需要针对你的 100 毫秒以内目标进行调优。对 streams-per-GPU 进行基准测试,以找出你将要据此扩缩的副本容量。

实现自定义自动扩缩。基于能反映真实负载的信号进行扩缩,例如活跃音频流数量或 GPU 利用率,而不是 CPU。在 Amazon ECS 上,使用 AWS Application Auto Scaling 配合自定义 Amazon CloudWatch 指标。在 Amazon EKS 上,使用由 GPU 或流数量指标驱动的 HPA/KEDA,并由 Karpenter(或 Cluster Autoscaler)在副本增长时添加 GPU 节点。

添加可观测性与弹性。将延迟(首字节时间)、流数量和 GPU 指标发送到 CloudWatch。为保障可用性,至少在多个节点上运行两个副本。设置滚动更新或排空策略,确保部署时不会中断正在进行的音频流。

在将 Cartesia 集成到现有机器学习(ML)系统、满足托管服务无法满足的网络或合规要求,或通过预留或竞价型 GPU 容量优化成本时,推荐采用此方法。其代价是,你需要自行承担原本由 SageMaker 为你处理的预置、扩缩、修补和监控工作。

了解更多:请参阅 适用于 GPU 工作负载的 Amazon ECS 任务定义、在 Amazon EKS 上管理 NVIDIA GPU 设备以及 GPU 加速 EC2 实例入门。

选择合适的部署模式

AWS 提供两种运行 Sonic 的方式,各自适合不同的起点。

托管路径(使用来自 AWS Marketplace 的 Amazon SageMaker AI 模型包)是大多数团队的默认选择:你只需订阅,几分钟内部署到 VPC 内端点,并让 SageMaker 处理扩缩和运维。

自托管路径,即在 EC2 GPU 实例上自行运行模型容器,专为有特定限制的团队设计:已有 GPU 基础设施、严格的网络要求,或需要将 Cartesia 与其他服务共置。对于这些团队来说,对运行时、扩展和网络路径的完全控制比部署时间更重要。

下表总结了二者的对比情况。

评估标准 SageMaker(Marketplace) EC2 GPU(自托管)
部署时间 订阅后几分钟 数小时至数天
计算 实时终端节点。支持的实例类型请参见 SupportedRealtimeInferenceInstanceTypes。 EC2 GPU 实例
运维控制 由 AWS 托管 完全控制
扩展 SageMaker 自动扩展 自定义扩展策略
成本模式 软件费 + 每实例小时费 + 基础设施费 EC2(预留实例/Spot 实例节省)
网络 VPC 内终端节点(网络隔离) 置放群组、Direct Connect
最适合 快速、托管、VPC 内 自定义基础设施、最大控制权

除了在自己的账户中部署 Cartesia 之外,这些模型已经在 Amazon 服务内的生产环境中得到验证,而很少有比实时联络中心对实时语音要求更高的环境。Amazon Connect 正是这样一个试验场。

生产实践:Amazon Connect

本节将展示 Cartesia 的语音模型如何在 Amazon Connect 中以生产规模运行。

什么是 Amazon Connect?

Amazon Connect 是一项基于云的联络中心服务,企业可用它搭建和运营客户支持业务,处理入站和出站语音通话、聊天和消息。凭借按需付费的定价模式以及与 AWS 服务的深度集成,Amazon Connect 每天在金融服务到医疗保健等各行业支撑数百万次客户互动。

Cartesia 如何为 Amazon Connect 体验提供支持

Cartesia 的语音 AI 模型可与 Amazon Connect 原生集成,提供新一代联络中心体验:

  • 即时响应:消除会削弱客户对 AI 交互信任感的不自然停顿。
  • 实时转写:Ink 提供带智能话轮检测的实时转写,适用于坐席辅助工作流。
  • 多语言支持:以一致的话音质量和自然的韵律为超过 44 种语言的客户提供服务。
  • 可扩展的基础设施:在高峰时段应对流量激增,且不降低话音质量或增加延迟。

通过将 Amazon Connect 的全渠道编排能力与 Cartesia 的实时语音 AI 相结合,您可以在自动处理复杂客户交互的同时,保持建立信任与忠诚度的自然、响应迅速的体验。

开始使用

准备好构建超低延迟语音 AI 应用了吗?以下是后续步骤:

  • 通过 SageMaker JumpStart 部署 Sonic:在 SageMaker JumpStart 模型中心搜索“Cartesia”,几分钟内部署实时终端节点。
  • 试用 Cartesia API:从 Cartesia 入门指南开始。无需搭建任何基础设施。
  • 探索参考架构:访问 Cartesia GitHub 仓库,获取示例笔记本、部署模板和集成示例。
  • 联系团队:前往 AWS Marketplace 上的 Cartesia。

关于作者

来源: AWS Machine Learning Blog · aws.amazon.com