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
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 SageMaker双向流式传输开发指南
- vLLM-Omni DLC文档
- SageMaker实时端点测试
- AWS机器学习博客RSS订阅
- RooHome官方价格雷达
- AI价格雷达深度路径
- 一站式AI价格订阅
- 四模块对照雷达
- 独立垂直AI部署站
风险与边界
- 为什么不要:非AWS账号可能触发访问限制或计费异常;模型部署无法保证零延迟。
- 对不上账:忽略实例池配额或Region定价差异可能导致意外开支。
- 升级后必挂:vLLM-Omni DLC或SageMaker运行时更新可能改变WebSocket路由,需重新测试部署脚本。
本教程基于2026-09-28 AWS官方博客内容,仅供参考。非法律意见,实际操作以AWS控制台和官方文档最新数据为准。AWS对任何依赖不承担责任。
English summary
This SageMaker vLLM-Omni TTS real-time voice tutorial shows how to deploy the Qwen3-TTS model using the AWS vLLM-Omni Deep Learning Container on Amazon SageMaker AI. It streams generated speech over a persistent bidirectional WebSocket connection, enabling instant playback without waiting for full generation. Suitable for voice agents, accessibility tools, and interactive apps that require low-latency output.
Prerequisites include an AWS account, Git, Python 3.12+, and SageMaker endpoint quotas. Follow the steps to clone the sample repo, configure role and model, deploy via Python scripts, and run the Gradio client for testing.
Key technical details: The vLLM-Omni DLC provides multimodal streaming; SageMaker sidecar routes traffic over HTTP/2. Supported instance types and cost table included for planning. Cleanup ensures no lingering charges.
Test the sample in US East (N. Virginia), monitor with SageMaker tools, and adjust for production. This complements the earlier STT tutorial for full voice pipelines. Use AWS official resources for updates.