让文字,在自己的电脑上变成声音。
先选系统,再选硬件,只看适合自己电脑的步骤。AMD、CPU 和 Mac 路线均未实测,已单独标注。
01 / 选择系统
NVIDIA:Windows 11 / RTX 5090 D 已实测。
NVIDIA 显卡安装
Windows 11 / NVIDIA RTX 5090 D 实测 · 2026.10.25
这个便携版运行时不需要 Python、Conda 或 CUDA 工具包。我们已从空目录完成重新下载、解压、启动和生成;电脑已有显卡驱动。
01准备系统和显卡驱动
需要 Windows 10/11 64 位(Intel/AMD x64)、支持 AVX2 的 CPU,以及约 6 GB 空闲磁盘空间。新电脑先装好显卡驱动,再继续下面的步骤。
在“设备管理器 → 显示适配器”确认 NVIDIA 显卡型号,到 NVIDIA 官方驱动下载页选择匹配的驱动。按安装程序提示完成,要求重启时先重启。
本 Windows 发布包依赖驱动提供的 Vulkan 运行库(vulkan-1.dll)。免装 AI 环境不等于免装驱动;缺少这个文件时,单加 --cpu 也解决不了。无需安装整套 Vulkan SDK 或 CUDA 工具包。
02下载程序与模型
- Windows 便携程序 v0.1.3,约 74 MB。
- 魔搭 Q8_0 模型直链,约 3.57 GB。也可以到魔搭模型文件页找
breeze-tts-2-q8_0.gguf。
本次使用 tardigrade4ai 提供的社区镜像,完整下载后与官方 Q8_0 的 SHA-256 一致,未另建重复镜像。不需要安装魔搭 SDK,也不要下载整仓库的所有量化版本。
03解压,把模型放在程序旁
解压程序,打开含有 breeze-server.exe 的那层文件夹,把 breeze-tts-2-q8_0.gguf 放进去。保留压缩包里的其他文件。
D:\BreezeTTS\
breeze-server.exe
libbreeze.dll
breeze-tts-2-q8_0.gguf
start-breeze.cmd
…压缩包内的其他文件这个 GGUF 包无需另外下载 audio_tokenizer/。
04启动,生成第一段声音
下载启动文件 start-breeze.cmd,放进同一文件夹,双击。它会先校验模型,再加载和预热,准备好后自动打开浏览器。使用期间保持启动窗口打开。
如果浏览器没有自动打开,稍等后手动访问 http://127.0.0.1:8088/。首次启动需要预热,暂时打不开不代表安装失败。
不下载启动文件,自己启动
在程序文件夹中打开终端,输入:
.\breeze-server.exe breeze-tts-2-q8_0.gguf --host 127.0.0.1 --port 8088 --webuiAMD 显卡安装
未实测依据 v0.1.3 发布说明与构建文档整理。本文没有在 AMD 显卡上验证兼容性、生成效果或速度。
沿用 Windows 便携包和 Q8_0 模型,通过 Vulkan 运行。当前没有单独的 AMD 下载包,这条路线也不需要安装 CUDA 或 ROCm。
01安装 AMD 显卡驱动
在“设备管理器 → 显示适配器”确认 AMD 显卡型号,到 AMD 官方驱动安装说明选择适用驱动,安装后按提示重启。项目要求驱动提供 Vulkan 1.2;旧显卡、核显和笔记本的实际支持情况取决于型号与驱动。
02下载并放好文件
下载 Windows x64 Vulkan 程序包与魔搭 Q8_0 模型。解压程序,把模型放到 breeze-server.exe 旁边,保留其余文件。CPU 也要支持 AVX2。
03打开本地网页
在程序文件夹里右键“在终端中打开”,使用 PowerShell 执行下面的命令。不要添加 --cpu,保留窗口运行。
.\breeze-server.exe breeze-tts-2-q8_0.gguf --host 127.0.0.1 --port 8088 --webui等待加载和预热,然后打开 http://127.0.0.1:8088/。8088 和相邻的 8089 端口都需要空闲。
04确认显卡参与,再生成短句
查看启动日志的设备信息,确认识别到 AMD 设备并使用 Vulkan 后端,例如 backend: Vulkan0。若只显示 CPU,则不能当作 AMD 显卡加速成功。然后继续下方的网页生成步骤,先用默认参数生成一句短中文。
显存不足可另行尝试 Q4_K;本文同样未验证其运行效果。不应把 NVIDIA 实测速度套用到 AMD 设备。依据:v0.1.3 发布说明、后端与驱动要求。
CPU 安装与运行
未实测以下两种方法均依据项目文档整理,没有在本机验证纯 CPU 生成、编译结果或耗时。
当前 v0.1.3 没有独立的 Windows CPU 预编译包。可以先用便携包的 CPU 模式;电脑没有 Vulkan 运行库时,再选择纯 CPU 编译。
方法 A:已有 Vulkan 运行库,使用 --cpu
- 下载 Windows x64 程序包与魔搭 Q8_0 模型;解压程序,把模型放到 breeze-server.exe 旁边,保留其他文件。
- 确认 CPU 支持 AVX2,系统已有 vulkan-1.dll。该发布包即使只用 CPU,仍有这个加载依赖。
- 先关掉其他 Breeze 启动窗口,在程序文件夹打开 PowerShell,执行:
.\breeze-server.exe breeze-tts-2-q8_0.gguf --cpu --host 127.0.0.1 --port 8088 --webui等待启动,确认日志使用 CPU 后端,再打开 http://127.0.0.1:8088/。用 VOICE DESIGN、CFG 1 和一句短文本开始,首次关闭流式生成。CPU 的实际速度取决于处理器和内存,本文没有耗时数据。
缺少 vulkan-1.dll 时,--cpu 无法消除现成程序的 DLL 依赖。请用下面的纯 CPU 编译方法。
方法 B:不依赖 Vulkan,自己编译纯 CPU 程序
这是进阶路线,也未实测。无需安装 Python、CUDA 或 Vulkan SDK,但需要 Git、CMake、Ninja 和支持 C++17 的编译器。
- 安装 Git for Windows 和 Microsoft C++ Build Tools。在安装器中选择“使用 C++ 的桌面开发”,确认包含 x64 MSVC 工具、Windows SDK 和“用于 Windows 的 C++ CMake 工具”(含 Ninja)。
- 从开始菜单打开 x64 的 Developer PowerShell / 开发者 PowerShell,让编译器工具可用。切换到一个新建的工作目录,依次执行下面的命令;每一步成功后再继续。
git clone --branch v0.1.3 --recursive https://github.com/HoppouAI/Breeze-TTS-2.cpp.git
cd Breeze-TTS-2.cpp
cmake -S . -B build-cpu -G Ninja -DCMAKE_BUILD_TYPE=Release -DBREEZE_VULKAN=OFF -DBREEZE_CUDA=OFF -DBUILD_SHARED_LIBS=OFF -DBREEZE_BUILD_SHARED=OFF
cmake --build build-cpu --target breeze-server --parallel从前面的魔搭链接下载 Q8_0 模型,把它放到仓库根目录(与 build-cpu 文件夹同级)。仍在仓库根目录执行:
.\build-cpu\breeze-server.exe .\breeze-tts-2-q8_0.gguf --cpu --host 127.0.0.1 --port 8088 --webui启动成功后打开同一个本地网页,继续网页生成步骤。CPU 需要支持构建所用指令集;不要把本机编译的程序直接当作所有旧电脑通用的便携包。
编译命令报错时先检查什么?
找不到 cl、cmake 或 ninja:确认安装了对应组件,并使用 x64 开发者终端。提示缺少 third_party/ggml:在仓库目录执行 git submodule update --init --recursive。其他编译或运行错误请保留完整日志,对照项目构建文档;本文尚未验证排错结果。
在网页里生成第一段声音
- 保持 VOICE DESIGN(音色设计)标签。
- TEXT TO SPEAK 填要读的文字;VOICE DESCRIPTION 填声音描述。
- 第一次可关闭 STREAM WHILE GENERATING,其他参数先用默认值。
- 点 GENERATE,出现 DONE 后点 DOWNLOAD WAV。
你好,欢迎来到我的博客。这是一段在电脑上生成的中文测试声音。声音描述:成年男性,标准普通话,语速适中,吐字清楚。要复现开头的“沉稳叙述”样音,可将 SEED 改为 1234。
本机实测
Windows 11、RTX 5090 D 上,全新下载的程序和模型在仅保留 Windows 系统工具的环境下,通过 Vulkan 显卡生成了这段 6.08 秒、24 kHz 单声道 WAV。CFG 为 1,Seed 为 1234;自动转写与上面的文字一致,波形无削波。未进行人工听感评测。
6.08 秒是音频时长,不是生成耗时。
验证范围与文件校验
本轮从 GitHub 重新下载 73,939,562 字节程序包,从魔搭重新下载 3,568,844,480 字节 Q8_0,完整校验后放入新目录。没有复制旧程序包、旧模型、缓存权重或转换工具。启动时排除 Python、Conda 等路径,只用 Windows 自带工具和下载文件。
已验证完整网络下载、解压、首次启动、网页生成、WAV 下载,以及缺程序、缺模型、模型未下载完整、端口占用时的提示。系统原有显卡驱动;未在重装系统或虚拟机中测试,也未运行 Mac、CPU、Q4_K、F16 或长篇配音。
Q8_0 SHA-256:a02bcc4b69b0601032727f8040c4942149b1b73aa0f69022fe5aaa6a8f0ef879
设置与使用经验
先用这组设置跑出第一段声音,再一次只改一个参数。这是“沉稳叙述”样音的配置,供起步参考。
首次可关闭流式生成。声音描述用:成年男性,标准普通话,语速适中,吐字清楚。
- 给预热一点时间。等浏览器自动打开,别因为几秒没反应就连点多个启动窗口。
- 从短句开始。同一段文字,Seed 42 生成了 5.60 秒,Seed 1234 生成了 6.08 秒;种子会影响结果,先固定种子比较。
- 生成后对照原文试听。一次自动转写把“博客”写成“播客”;仅凭转写不能判断是识别差异还是发音差异。DONE 代表生成结束,还需要检查成品。
- 保留一个启动窗口。关窗口会停止服务,下次双击重新启动。端口占用先关旧窗口;模型不完整或校验失败时,重新检查下载。
开头三段样音的生成设置
均用 Windows 便携版、Q8_0 和 VOICE DESIGN 生成,关闭流式输出。三段采用不同文本和音色描述,风格名称表示生成目标。已做自动转写和波形检查,未做人工听感评测。
| 样音 | CFG / Seed | 时长 |
|---|---|---|
| 沉稳叙述 | 1 / 1234 | 6.08 秒 |
| 轻柔陪伴 | 4 / 42 | 4.16 秒 |
| 明快讲解 | 4 / 777 | 4.80 秒 |
进阶:声音克隆与后期优化
这是另一套实际项目记录:用自己的录音,通过 Python / PyTorch 原版 Breeze-TTS-2 逐句克隆配音。运行机器为 Windows、RTX 5090 D。下面核对了当时的项目脚本与本机模型源码;显存占用、编译时间和成片测量值来自当时记录,本次没有重新跑性能对比。
前面的入门教程用 GGUF 便携版;本节用原版模型权重和已安装好的 Python 环境。两套模型与命令不能互换。本节按 NVIDIA 项目经验展示,不代表 AMD、CPU 或 Mac 已验证。
包含 tts_clone.py、timeline.py、mix.py、示例 JSON、逐字稿占位文件、中文 README、验证范围和 SHA-256 清单。已去掉本机固定目录、私人录音和原片素材;解压后按 README 填入自己的源码与模型位置。
公开版保留核心生成和混音参数,时间轴改成通用的顺序/节拍排句,不依赖原片音乐和画面数据。已实跑合成信号的后期流程与参数检查;公开改写版未重新跑真人克隆、快速路径或性能基准。脚本不负责安装完整 AI 环境。
下载校验
解压后的文件可按包内 SHA256SUMS.txt 校验。整个 ZIP 的 SHA-256:
63564a5d56e35c31bb6abcefe8f85b53542d6362cbec3e2b62c6493d124594d801 参考录音与逐句生成
这期从自己的录音中截取 6.55–15.50 秒,得到 8.95 秒的参考片段,转为 24 kHz 单声道,保存为 ref.wav。ref.txt 写完整、逐字一致的文本,包括重复和口头语。换成自己的录音时,也必须一起更换逐字稿。
参考音频和逐字稿先复制到纯英文工作目录,例如 D:\BreezeWork\。该项目曾在含中文路径时遇到进程静默退出、只留下空 WAV;这是当时的排错经验,不能据此认定所有中文路径都会失败。私人原始录音与个人目录不随本文提供。
字幕保留原稿;另外准备 lines_say.json 给 TTS 念。一句一条,示例如下:
[{"id":"L01","text":"你好,这是我的第一段声音克隆配音。"}]当时使用已配置好的独立 Conda 环境,解释器位于 envs\qwen3-tts\python.exe,加载魔搭下载的 BreezeBlue/Breeze-TTS-2 原版权重。环境名称是本机历史命名,实际运行的是 Breeze。项目自定义入口为 tools/audio/tts_clone.py,模型只加载一次,循环生成每句 WAV。
python tts_clone.py --repo D:\Breeze\breeze-tts --model D:\Breeze\Breeze-TTS-2 --lines lines_say.json --ref ref.wav --ref-text ref.txt --out vo_raw --seeds 42 --cfg 1 --eager --work-dir D:\BreezeWork\temp先激活对应环境,在解压后的脚本目录运行。--repo、--model 和 --work-dir 是去敏公开版新增参数;示例盘符需改成自己的位置。可先加 --validate-only 检查输入,再去掉它正式生成。补一句用 --only L02;覆盖已有结果需明确加 --overwrite,或换输出目录。此命令不能粘到 GGUF 程序目录运行。原版安装和官方单句入口见官方 PyTorch 仓库。
02 显存够用再加速:eager 与快速路径
这一期实际使用 eager 省显存路径。脚本传入 --eager 后,fast_all=False,不启用那组 CUDA Graphs / 编译加速。当时 TTS 约占 8 GB 显存,其他任务已经占了约 22 GB,因此没有选择快速路径。
同一个自定义脚本去掉 --eager,会设置 fast_all=True,启用 CUDA Graphs 和 torch.compile 相关快速阶段。脚本记录这台机器首次编译约 75 秒,缓存后准备约 20 秒,预热峰值约 26 GiB,之后约 8 GiB。这些是当时环境的记录,不是最低显存要求,也没有在本文重测加速倍数。
操作顺序:先保存并结束自己不需要的 GPU 任务,给首次编译、预热留足显存;先用一句短文本验证快速路径,再批量生成。显存不足、编译失败或结果异常时,加回 --eager 退回已用过的路径。不要只按预热后的占用估算所需显存。
注意两个不同设置:模型加载时的 attn_implementation="eager" 是 attention 实现;脚本的 --eager 控制是否关闭快速阶段。这个项目即使启用快速阶段,attention 参数仍然是 eager。
当时 Windows 快速路径的兼容配置是 triton-windows<3.5,并在导入 torch 前设置下面的环境变量,避开当时 static launcher 的 32 位整数溢出问题。该组合依赖当时的 PyTorch、Triton 与源码版本,不建议在新环境中盲目降级套用。
$env:TORCHINDUCTOR_USE_STATIC_CUDA_LAUNCHER = "0"官方原版 infer.py 用 --fast-all 开启快速路径;本项目封装则默认开启、用 --eager 关闭。不要把两个入口的参数混用。官方当前说明可用于核对模式和环境要求,本文 26 GiB 是本机历史预热记录。
03 这期实际生效的生成参数
| 项目 | 本期配置 |
|---|---|
| 模式 / 种子 | Voice Clone / 42 |
| guidance_scale / instruction | 1.0 / 不添加语气指令 |
| max_new_tokens / max_seq_len | 1500 / 2048 |
| repetition_penalty / fast_all | 1.1 / False |
| 主模型采样 | do_sample=True,temperature=0.9,top_k=50,top_p=1.0 |
| depth decoder 采样 | do_sample=True,temperature=0.9,top_k=50,top_p=1.0 |
| 原始输出 | 24 kHz、单声道、16-bit PCM;如 L01_s42.wav |
两组采样参数由 update_generation_config_for_breeze() 写入模型,项目脚本没有覆盖它们。克隆模式这期用 CFG 1.0;按描述设计音色的 Voice Design,或参考音频加语气指令的 Voice Direction,是另外的模式,不能把它们的 CFG 配置混为一谈。
准确的生成次数:所有句子先用 Seed 42 各生成一遍,不批量抽种子挑选。检查发现第 2 句漏读“五”,修改朗读文本后,仅这句用相同参数再生成一次。因此不是每句最终都只生成过一次。
04 让专有名词更好读,再检查漏字
字幕用原稿 lines.json,朗读用 lines_say.json。只把易误读的形式改成读音:GLM-5 →“GLM 五”,Harness² →“Harness 平方”,Gemini 3.5 →“Gemini 三点五”,64.2 →“六十四点二”;72.4、75.7 同理。
第 2 句第一次漏读“五”。后来加逗号分隔型号与数字:“原本,GLM 五,只有六十四点二分,Gemini 三点五 Flash,有七十二点四分。”保留 Seed 42 和其他参数,只补这句,再核对。
当时逐句用 faster-whisper large-v3,设置 language=zh、beam_size=5,提示词加入 Google、GLM、Gemini、Harness、Codex,辅助检查漏字。另用 Whisper medium 的 word_timestamps 对齐画面关键词。转写和时间戳都可能出错,最终仍需对照原文试听与校正。
05 成品语速 1.25 倍:生成后的处理
这里加快的是成品语速,不能算作模型推理提速。这期对每句原始 WAV 使用 FFmpeg 的 atempo=1.25,变速后再裁首尾静音。只做变速的命令示例:
ffmpeg -i L01_s42.wav -af "atempo=1.25" -ar 24000 -ac 1 -c:a pcm_s16le L01_fast.wav项目裁静音的方法:在归一化到 −1~1 的浮点波形中,找到绝对振幅大于 0.012 的首、尾采样点,开头多留 20 ms、结尾多留 80 ms。这是这期的阈值,轻声或气声可能被误裁;处理后需检查起音和尾字,不能作为所有声音通用值。
公开版在脚本目录运行下列命令,会生成 prepared/vo/ 和 prepared/plan.json;再次运行请换新的输出目录。可加 --bpm 80 把句子起点放到后续节拍,也可加 --bgm D:\MyAudio\licensed-bgm.wav 使用自己的音乐。
python timeline.py --lines lines_say.json --input vo_raw --out prepared --seed 42 --speed 1.25 --gap 0.25处理后的每句按 BGM 的小节、节拍安排起点,画面跟随实际配音时长。逐字时间戳要对应最终音频;若沿用变速前的时间戳,需要按变速比例及裁切偏移换算。
06 统一音量,让 BGM 给人声让位
- 逐句统一音量:mix.py 对绝对振幅大于 0.01 的样本计算 RMS,再缩放到 0.12;并非对整句所有静音一起计算。
- BGM 自动压低:有人声时降低 7 dB,压低的时间常数 80 ms,恢复的时间常数 400 ms。数值取自这期时间轴与混音脚本。
- 最后统一响度:
loudnorm=I=-14:TP=-1.5:LRA=11。这是目标值,当时成片记录为约 −14.7 LUFS、峰值 −1.4 dBFS;后者是数字峰值读数,不能直接当作真峰值 dBTP。
python mix.py --plan prepared\plan.json --out final_mix.wav公开版相对音频路径以 plan.json 所在目录为准,没有 BGM 也能运行,输出是 48 kHz 双声道 PCM WAV。短音乐会循环,需自行检查循环点;原项目的音效、音乐剪段和画面事件未打包。
混完之后再测量、试听,避免削波、背景音乐盖住人声。RMS 对齐、BGM 压低和整体响度标准化分别解决不同问题,不是把同一个“音量”重复调三遍。
核对依据:本地 harness2 的 tts_clone.py、timeline.py、mix.py,以及原版 runtime.py 与 fast_streaming.py(2026.10.25 核对)。官方原版文档可查模式、快速入口与许可。模型权重及自托管输出限研究和非商业用途;商用请支持开头的官方服务并选择具备商用权限的方案。
量化版本怎么选
第一次先选 Q8_0。显存紧张再考虑 Q4_K;F16 文件更大,本文未做音质对比。
| 模型 | 下载大小 | 本文验证 |
|---|---|---|
| Q4_K · 量化 | 约 2.54 GB | 未运行 |
| Q8_0 · 量化 | 约 3.57 GB | 网页生成通过 |
| F16 · 非量化浮点 | 约 6.28 GB | 未运行 |
GB 按十进制计算。显存还包含运行开销;量化不保证更快。初次使用先避开文件名带 -dd 的实验版本。
遇到问题
找不到模型?
确认文件下载完整、名称是 breeze-tts-2-q8_0.gguf,且与 breeze-server.exe 在同一层。启动文件也要在这一层,不能留在“下载”文件夹里。
缺少 vulkan-1.dll?
预编译包需要显卡驱动提供这个运行库,添加 --cpu 也不能消除它的 DLL 加载依赖。可更新厂商驱动,或按 CPU 路线编译关闭 Vulkan 的纯 CPU 程序。
网页打不开?
先等校验、加载和预热完成。若旧程序占用了端口,先关旧窗口;也可在手动命令中把 8088 改为 8098,再访问 http://127.0.0.1:8098/。还需确保相邻的 8099 端口空闲。
生成很慢?
检查启动窗口是否显示 Vulkan 显卡,是否回退到了 CPU,并检查显卡驱动。本文没有实测 CPU 或其他显卡的速度。
macOS 安装
VoiceStudio / audio.cpp · 仅核对现行文档,尚未实测
Mac 采用独立的图形化应用路线。下面四步根据项目文档整理;它与 Windows 便携包使用不同的引擎和模型文件。
01确认 Mac 型号
打开“ → 关于本机”,确认是 Apple Silicon(M 系列芯片),系统为 macOS 13.3 或更新。VoiceStudio 文档要求约 10 GB 空间用于应用、环境和模型,建议另留余量。Intel Mac 的 VoiceStudio 本地后端目前不受支持。
02下载并安装应用
前往 VoiceStudio 发布页,选择文件名带 mac-arm64.dmg 的安装包,按发布页的 SHA256SUMS 校验。打开 DMG,把 VoiceStudio 拖进“应用程序”,再启动应用。首次设置会自动准备应用所需环境;按应用提示完成。
03在应用里安装引擎与模型
进入 Settings → Models,找到 Breeze-TTS-2 的 audio.cpp 模型,按界面安装;在 audio.cpp 引擎行点击 Install runtime。在 Model Catalogue 中明确选择 audiocpp,并在 Weights 中确认 Breeze-TTS-2 Q8_0 已安装。
此引擎的 Q8_0 约 4.73 GiB。不要放入 Windows 那份 3.57 GB GGUF;同为 Q8_0,不代表文件兼容。
04从短句开始生成
选择 Breeze-TTS-2 / audiocpp,用音色设计模式输入一句中文和声音描述,再生成试听。引擎会在第一次生成时启动。Mac 这条路线尚未在本机验证,按钮名称与排错请对照当前引擎文档。
只想先体验声音,可以直接使用开头的官方网页服务,不必等待本地安装。
遇到问题
我是 Intel Mac,可以照着装吗?
这条 VoiceStudio 路线的本地后端不支持 Intel Mac。可以使用官方网页服务,或按项目文档连接另一台电脑上的后端。
为什么不能用 Windows 的模型?
两条路线的模型打包格式不同。请在 VoiceStudio 的 Model Catalogue 中安装 audio.cpp 对应的 Breeze-TTS-2,不要把同名模型直接搬过去。
安装或启动没有成功?
先核对 arm64 安装包、系统版本和可用磁盘空间,再查看macOS 安装说明与应用给出的错误文档。本文尚未在 Mac 上验证排错结果。
来源与版本
- Breeze-TTS-2.cpp v0.1.3 · 实测程序
- 魔搭 GGUF 镜像 · 本轮实际下载来源
- HoppouAI 原始 GGUF 仓库 · 转换来源与校验信息
- LunarG Windows 文档 · 显卡驱动提供 Vulkan 运行库
- VoiceStudio audio.cpp 文档 · Mac 候选,仅核对文档
- 原始讨论
程序代码许可与模型许可不同。Breeze 模型及自托管输出受研究和非商业许可限制。