SageMaker部署Qwen3-TTS vLLM-Omni Part1
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
本文は SEO 深度のため主に中国語です。上記は要点のローカライズ。言語切替と深リンクで国際ナビできます。

SageMaker部署Qwen3-TTS vLLM-Omni Part1
Amazon SageMaker AI 使用 AWS vLLM-Omni Deep Learning Container 部署 Qwen3-TTS 模型,实现文本转语音的实时流式生成。通过持久化的双向 WebSocket 连接,应用程序可逐步接收音频块,无需等待完整语音合成完成。这适合需要即时反馈的语音代理、交互式学习工具和客服系统。
开发者选择此方案的原因是 vLLM-Omni 扩展了 vLLM 的能力,支持多模态模型的音频处理和流式输出,同时保持 OpenAI 兼容的 API 接口。SageMaker 提供托管推理服务,简化端点管理并支持实例池弹性扩展。
适用场景包括需要低延迟语音输出的项目。如果您已有 AWS 账户并配置了执行角色,此部署流程可直接启动,开发者无需从零构建底层基础设施。
为什么适合部署 Qwen3-TTS 到 SageMaker
Qwen3-TTS 是阿里云开源的文本转语音模型,专注于实时生成,支持多种声音和语言选择。通过 AWS vLLM-Omni DLC 打包,SageMaker 容器可自动加载模型并暴露流式接口。相比传统推理服务,此方案避免了语音生成的固定等待时间,让用户在输入文本后立即听到声音。
核心优势在于双向流式支持:客户端发送文本事件,服务端同时返回音频数据。Part 1 重点演示文本到语音的输出路径,与之前的语音到文本示例互补,构建完整的实时语音管道。
部署前的准备工作
您需要满足以下条件:
- AWS 账户并配置 CLI 或 SDK 凭证
- Git 工具
- Python 3.12 或更高版本
- SageMaker AI 执行角色(IAM 权限:创建和调用端点)
- 至少一个 vLLM-Omni 支持实例类型的配额(ml.g6.xlarge、ml.g6e.xlarge、ml.g5.xlarge 或 ml.g4dn.xlarge)
- Boto3 1.40.0 或更高版本
- SageMaker Runtime HTTP/2 Python 客户端 0.4.0 或更高
部署示例位于 US East (N. Virginia) 区域,可通过环境变量切换其他支持区域。
部署步骤
- 克隆示例仓库
`` git clone cd sagemaker-genai-hosting-examples/03-features/bidirectional-streaming-vLLM-Omni ``
- 创建虚拟环境并安装依赖
`` python3.12 -m venv .venv source .venv/bin/activate python -m pip install -r requirements.txt ``
- 配置环境变量
`` export SAGEMAKER_EXECUTION_ROLE_ARN="arn:aws:iam::<account-id>:role/<your-sagemaker-role>" `` SM_VLLM_MODEL 环境变量可显式指定模型路径。
- 创建并部署端点
`` python deploy_bidi_stream.py \ --endpoint-name vllm-omni-bidi \ --region us-east-1 \ --keep-endpoint `` 等待端点状态变为 InService。首次部署会下载 DLC 镜像和模型文件,耗时较长。
- 启动 Gradio 客户端
`` python sagemaker_bidi_tts_client.py \ --endpoint-name vllm-omni-bidi \ --region us-east-1 `` 浏览器打开
- 清理资源
`` python deploy_bidi_stream.py \ --endpoint-name vllm-omni-bidi \ --region us-east-1 \ --delete-endpoint ``
完整代码示例已在 GitHub 仓库中提供,可直接复用。
关键技术细节
SageMaker 使用实例池定义实例类型优先级列表,自动降级到更便宜的实例类型。端点通过 HTTP/2 WebSocket 暴露,SageMaker sidecar 负责转发到 vLLM-Omni 容器内的原生路由。
Qwen3-TTS 在 vLLM-Omni DLC 中作为示例模型加载,支持 pcm 格式音频输出。Gradio 客户端接收 JSON 事件并实时播放 24kHz PCM 块,显示已生成块数和总字节。
| 步骤 | 所需工具/权限 | 备注 |
|---|---|---|
| 账号与凭证 | AWS 账户 + IAM 执行角色 | 必须拥有端点创建权限 |
| 实例类型 | ml.g6.xlarge 或以上 | 需配额支持,否则端点创建失败 |
| 客户端库 | Boto3 + HTTP/2 客户端 | 版本 0.4.0+ 确保 WebSocket 支持 |
| 模型加载 | SM_VLLM_MODEL | 显式指定 Hugging Face ID 更可靠 |
延伸阅读
风险与边界
此教程为 AWS 官方示例的简化介绍,实际应用时需评估实例成本(每小时可能数美元)、延迟和配额限制。模型输出质量取决于 Qwen3-TTS 版本和环境配置。SageMaker 定价以官方当日报价为准,建议在控制台预估费用。
免责声明:本文仅供技术参考,不构成投资、法律或专业建议。实际部署可能涉及额外 AWS 服务费用或合规要求,建议咨询 AWS 技术支持。
English summary
This guide explains how to deploy Qwen3-TTS on Amazon SageMaker AI using the AWS vLLM-Omni Deep Learning Container to enable real-time streaming text-to-speech. The tutorial walks through prerequisites, cloning the bidirectional streaming sample, deploying a SageMaker endpoint with instance pools, launching a Gradio client, and generating streamed 24kHz audio over a persistent WebSocket connection. It highlights the OpenAI-compatible API interface and complementary patterns with the previous speech-to-text example. The sample code is available on GitHub for immediate use. Developers can extend the workflow to other multimodal models supported by vLLM-Omni. Pricing, quotas, and performance should be verified in the SageMaker console before production deployment.
适用于 GrokCode 倍率榜。信息仅供参考,不构成购买、投资或法律意见。