CM588+RK182X组合布署Qwen3-TTS文字转语音模型Part1
一:模型介绍
Qwen3-TTS是阿里云通义千问团队开发的旗舰语音合成模型,支持多音色、多语种和多方言,目前可通过Qwen API访问。主要改进包括:更加丰富的音色支持,多语种多方言能力持续增强,以及韵律/语速更加自然、更拟人化。 [1]模型支持包括中文、英文在内的10种主流语言及多种方言。 [2] [8]2026年1月22日,Qwen3-TTS多码本全系列模型已开源
二:代码架构分析
2-1): 整体架构
Qwen3-TTS 原始 PyTorch 模型被拆成 5 个可独立部署的子模块,外加静态 embedding 表:
设计思路:Talker 是 1.7B 级 LLM,走 RKNN3 LLM 接口(KV cache、异步推理);text_projector / speech_decoder 是小网络,走普通 RKNN;embedding 表直接 mmap 加载,避免重复计算。2-2): 目录结构
3-3):Python 导出
3-3-1): 基础配置
源模型:CKPT/Qwen3-TTS-12Hz-1.7B-Base流程:PyTorch → ONNX → RKNN(rknn3-toolkit)目标平台:默认 rk1828量化:talker 用 GRQ + 校准集;code_predictor 量化无 dataset;text_projector / speech_decoder 默认不量化
3-3-1): 各模块详情
embeds — export_embeds.py
text_projector — export_text_projector_onnx.py
子模块:model.talker.text_projection(ResizeMLP)输入:text_embed [1, 512, text_hidden_size]输出:text_projection [1, 512, 2048]RKNN:w4a16,do_quantization=False
talker — export_talker_onnx.py
放在Part2了。code_predictor — export_code_predictor_onnx.py
放在Part2了speech_decoder — export_speech_decoder_onnx.py
放在Part2了特殊脚本 — export_speaker_embed_hpp.py
放在Part2了3-4):C++ 板端运行时
(放在Part2了)
三:模型导出
2-1):导出基础 Embeds
放在Part2了四:转换结果
4-1):听听
--------------Max new token reached-------------talker_output_callback: state = 3talker_output_callback: 处理 Tensor [0], Index = 0, Name = logits, Shape = [1, 1, 3072]talker_output_callback: 处理 Tensor [1], Index = 1, Name = past_hidden, Shape = [1, 1, 2048]--------------------TALKER 123 New Tokens--------------------2150--------------------Finished--------------------decoded chunk samples=42240, total_samples=232575saved wav to ./output/output.wav #保存在板子端目录playing wav: ./output/output.wav #直接在主板端播放出来