全景路径

SageMaker vLLM-Omni TTS实时语音教程

Deploy a text-to-speech model on Amazon SageMaker AI with the AWS vLLM-Omni Deep Learning Container and stream generated speech over a persistent bidirectional connection. This Par

가이드 목록 · 본문은 주로 중국어 간체입니다. 영문 요약(English summary)을 참고하세요.

SageMaker vLLM-Omni TTS实时语音教程适合需要即时语音输出的开发者和企业。它指导你通过Amazon SageMaker AI和AWS vLLM-Omni Deep Learning Container(DLC)部署Qwen3-TTS模型,并利用双向流式传输在单一持久连接上实时生成和播放语音。无论你是构建实时语音代理、互动学习工具还是客户服务助手,都能直接应用此路径。

适用场景与决策要点

此方案特别适合需要“边生成边播放”功能的场景,无需等待完整响应后再播放。相比传统TTS流程,它减少了延迟,提升用户体验。例如,客服助手在用户提问后即时发出语音回复,交互学习App可同步发声指导。

决策时参考以下边界:

  • 需AWS账户并配置CLI/SDK。
  • 预算内支持ml.g6.xlarge或同类实例(按小时计费)。
  • 适合多模态AI模型部署,不适用于单文本推理场景。

部署准备与环境配置

部署前确认以下条件:

  • AWS账户,CLI或SDK凭证。
  • Git、Python 3.12+。
  • SageMaker执行角色(ARN)。
  • 创建和调用端点的权限。
  • 实例池配额(至少ml.g6.xlarge、ml.g6e.xlarge、ml.g5.xlarge或ml.g4dn.xlarge)。
  • Boto3 1.40.0+和SageMaker Runtime HTTP/2客户端0.4.0+。

使用US East (N. Virginia)区域开始,样本代码自动适配。

部署SageMaker端点

1. 克隆仓库并进入双向流式示例目录:


 git clone 

 cd sagemaker-genai-hosting-examples/03-features/bidirectional-streaming-vLLM-Omni

2. 创建虚拟环境并安装依赖:


 python3.12 -m venv .venv

 source .venv/bin/activate

 pip install -r requirements.txt

3. 配置执行角色与模型路径(示例US East 1):


 export SAGEMAKER_EXECUTION_ROLE_ARN="arn:aws:iam::<your-account-id>:role/<sagemaker-execution-role>"

4. 执行部署脚本(保留端点测试):


 python deploy_bidi_stream.py \

 --endpoint-name vllm-omni-bidi \

 --region us-east-1 \

 --keep-endpoint

等待端点状态变为InService(首次部署因拉取DLC镜像较慢)。

5. 启动Gradio客户端并生成语音:


 python sagemaker_bidi_tts_client.py \

 --endpoint-name vllm-omni-bidi \

 --region us-east-1

打开浏览器访问127.0.0.1:6006,输入文本、选择语音与语言,点击“Generate speech”。系统通过WebSocket连接(端口8443)实时推送24kHz PCM音频块,Gradio音频组件同步播放。

实现原理与技术细节

AWS vLLM-Omni DLC封装了vLLM-Omni框架,支持多模态流水线并暴露OpenAI兼容API。SageMaker使用HTTP/2 WebSocket实现双向流:客户端发送文本事件,模型返回音频生命周期与分块事件。

核心路由为v1/audio/speech/stream。实例池自动选择优先实例类型,确保可用时低延迟。Qwen3-TTS通过Hugging Face自定义语音加载,支持多种语言与说话人。

此架构与先前STT示例互补:麦克风音频转录后,直接将文本转为流式语音。

性能与成本对照

实例类型 推荐用途 每小时估算(US East 1,vLLM-Omni) 备注
ml.g6.xlarge 入门测试、轻量语音 约0.8–1.2 USD 优先选择,GPU资源充足
ml.g6e.xlarge 中等负载,平衡性好 约1.5–2.0 USD 性价比高,适合生产
ml.g5.xlarge 高负载或复杂模型 约2.5–3.5 USD 需确认配额
ml.g4dn.xlarge 预算有限,低延迟要求 约1.0–1.5 USD 较老一代,但仍支持

以AWS官方定价页面当日数据为准,实际依Region、模型大小浮动。建议通过SageMaker控制台查看实时成本。

清理与最佳实践

部署完成后,停止Gradio进程并执行清理:


python deploy_bidi_stream.py \

 --endpoint-name vllm-omni-bidi \

 --region us-east-1 \

 --delete-endpoint

为确保连续性,监控端点状态、设置自动清理规则,并通过SageMaker Runtime SDK复用流式逻辑。生产环境建议添加重试机制与语音合成质量评估。

延伸阅读

风险与边界

  • 为什么不要:非AWS账号可能触发访问限制或计费异常;模型部署无法保证零延迟。
  • 对不上账:忽略实例池配额或Region定价差异可能导致意外开支。
  • 升级后必挂:vLLM-Omni DLC或SageMaker运行时更新可能改变WebSocket路由,需重新测试部署脚本。

本教程基于2026-09-28 AWS官方博客内容,仅供参考。非法律意见,实际操作以AWS控制台和官方文档最新数据为准。AWS对任何依赖不承担责任。