
论文链接:https://arxiv.org/abs/2605.27258
项目主页:https://amapvoice.github.io/PilotTTS/
GitHub Repo:https://github.com/AMAPVOICE/PilotTTS
Hugging Face:https://huggingface.co/AmapVoice/PilotTTS
ModelScope:https://www.modelscope.cn/models/AmapVoice/PilotTTS
发布机构:Amap Voice(高德地图语音团队),Alibaba Group
发布日期:2026 年 5 月
开源协议:Apache-2.0(完全开源,包括代码、数据处理流水线方案和预训练权重)
这两年 TTS 圈子有个明显的趋势:越卷越大。
训练数据从几十万小时涨到百万小时级别,架构越堆越复杂,多码本量化、多阶段流水线、专门定制的流式子模块……每一代新系统出来,光是把环境跑通就要折腾半天。
高德语音团队(Amap Voice)近期发了一篇技术报告,给这个趋势泼了一盆冷水。
他们只用了 20 万小时数据,全程用开源工具处理,搭了一套叫PilotTTS的 TTS 系统,在 Seed-TTS Eval 基准上,说话人相似度同时拿下中文和英文两个测试集的第一(0.862 和 0.815),英文 WER 也是最低的(1.50%)。
跟同类系统比,MiniMax-Speech 和 Qwen3-TTS 没公开说话人相似度分数,不好直接比;但凡公开了 SIM 分数的系统,PilotTTS 全部超过——包括用了更多数据训练的那些。
这不是在说规模小就一定好。而是在说:数据质量和架构设计到位了,规模不一定是决定性因素。
PilotTTS 是一个基于大语言模型的自回归 TTS 系统,一套框架里集成了四个功能:
零样本声音克隆(Zero-Shot Voice Cloning)只需要几秒钟的参考音频,就能合成出目标说话人的声音。这是基础模型pilot_tts.pt提供的能力。
情感控制合成支持 11 类情感:Happy、Sad、Angry、Fear、Surprise、Serious、Contempt、Concern、Blue(忧郁)、Disgust、Psychology(内心独白)。这是通过约 2200 小时情感标注数据微调后实现的。
副语言合成(Paralinguistic)支持笑声(LAUGH)、呼吸(BREATH)、哭泣(CRY)、咳嗽(COUGH),以及一个比较特殊的"笑声嵌套模式"(LAUGH_SPAN)——就是说话过程中自然夹带笑声,而不是插入一段独立的笑声片段。
中文方言合成支持 14 种方言,包括东北话、山东话、河南话、闽南语、上海话、重庆话、湖南话等等。不只是同方言克隆,还支持普通话音频作为参考、生成目标方言语音(Mandarin-to-Dialect),以及跨方言合成(Cross-Dialect)。
同方言参考→同方言生成(准确率 91.80%)
普通话参考→目标方言生成(准确率 86.46%★)
方言 A 参考→方言 B 生成(准确率 85.38%)
这几个功能是同一套模型框架下的,不是四个分开的系统拼在一起。

(来源:README / GitHub assert/Introduction.png,Figure 1 of the paper)
做个简单的背景梳理,这样更容易看出 PilotTTS 的定位。
当前主流的开源 TTS 系统,大概可以分这几类:
大规模自回归系系统,代表是阿里的 CosyVoice 系列(目前最新是 CosyVoice 3,0.5B 和 1.5B 两个版本),基于 LLM 架构,用有监督语义 token 建模,支持多语言、流式推理。训练数据量大,多语言覆盖是优势,但系统也更复杂。
非自回归 Flow Matching 系系统,代表是 F5-TTS,架构相对简洁,推理速度快,在英文上表现不错,但说话人相似度方面不如自回归系统有优势。
双自回归架构,代表是 Fish Audio S2(Fish-Speech S2),用 4B 参数的慢速 AR 处理语言结构,400M 参数的快速 AR 处理声学细节,支持 80+ 语言,首 token 延迟极低(<150ms),在 Seed-TTS Eval 上的成绩也很强。另外 S2 Pro 版本在更大的闭源系统对比中也拿到了领先位置,但这是 S2 Pro 的情况,规模和训练资源要多很多。
其他竞争者,Qwen3-TTS(阿里云团队,侧重多语言和语音设计)、VoxCPM(无 tokenizer 设计)、VibeVoice(1.5B 规模)等。
PilotTTS 的定位是:0.6B 规模,纯开源组件,200K 小时数据,主打说话人相似度和中文方言的综合能力。多语言支持上没有 CosyVoice 3 和 Fish-Speech 广,但说话人相似度的指标比目前公布数据的同规模系统都高。
大部分 SOTA TTS 系统不公开数据处理细节,数据质量成了复现的最大门槛。PilotTTS 把整个数据处理流水线开源出来了,这是它比较特别的地方之一。
整个流水线分三个阶段:
第一阶段:质量评估与增强
原始音频先统一格式和采样率,然后用语音活动检测(SAD)和说话人切换检测(SCD)找出有效语音段落。接着从三个维度并行评估:DNSMOS 打分(预测感知质量)、语音/非语音分类(排掉音乐和噪音段落)、信噪比估算。
打分低于 MOS ≤ 3.5 的片段,或者信噪比不够的,会送进降噪增强模块(用的是 resemble-enhance)处理,而不是直接丢弃。
(用的 SCD 模块是 pyannote/segmentation-3.0,SenseVoiceSmall 做语音分类。这些都是公开可用的工具。)
第二阶段:标注
用多 ASR 系统交叉转写(Paraformer、FireRedASR、Whisper 以及内部模型),交叉一致性校验提高文本标签的可靠性。
然后跑强制对齐、重叠语音检测(OSD)、韵律标注(基于 Qwen3-Force-Alignment)、说话人标记(3D-Speaker-Toolkit),还有一个频谱滚降分析——用来过滤掉有效采样率不够高的录音。
第三阶段:质量过滤
截断检测(开头结尾不完整的片段)、合成语音检测(爬网数据里混入的 TTS 生成音频),最后联合所有质量指标做多维过滤。
最终保留约 20 万小时的中英文语音数据用于预训练。
没保留下来的数据没有直接删掉,而是保留了质量标签和标注元信息,方便后续不同质量要求的任务灵活取用。

(来源:论文 Figure 2)
这套流水线的意义在于:所有用到的工具都是公开的,任何团队都可以复现。这对资源有限的研究团队来说门槛要低很多。
PilotTTS 的架构分四个主要部分:
1. 语音 Tokenizer
直接借用 CosyVoice 3 的单码本 FSQ(有限标量量化)tokenizer,25Hz 频率,每 40ms 产生一个 token,码本大小 6561。没有用多码本 RVQ,结构更简单。
这个 tokenizer 用了五个任务联合训练(ASR、语言识别、情感识别、音频事件检测、说话人分析),语义信息比较丰富。PilotTTS 直接拿来用,没有再改动。
2. 自回归文本到语义模块(Qwen3-0.6B 骨干)
这是系统的核心。用 Qwen3-0.6B 作为自回归骨干,根据文本和参考音频生成语义 token 序列。
关键设计是双路条件编码:
• Q-Former 作为 Semantic Content Adapter:用可学习的查询向量,通过交叉注意力从冻结的 w2v-BERT 2.0 提取参考音频的风格特征(语速、韵律等动态信息)。 • 冻结的 CAMPPlus:提取全局说话人身份嵌入(音色、静态特征)。
两路分开处理,互相补充。CAMPPlus 负责说话人身份,Q-Former 专注于说话风格。
训练时用的是跨样本配对策略:参考音频和目标音频来自同一说话人但不同片段,强迫模型把说话人特征和内容分开建模,不直接"抄"参考音频的内容。这个设计是后续情感控制和方言合成的基础。
情感控制在约 2200 小时情感标注数据上微调实现,副语言在约 200 小时数据上微调,14 种方言在约 1.6 万小时方言 ASR 语料上微调。
3. CFM + DiT 解码器(约 300M 参数)
把语义 token 转为 mel 频谱,用的是条件流匹配(CFM)+ Diffusion Transformer(DiT),10 步去噪。
4. HiFi-GAN 声码器
把 mel 频谱转为最终波形。

(来源:论文 Figure 3)
整个系统没有用新发明的模块。Qwen3 是公开的,Q-Former 是 BLIP-2 里的方法,CosyVoice 3 的 tokenizer 是公开的,CFM + DiT 是通用框架,HiFi-GAN 也不是什么新东西。
论文里自己说得很清楚:靠的是整合和数据工程,不是架构创新。
零样本声音克隆
在 Seed-TTS Eval 基准上,PilotTTS 对比的系统包括 Seed-TTS、F5-TTS、FireRedTTS-2、CosyVoice-3-0.5B、VoxCPM-0.5B、Qwen3-TTS-25Hz-0.6B、MiniMax-Speech、VibeVoice-1.5B。

(Qwen3-TTS 和 MiniMax-Speech 没公开 SIM 分数,无法在说话人相似度上做完整比较。论文 Table 1)
说话人相似度方面,PilotTTS 比排名第二的 Seed-TTS 在中文上高 0.066,英文上高 0.053,提升幅度比较明显。论文里把这归因于两点:数据质量(严格的流水线过滤)和双路条件编码设计。
内容准确率方面,中文 CER 0.87% 仅次于 MiniMax-Speech(0.83%),差距只有 0.04%;英文 WER 1.50% 是所有系统里最低的。
情感控制
评估用了 51 个说话人提示,包括 15 个动漫/影视中的表达型声音和 36 个普通说话人。判断标准是:音色保持一致且目标情感清晰可辨,两个条件同时满足才算成功。
在 7 类主要情感上,PilotTTS 平均成功率 88.1%,高于 CosyVoice 3 的 83.8%。
11 类全类别平均,CosyVoice 3 略高(81.4% vs 80.2%),主要是在扩展情感类别(Blue、Disgust 等)上表现更强。这个差距值得关注——PilotTTS 在扩展情感上不是最强的。
情感控制下的说话人相似度,PilotTTS 下降幅度最小(无控制时 0.8101,有控制时 0.7329),说明情感调制对音色保持的干扰相对小。


(论文 Table 2、Table 3)
副语言合成
在笑声(LAUGH)、咳嗽(COUGH)、呼吸(BREATH)三类共有类别上,PilotTTS 整体成功率 85.1%,CosyVoice 3 是 80.4%,Fish-Speech S2 是 64.3%。
其中笑声 97.6%,CosyVoice 3 是 83.3%,差距较大。呼吸这项 CosyVoice 3 更高(95.2% vs 81.0%)。咳嗽对所有系统都是难点,大家都在 60% 上下。
PilotTTS 独有的 LAUGH_SPAN(说话中夹带笑声)成功率 94.6%,CRY(哭泣)成功率 61.9%——这两个功能其他系统暂时不支持,没有可比较的基线。

(论文 Table 4)
方言合成
三种测试场景:同方言(Same-Dialect)、普通话到方言(Mandarin-to-Dialect)、跨方言(Cross-Dialect)。
同方言:91.8% 普通话到方言:86.46% 跨方言:85.38%
判断标准是听评,非目标方言发音占比超过 10% 就算失败。这个评估没有和其他系统做对比,是因为团队发现这类任务的人工评估主观性太强,为了避免引入无法控制的偏差,单独评估了 PilotTTS。

(论文 Table 5)
论文在清理后的 6 万小时子集上跑了消融实验,对比三种设置:完整双路(CAMPPlus + Q-Former)、只保留 Q-Former 条件 token、两个都去掉只剩文本。

(论文 Table 6)
有几个有意思的细节:
Q-Former 条件 token 对内容准确率非常关键,去掉后硬案例(test-hc)CER 从 7.83% 涨到 10.62%,相对上涨约 35%。
去掉 CAMPPlus 之后,在固定训练步数下,内容错误率反而略有下降(模型把容量转移到了内容 token 上),但说话人相似度特别是在硬案例集上下降明显。随着训练推进这个差距会缩小,说明 CAMPPlus 的作用是长期稳定说话人建模,而不是直接提升 CER。
本地部署
硬件方面,论文没有明确给出最低 GPU 要求,但骨干网络是 Qwen3-0.6B,加上 CFM 解码器约 300M 参数,粗估在消费级 GPU(比如 RTX 3090/4090 级别)上跑推理应该没问题,但不建议在纯 CPU 上跑,速度会很慢。需要 Python 3.10 环境。
代码和权重已经公开,注意需要同时下载三个第三方依赖:
pretrained_models/
├── pilot_tts.pt # 基础模型(零样本克隆)
├── pilot_tts_instruct.pt # 指令模型(情感/副语言/方言)
├── Qwen3-0.6B/ # LLM 骨干(来自 Qwen)
├── w2v-bert-2.0/ # 音频特征提取器(来自 Meta)
├── wav2vec2bert_stats.pt # 特征统计(来自 MaskGCT)
└── CosyVoice3-0.5B/ # Flow-matching 声码器(来自 FunAudioLLM) 也就是说,pilot_tts.pt 和 pilot_tts_instruct.pt 是 PilotTTS 自己的权重,其余都是依赖的第三方模型,需要分别从HuggingFace/ ModelScope 下载。
基础使用:基础使用:
from demo import load_engine, synthesize
engine = load_engine(
config_path="configs/infer_pilot_tts.yaml",
checkpoint="pretrained_models/pilot_tts.pt",
)
synthesize(engine, text="你好,世界!",
prompt_wav="assert/prompt.wav",
output_path="output/clone.wav") 情感合成(需要加载指令模型):
engine_instruct = load_engine(
config_path="configs/infer_pilot_tts_instruct.yaml",
checkpoint="pretrained_models/pilot_tts_instruct.pt",
)
synthesize(engine_instruct, text="今天天气真好啊!",
prompt_wav="assert/prompt.wav",
emotion="happy", output_path="output/happy.wav") 方言合成:
synthesize(engine_instruct, text="中不中啊,咱俩一块儿去吃胡辣汤吧",
prompt_wav="assert/prompt.wav",
language="zh-henan", output_path="output/henan.wav") 如果不想写代码,还有 Gradio WebUI:
python webui.py --port 9000 这一块可能很多人感兴趣,完整列出来:

方言数据用了约 1.6 万小时的方言 ASR 语料。训练时的关键技巧是混合提示采样——目标永远是方言语音,但参考音频以等概率从普通话或方言中选,强迫模型把说话人特征从风格中解耦。
为什么用单码本 FSQ 而不是 RVQ?
多码本 RVQ(残差向量量化)是 VALL-E 和 EnCodec 系那条路,信息容量大,但需要分层预测模块,结构复杂。PilotTTS 选了单码本 FSQ,码本 6561,25Hz,每 40ms 一个 token。结构更简单,代价是扩展到唱歌、有背景音乐的场景会有天花板——论文里自己提到了这个限制。
Q-Former 用在 TTS 里是什么感觉?
Q-Former 最早是 BLIP-2 里处理图文对齐的模块,本质是一组可学习查询向量通过交叉注意力从冻结的特征提取器里提炼信息。PilotTTS 把它用来从 w2v-BERT 的音频嵌入里提炼说话风格,然后和 CAMPPlus 的说话人身份嵌入配合。把视觉多模态的方法迁到语音条件编码,这个角度还挺有意思。
副语言 LAUGH_SPAN 模式的原理
普通的<|LAUGH|>是在指定位置插一段笑声。LAUGH_SPAN 是用开闭标签<|LAUGH_SPAN|>...<|/LAUGH_SPAN|>包住文本,让笑声在整个文本段落里贯穿出现,不是单点插入。成功率 94.6%,论文里说这个模式在现有开源系统里基本是独有的。
论文在结论部分直接列出了三个已知问题,值得关注:
1. 风格建模粒度有限
Q-Former 条件隐式捕捉风格,没有专门的显式风格建模模块,细粒度表达(比如局部韵律的精确控制)会有瓶颈。团队说后续会开发联合建模全局和局部风格的表示模块。
2. 单码本的信息容量上限
单码本 FSQ 在普通语音上够用,但扩展到唱歌、有背景音乐、复杂音场等场景会遇到信息容量的天花板,比多码本 RVQ 或连续潜在表示差一些。
3. mel 频谱重建的引入失真
用 mel 频谱 + 独立声码器是间接的重建路径,相比端到端直接生成波形会引入额外失真。论文提到后续会考虑端到端波形生成架构。
训练数据只有 20 万小时,比 Qwen3-TTS(用了大量数据)和 MiniMax-Speech 少很多,但在说话人相似度指标上比有公开 SIM 分数的系统都高——这个结果指向的信息是数据质量的权重可能比数量更重要,至少在说话人相似度这个维度上是这样。
但也要注意 Qwen3-TTS 和 MiniMax-Speech 没有公开 SIM,所以比较有缺失。这两个系统在内容准确率上的 CER/WER 也不弱,整体能力不低,只是无法在 SIM 这个维度直接比较。
方言覆盖是 PilotTTS 相对有特色的地方,14 种中文方言加上跨方言合成,这个深度在开源系统里比较少见。这也是和它的应用场景(高德地图的语音导航、语音交互)比较匹配的能力方向。
副语言里 LAUGH_SPAN 的成功率很高,哭泣和咳嗽偏低(60% 上下)。论文里对咳嗽的分析是训练数据里这类事件少,声学变异大,这个解释是合理的。
项目主页有零样本克隆、情感合成、方言合成的音频 demo,可以直接试听效果:
https://amapvoice.github.io/PilotTTS/
HuggingFace 和 ModelScope 上有模型权重,GitHub 上有完整代码和 README:
https://huggingface.co/AmapVoice/PilotTTS
https://github.com/AMAPVOICE/PilotTTS
开源协议是 Apache-2.0,商业使用需要遵守协议要求,但条件相对宽松。
PilotTTS 做的事情不复杂:把一堆已有的开源模块(Qwen3、Q-Former、CosyVoice 3 的 tokenizer、w2v-BERT、HiFi-GAN)整合在一起,然后在数据质量上认真下功夫,用 20 万小时的精细处理数据训练出来。
在 Seed-TTS Eval 上,说话人相似度是有公开 SIM 分数的系统里的最高值,英文 WER 也是最低的,中文 CER 第二。情感控制主要情感类别优于 CosyVoice 3,副语言笑声类别明显领先,方言覆盖度和跨方言能力在开源系统里比较少见。
当然也有明显的局限:风格建模粒度有限,单码本设计对复杂场景有上限,mul-lingual 覆盖不如 CosyVoice 3 广,扩展情感类别不是最强的。
整体上,这个系统的价值更多在于:展示了在资源有限的条件下,通过数据工程和合理架构设计,能把性能推到什么位置,顺便把整套流水线方案开源出来,这对需要自建 TTS 能力的团队来说参考价值不低。
论文里有个细节挺实在——他们直接写了"通过精细的数据工程而非架构创新"(rather than through architectural novelty)来达到这个性能。这种表述在 AI 论文里不算常见,毕竟大家一般更愿意强调自己方法的新意。但这里说清楚了边界,知道自己在做什么,也知道优势从哪来的。
(项目代码和权重目前已经在 GitHub / HuggingFace / ModelScope 上公开,但具体的数据集暂未开放,论文里提到的完整数据流水线方案是公开的,模型训练所用的实际数据集目前不在公开范围内。)
2025 年到 2026 年上半年,TTS 这条赛道明显在提速。
先是阿里云的 Qwen3-TTS 在 2026 年 1 月开源,把多语言零样本克隆带到了一个相当高的水准,支持 10 种语言,用自研的 12Hz tokenizer;紧接着 Fish Audio 在 3 月发布 S2 Pro,用 4B + 400M 双自回归架构,宣称在 Seed-TTS Eval 上超过了所有已评估系统,包括谷歌和 OpenAI 的闭源服务;CosyVoice 3 同样在 5 月更新,0.5B 到 1.5B 都有,多语言覆盖进一步扩大。
竞争很激烈,而且比拼方向有些收敛——越来越多的团队在卷多语言、卷实时流式、卷极低延迟。
PilotTTS 走的路不完全一样。它没有强调流式推理,也没有强调多语言覆盖的宽度,而是专注在说话人相似度和中文场景的深度(方言、情感、副语言)上,用轻量级架构和严格数据工程去证明:20 万小时高质量数据,加上合理的设计选择,在特定评测维度上可以超过用更多数据训练的大系统。
从高德地图的业务背景来看,这个选择也是有逻辑的。语音导航和语音交互的核心诉求是音色稳定、方言覆盖、表达自然,不是多语言。所以你看到 PilotTTS 在这几个方向上下的功夫最深,而不是去卷日语韩语的支持。
这不能说哪种方向更对,只是不同团队根据自己的场景和资源在做不同的取舍。PilotTTS 开源出来之后,对于需要部署中文 TTS、有方言需求、或者想自建数据处理流水线的团队,是一个值得参考的选项。
几个实际使用时容易忽略的点:
依赖项比较多。除了 PilotTTS 自己的权重,还要单独下载 Qwen3-0.6B、w2v-bert-2.0、CosyVoice3-0.5B 三个第三方模型,加起来占用空间不小。建议在下载前确认本地磁盘有足够空间,网络也要稳定(HuggingFace 在国内访问可能需要用 ModelScope 镜像)。
两个模型文件分开用途。pilot_tts.pt是基础模型,只做零样本克隆。情感、方言、副语言这些功能需要加载pilot_tts_instruct.pt,两个文件不能混用配置文件。
方言合成对参考音频有一定质量要求。普通话到方言(Mandarin-to-Dialect)这个场景,参考音频的录音质量会影响说话人特征提取的效果,背景噪音大的音频效果会打折扣。
WebUI 是基于 Gradio 的。如果服务器端运行,注意防火墙和端口配置,默认端口是 9000。
整体来说,部署流程在 README 里写得比较清楚,有 conda 环境配置、依赖安装和示例代码,照着来基本能跑通,Python 3.10 是推荐版本。
目前来看,这个项目发布时间还短,社区的实际体验反馈还在积累中。论文给出的数据和方法已经比较完整,后续值得关注的是方言覆盖会不会进一步扩充,以及风格建模的改进方向能做到什么程度。
