引擎详解
逐个介绍 Mizuoto 内置的七个语音合成引擎和语音识别引擎:模型目录、能力、音色方式、语言、许可、训练方法和各自需要安装什么。
本页的数据来自各引擎的清单(mizuoto/core/engines/manifests/<id>.toml)。本机上实际的情况用命令行查看:
mizuoto engine list # 引擎、可用状态、许可
mizuoto doctor # 本机上各引擎还缺什么
mizuoto engine info qwen3tts # 变体、参数、选项和模型
mizuoto model spec qwen3tts/1.7b-base # 这个模型接受的音色方式、语言和参数
mizuoto model speakers cosyvoice/cosyvoice-300m-sft # 预置说话人Web UI 中,模型 › 引擎 列出每个引擎的可用状态、设备、精度、许可和 选项,模型 › 模型 列出模型目录。
每个引擎是怎样实现的、与上游项目的结果一致到什么程度,见 引擎参考。
一览
| 引擎(id) | 模型 | 采样率 | 语言 | 擅长 | 训练 | 许可 |
|---|---|---|---|---|---|---|
Qwen3-TTS(qwen3tts) | 1.7B / 0.6B 的 Base、CustomVoice,1.7B VoiceDesign | 24 kHz | 10 种 | 克隆、带指令的预置说话人、按描述设计音色、逐帧流式输出 | 说话人微调 | Apache-2.0 |
CosyVoice(cosyvoice) | Fun-CosyVoice 3 0.5B、CosyVoice 2 0.5B、300M / SFT / Instruct | 22.05 / 24 kHz | 中英日韩粤(v3 更多) | 逐 token 流式输出、流式文本输入、音色转换、指令 | LLM、LLM + flow | Apache-2.0 |
F5-TTS(f5tts) | F5-TTS v1 Base、F5-TTS Base、E2-TTS Base | 24 kHz | 中、英 | 精确时长、语音编辑 | 全量微调 | 代码 MIT,权重 CC-BY-NC-4.0 |
GPT-SoVITS(gptsovits) | v2、v2Pro、v2ProPlus、v4、v5 Turbo | 32 / 48 kHz | 中英日韩粤 | 3–10 秒少样本克隆,音色专属权重 | 音色权重 | MIT |
OmniVoice(omnivoice) | OmniVoice | 24 kHz | 600 多种 | 多语言、按属性设计音色、自带音色 | 全量、LoRA | Apache-2.0 |
VoxCPM(voxcpm) | VoxCPM2、1.5、0.5B | 48 / 44.1 / 16 kHz | 30 种(1.5 和 0.5B:zh、en) | 有无文本均可克隆、按描述设计音色、指令 | 全量、LoRA | Apache-2.0 |
Fish Speech(fishspeech) | S2 Pro | 44.1 kHz | 约 50 种 | 表现力强的克隆、多段参考、对话 | LoRA | Fish Audio Research License(需接受) |
IndexTTS(indextts) | IndexTTS-1.5、2、2.5 | 24 / 22.05 kHz | 中、英(2.5 加日、西) | 无文本克隆、情感控制 | 无 | bilibili Model Use License(需接受) |
语音识别(asr) | Whisper large-v3-turbo | 16 kHz | 约 100 种 | 为参考音频和数据集生成文本 | 无 | MIT |
能力名称与界面一致,例如 克隆音色、无文本克隆、预置说话人、按描述设计、按属性设计、自带音色、指令、流式输出、流式文本输入、批量、长文本。下文"参考音频"一栏给出每段参考音频允许的时长范围;超出时按 tts.reference_policy 拒绝或裁剪(见 配置)。
各引擎需要什么
每个引擎都由 Mizuoto 自己实现,运行在服务器自己的进程里,使用 Mizuoto 所在的那一个 Python 环境。torch 能在其中导入、引擎的实现已安装时,引擎就是可用的;mizuoto doctor(以及 模型 › 引擎)会说明哪些引擎可用,其余的缺什么、用什么命令安装。
| 引擎 | 需要 | 可选依赖 | 设备 |
|---|---|---|---|
| Qwen3-TTS、CosyVoice、F5-TTS、OmniVoice、VoxCPM、语音识别 | torch(2.8 或更新) | — | GPU(NVIDIA、AMD、Intel、Apple)、CPU |
| GPT-SoVITS | torch | mizuoto[gptsovits-ja](日语:pyopenjtalk 0.4.1,需用 CMake 和 C++ 编译器从源码构建)、mizuoto[gptsovits-ko](韩语:python-mecab-ko、jamo) | GPU(NVIDIA、AMD、Intel、Apple)、CPU |
| Fish Speech | torch、mizuoto-fishspeech 包 | — | GPU(NVIDIA、AMD、Intel、Apple)、CPU |
| IndexTTS | torch、mizuoto-indextts 包 | mizuoto-indextts[ja](IndexTTS-2.5 的日语:fugashi、unidic-lite) | GPU(NVIDIA、AMD、Intel、Apple)、CPU |
- 两个需接受许可的引擎因为许可的缘故单独发布;装在同一个环境里时会自动向 Mizuoto 注册。它们的模型仍需先接受许可(见下文)。
- 缺少某种语言的可选依赖时,这种语言的文本会以
capability_not_supported失败,提示中给出安装命令,例如pip install 'mizuoto[gptsovits-ja]'。 - 所有引擎都能在 CPU 上运行,但慢得多。加速选项是
compute.compile,见 性能与加速。
许可
| 许可 | 引擎 | 说明 |
|---|---|---|
| 需接受(gated) | Fish Speech(fish-audio-research@2026-03-07)、IndexTTS(bilibili-model-use@2025-09-09) | 引擎是单独的包(mizuoto-fishspeech、mizuoto-indextts);下载模型和共享文件、合成都要求先接受许可:模型 › 引擎 的 接受许可,或 mizuoto engine accept-licence <id>。mizuoto engine licence <id> 打印全文 |
| 非商用权重 | F5-TTS | 预训练权重为 CC-BY-NC-4.0,不需要接受,但结果带有非商用标记和提示 |
| 不能用于训练其他引擎 | Fish Speech、IndexTTS(trains_others = false) | 它们合成的结果不能加入其他引擎的训练数据集 |
结果会带上引擎的许可标记和提示(例如 Fish Speech 的 "Built with Fish Audio"),显示在结果下方。
Qwen3-TTS
阿里通义千问的 12 Hz 语音大模型。适合:中英等 10 种语言的高质量克隆、带情绪/语速指令的预置说话人,以及用一句话描述生成新音色。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
qwen3tts/1.7b-base | Base(克隆) | 4.3 GB | 6.5 GB | 是 |
qwen3tts/0.6b-base | Base(克隆) | 2.4 GB | 4 GB | |
qwen3tts/1.7b-custom-voice | CustomVoice(预置说话人、指令) | 4.3 GB | 6.5 GB | 是 |
qwen3tts/0.6b-custom-voice | CustomVoice 0.6B(预置说话人) | 2.4 GB | 4 GB | |
qwen3tts/1.7b-voice-design | VoiceDesign(按描述设计) | 4.3 GB | 6.5 GB | 是 |
- 能力:Base 有 克隆音色、无文本克隆;CustomVoice 有 预置说话人、指令(0.6B 没有指令:上游会静默忽略,所以 Mizuoto 不声明);VoiceDesign 有 按描述设计。所有变体都支持 流式输出(逐帧,在 GPU 上约 0.3 秒后输出第一段音频)、批量(每批最多 8 条)和 种子。
- 预置说话人:aiden、dylan、eric、ono_anna、ryan、serena、sohee、uncle_fu、vivian。
- 语言:zh、en、de、it、pt、es、ja、ko、fr、ru。
- 参考音频:1–30 秒,采样率至少 16 kHz(推荐 3–20 秒)。带上文本时更贴近原音色。
- 长文本:上游不切分长文本,由 Mizuoto 分段。
- 训练:Teach it a speaker(
speaker,仅 1.7B Base):上游的单说话人微调(sft_12hz.py,在 Mizuoto 中重新实现),Base 学会数据集的音色,导出为以它为预置说话人的 CustomVoice 新模型。几分钟的单人语音即可;1.7B 需要 24 GB 以上显存。 - 加载选项:注意力按注意力设置选择。
fused_projections(默认关闭)是快速模式:每层的 q/k/v 与 gate/up 投影各合并为一次矩阵乘法,在 GPU 上再快几个百分点,但音频不再与原实现逐位一致(输出参数中会标注fused_projections)。
CosyVoice
阿里通义的 LLM + 流匹配语音合成。适合:低延迟的逐 token 流式播放、边写边说(流式文本输入)、把一段录音转换成另一个音色,以及方言、情绪和语速指令。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
cosyvoice/cosyvoice3-0.5b | Fun-CosyVoice 3 | 4.2 GB | 6 GB | 是 |
cosyvoice/cosyvoice2-0.5b | CosyVoice 2 | 2.9 GB | 5 GB | 是 |
cosyvoice/cosyvoice-300m | CosyVoice 1(300M) | 2.2 GB | 3.5 GB | |
cosyvoice/cosyvoice-300m-sft | CosyVoice 1 SFT(预置说话人) | 2.2 GB | 3.5 GB | |
cosyvoice/cosyvoice-300m-instruct | CosyVoice 1 Instruct | 2.2 GB | 3.5 GB |
| 变体 | 采样率 | 主要能力 |
|---|---|---|
| v1_base | 22.05 kHz | 克隆音色、无文本克隆、音色转换、流式输出、语速、行内标签、长文本 |
| v1_sft | 22.05 kHz | 以上加 预置说话人(无行内标签) |
| v1_instruct | 22.05 kHz | 预置说话人、指令、流式输出、语速、行内标签、长文本(不能克隆) |
| v2 | 24 kHz | 克隆音色、无文本克隆、指令、音色转换、流式输出、流式文本输入、语速、行内标签、长文本 |
| v3 | 24 kHz | 同 v2,另有 发音控制,没有 长文本 |
- 语言:zh、en、ja、ko、yue;v3 为 zh、en、ja、ko、de、es、fr、it、ru、yue。
- 预置说话人(v1 SFT / Instruct):中文女、中文男、日语男、粤语女、英文女、英文男、韩语女。
- 行内标签:v1 为
[laughter]、[breath]、<strong></strong>;v2 另有<laughter></laughter>;v3 为[breath]、[laughter]、[cough]、[sigh]等 11 个。 - 参考音频:1–30 秒,至少 16 kHz。
- 流式:v2/v3 逐 token 流式输出;流式文本输入需要参考音频的文本(零样本克隆或 instruct2)。
- 训练(GPU 或 CPU):Fine-tune the language model(
llm)和 Fine-tune the LLM and the flow(llm_flow),起点为 v1_base、v2、v3,按上游 LibriTTS 流程,至少 60 秒数据,导出为新模型。只训 LLM 时韵律与发音跟随数据集;连 flow 一起训时音色也跟随数据集。 - 共享文件:
cosyvoice/wetext(13 MB,把数字、日期和单位写成文字的文本规范化语法),随第一个模型一起下载。 - 加载选项:
fp16(GPU 上用半精度:更快,结果略有不同)。
F5-TTS
流匹配语音合成,从一段短音频和它的文本克隆音色。适合:精确控制生成时长,以及只替换录音中的几处词句(语音编辑)。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
f5tts/v1-base | F5-TTS v1 Base | 1.3 GB | 2.5 GB | 是 |
f5tts/base | F5-TTS Base | 1.3 GB | 2.5 GB | |
f5tts/e2-base | E2-TTS Base | 1.3 GB | 2.5 GB |
- 能力(三个变体相同):克隆音色、语速、时长、长文本、种子、流式输出(按块)、语音编辑。克隆必须有参考音频的文本:没有文本时,开启
tts.auto_transcribe且已下载语音识别模型就会自动转写。 - 语言:zh、en。采样率 24 kHz。
- 参考音频:1–12 秒,至少 16 kHz。
- 许可:代码 MIT,预训练权重 CC-BY-NC-4.0(在 Emilia 上训练),不能商用;不需要接受许可,结果带有提示。
- 训练:Fine-tune the model(
full):上游finetune_cli的流程,整个模型继续训练,导出为同类新模型。最好有一小时以上语音,几乎必须用 GPU;结果继承 CC-BY-NC-4.0。 - 加载选项:
ode_method(euler或midpoint)。
GPT-SoVITS
从 3–10 秒音频少样本克隆,也是经典的微调路线:每个音色可以有自己的 GPT 和 SoVITS 权重,按请求切换。适合:用几分钟录音训练一个专属音色。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
gptsovits/v2-base | v2 | 249 MB | 2.5 GB | |
gptsovits/v2pro-base | v2Pro | 303 MB | 2.5 GB | 是 |
gptsovits/v2proplus-base | v2ProPlus | 339 MB | 2.8 GB | |
gptsovits/v4-base | v4 | 937 MB | 4 GB | |
gptsovits/v5turbo-base | v5 Turbo | 934 MB | 4 GB |
- 能力:克隆音色、多段参考(最多 4 段)、训练音色、语速、批量(最多 20 条)、长文本、流式输出、种子;v2、v2Pro、v2ProPlus 另有 无文本克隆。
- 采样率:v2 / v2Pro / v2ProPlus 为 32 kHz,v4 / v5 Turbo 为 48 kHz。
- 语言:zh、en、ja、ko、yue。日语需要可选依赖
mizuoto[gptsovits-ja],韩语需要mizuoto[gptsovits-ko]。 - 参考音频:3–10 秒。
- 音色权重:音色可以带一对 GPT(
.ckpt)和 SoVITS(.pth)权重,版本与模型变体一致时使用,否则给出提示并改用克隆。用mizuoto voice add-weights <音色> -e gptsovits -f gpt=x.ckpt -f sovits=y.pth添加。 - 共享文件:每个模型都需要
gptsovits/encoders(1.0 GB)、gptsovits/g2pw(562 MB)、gptsovits/nltk-data、gptsovits/open-jtalk,随第一个模型一起下载;训练 v2、v2Pro、v2ProPlus 还需要对应的判别器gptsovits/s2d-*。 - 训练:Fine-tune a voice(
speaker):上游的完整流程(文本特征、语音特征、语义 token、训练 SoVITS、训练 GPT),导出为音色专属的一对权重。一到十分钟的单人语音;GPU 上几分钟,CPU 上几小时。v4 和 v5 Turbo 以 LoRA 训练 SoVITS。
OmniVoice
小米的扩散语言模型语音合成。适合:小语种(600 多种语言)、不提供参考音频时用模型自带的音色,以及按性别、年龄、音高、口音、方言等属性设计音色。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
omnivoice/omnivoice | OmniVoice | 3.1 GB | 5 GB | 是 |
- 能力:克隆音色、按属性设计、自带音色、行内标签、发音控制、语速、时长、批量(最多 8 条)、长文本、种子。克隆时 Mizuoto 总会提供文本(缺少时由语音识别补全),所以 OmniVoice 不会自己加载 Whisper。
- 设计属性:gender(male、female)、age(child … elderly)、pitch(very low pitch … very high pitch)、style(whisper)、accent(american accent 等 10 种)、dialect(河南话、四川话、东北话等 12 种)。不接受自由描述。
- 行内标签:
[laughter]、[sigh]、[question-en]、[surprise-wa]等 13 个。 - 参考音频:1–20 秒,至少 16 kHz。采样率 24 kHz。
- 选项:
packed_guidance(默认关闭)是快速模式:在 GPU 上克隆约快四分之一,此时每个结果是该请求的另一次生成,而不是原始实现给出的结果。 - 训练:Fine-tune the model(
full)和 Fine-tune with LoRA(lora,导出时合并),都导出为新模型。全量微调适合用数小时语音学习新语言或风格,需要 24 GB 以上显存;LoRA 更轻。
VoxCPM
OpenBMB 的无离散分词语音合成:逐个“块”(patch)生成连续的语音潜变量(由 MiniCPM-4 语言模型和每块一个小扩散模型完成),中间没有语音编码。适合:自然的音色克隆(有无参考文本均可)、用一句描述生成音色、对克隆的音色加风格指令,以及 30 种语言的 48 kHz 合成(VoxCPM2)。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
voxcpm/2 | VoxCPM2 | 5.0 GB | 6.5 GB | 是 |
voxcpm/1.5 | VoxCPM 1.5 | 2.0 GB | 3 GB | |
voxcpm/0.5b | VoxCPM 0.5B | 1.6 GB | 2.5 GB |
- 能力:VoxCPM2:克隆音色、无文本克隆、按描述设计、指令、自带音色、流式输出(每 40 毫秒一块)、种子。VoxCPM 1.5 和 0.5B:克隆音色(需要参考文本,缺少时由语音识别补全)、自带音色、流式输出、种子。
- 克隆:有参考文本时,VoxCPM2 同时把参考音频作为独立的参考和待续写的开头(与上游演示相同;选项 reference_prefix 关闭后只续写);没有文本时只作为参考。VoxCPM 1.5 和 0.5B 以续写方式克隆。
- 描述与指令(VoxCPM2):按上游的做法写在文本前的括号里:
(年轻女性,温柔甜美)你好。中英文均可;汉语方言也这样指定(粤语、四川话……)。 - 参数:步数(每块扩散的欧拉步数,10)、引导强度(2.0)、文本规范化(默认关闭;由 wetext 读出数字、日期和符号)、最大生成 token 数(块数,4096)。选项:
min_len、retry_badcase(默认开启:结果比文本长得多时用下一个种子重新生成,最多retry_badcase_max_times次;流式时不重试)、retry_badcase_ratio_threshold、reference_prefix。 - 语言:VoxCPM2 支持 30 种(ar、my、zh、da、nl、en、fi、fr、de、el、he、hi、id、it、ja、km、ko、lo、ms、no、pl、pt、ru、es、sw、sv、tl、th、tr、vi),不需要语言标签,按原文朗读。VoxCPM 1.5 和 0.5B:zh、en。
- 参考音频:1–30 秒,至少 16 kHz。输出:48 kHz(VoxCPM2)、44.1 kHz(1.5)、16 kHz(0.5B)。
- 精度:与上游相同,除 Apple 设备(fp32)外都用模型自带的 bf16;需要全精度时设
engines.voxcpm.dtype fp32。 - 未包含:上游可选的参考音频降噪(ZipEnhancer,ModelScope 流水线)与时间戳;两者在上游默认都关闭。
- 训练:Fine-tune the model(
full)和 Fine-tune with LoRA(lora),即上游自己的方案(train_voxcpm_finetune.py及其按模型的配置),结果都导出为新模型;LoRA 模型把基础权重与适配器放在一起,加载时按上游的方式应用。超参数留为 0 时取该模型的方案值。在 GPU 上与上游相同(fp32 权重,bf16 自动混合精度);在 CPU 上用 fp32(上游本身无法在 CUDA 以外训练)。VoxCPM2 的全量微调约需 40 GB 内存;LoRA 少得多。
Fish Speech
Fish Audio S2 Pro:双自回归模型,约一千万小时、五十种左右语言的训练数据。适合:富有表现力的克隆、自由形式的行内标签(如 [laughing])和多说话人对话。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
fishspeech/s2-pro | S2 Pro | 10.5 GB | 22 GB | 是 |
- 能力:克隆音色、多段参考(最多 4 段)、行内标签、对话、流式输出(按段)、种子。采样率 44.1 kHz。
- 参考音频:2–30 秒。
- 许可:Fish Audio Research License,需要接受(
fish-audio-research@2026-03-07),不可商用,结果不能用于训练其他引擎,结果下方显示 "Built with Fish Audio"。 - 设备:GPU 上用 bf16;CPU 上用 fp32(bf16 在 CPU 上是模拟的,慢得多)。显存需求约 22 GB。
- 训练:Fine-tune with LoRA(
lora,GPU 或 CPU):上游的 LoRA 流程(提取语义 token、打包、训练、合并),导出为新模型。上游提醒它学到的更多是说话风格而不是音色;需要 24 GB 显存,结果仍受 Fish Audio 研究许可约束。 - Mizuoto 目录中没有 int8 版本(官方没有公开该仓库)。
IndexTTS
哔哩哔哩的零样本语音合成:不需要文本就能从一段音频克隆。适合:情感控制——IndexTTS-2 可以用一段音频、八个情感权重或一句描述指定情感;2.5 增加日语、西班牙语和语速。
| 模型 | 变体 | 大小 | 显存 | 推荐 |
|---|---|---|---|---|
indextts/v1.5 | IndexTTS-1.5 | 1.6 GB | 4 GB | |
indextts/v2 | IndexTTS-2 | 5.6 GB | 9 GB | 是 |
indextts/v2.5 | IndexTTS-2.5 | 5.2 GB | 9 GB |
| 变体 | 采样率 | 主要能力 |
|---|---|---|
| v1_5 | 24 kHz | 克隆音色、无文本克隆、发音控制、长文本 |
| v2 | 22.05 kHz | 以上加 参考音频情感、情感滑块、文本情感、流式输出 |
| v2_5 | 22.05 kHz | 同 v2,另有 语速;语言 zh、en、ja、es |
- 情感权重(八个,上游顺序):happy、angry、sad、afraid、disgusted、melancholic、surprised、calm。参考音频情感可以设强度;文本情感需要加载选项
use_qwen_emo(默认开,约 1.2 GB)。 - 参考音频:1–30 秒。
- 许可:bilibili Model Use License,需要接受(
bilibili-model-use@2025-09-09);允许商用,但结果不能用于训练其他引擎;结果下方的提示会提醒:IndexTTS 的免责声明禁止未经声音主人许可克隆其声音。 - 语言:IndexTTS-2.5 的日语文本需要可选依赖
mizuoto-indextts[ja]。 - 共享文件:IndexTTS-2 和 2.5 需要
indextts/w2v-bert(2.2 GB)、indextts/campplus、indextts/bigvgan,IndexTTS-2 还需要indextts/semantic-codec,随模型一起下载。 - 训练:无。
- 加载选项:
use_qwen_emo(默认开)、use_torch_compile(v2/v2.5:与compute.compile一样编译 s2mel DiT 和 BigVGAN,见 性能与加速)。
语音识别(asr)
Mizuoto 自己使用的内部引擎:Whisper large-v3-turbo,由 Mizuoto 自己实现,约 100 种语言,为没有文本的参考音频、音色和数据集生成文本。它不出现在合成的模型列表里,也不出现在 GET /v1/models 中。
| 模型 | 大小 | 显存 | 推荐 |
|---|---|---|---|
asr/whisper-large-v3-turbo | 1.5 GB | 2 GB | 是 |
mizuoto model download asr/whisper-large-v3-turbo
mizuoto asr clip.wav --lang zh转写结果按音频的 SHA-256 和模型缓存,同一段音频不会重复识别。设置 tts.auto_transcribe(默认开)和 tts.asr_model 控制自动转写,见 配置。