独立工作室的 AI Voice Cloning 完全建置手册
——脱离平台束缚,用自己的声音说自己的话
从零开始自架本地语音克隆系统,完整踩坑记录
为什么要这样做?
现在市面上的声音合成平台,不外乎两种。
免费的 — 声音千篇一律,你的影片跟别人的影片用的是同一个声音,毫无辨识度。听众听了三秒就知道你用哪个平台,特色从哪里来?
收费的 — 按字数算钱,每次生成都在心里默算这段话值多少钱,录到一半还在犹豫要不要重录。规模一大,每个月的账单就是一个让你皱眉头的数字。
有没有第三条路?
有。自己建。
用开源的 AI 模型,在自己的电脑上架设一套本地语音合成服务,用你自己的声音,生成你自己的内容。不限字数、不收费、声音是你的、风格是你的。这就是独立工作室该有的样子。
这套系统是什么?
很多人第一次听到「自己建TTS」会以为是要自己写一个语音合成程序。
不是的。
这件事更接近「自己架一台服务器」的概念:
| 层次 | 是什么 | 你要做的事 |
|---|---|---|
| AI模型 | 语音合成的大脑,别人训练好的 | 下载来用 |
| 框架 | 让模型能跑起来的环境 | 安装设定 |
| 你的声音 | 给模型参考的样本 | 录一段4~6秒的音频 |
| 你的code | 串接输入输出的胶水 | 这才是你写的部分 |
架设完成后,你的电脑上会跑着一个有 Web 界面的本地服务。你可以在浏览器里操作,也可以用程序调用它的 API,让它成为你自动化流水线的一环。
本文使用的模型是 GPT-SoVITS,理由很简单:中文效果顶尖、界面全中文、Voice Cloning 只需要 4~6 秒录音、开源免费可商用。
你需要什么?
硬件
这套系统对硬件要求不高。本文的实测环境是一台没有独立显卡的普通笔记本,纯 CPU 运算。
| 配置 | 生成100~200字的时间 |
|---|---|
| 有 NVIDIA 显卡(6GB VRAM以上) | 约10~30秒 |
| 纯 CPU | 约150~250秒 |
如果你的使用量不大,纯 CPU 完全够用。每天录几段影片配音,等个几分钟出音频,完全在可接受范围内。
软件
- Windows 10 / 11
- Python(本文使用 3.11,原因后述)
- Miniconda(Python 版本管理工具)
- VS Code(开发环境)
- Git
一个你必须先懂的概念:Python 虚拟环境
在开始安装之前,有一个概念你必须先搞清楚,否则后面会踩很多坑。
Python 的套件管理是有「环境」概念的。
想象你的电脑里有很多个独立的仓库:
你的电脑
├── 全局 Python 3.14(系统预设)
├── conda 环境 tts(Python 3.11,我们建的)
└── .venv(VS Code 有时候会自动建)每个仓库里的套件完全独立。装在 A 仓库的东西,B 仓库找不到。
这就是为什么很多人装套件装到怀疑人生:明明装了,跑的时候还是说找不到。原因通常只有一个——装在了错的仓库。
GPT-SoVITS 需要 Python 3.11,但你的电脑可能已经装了更新的版本(本文实测环境是 3.14)。解法是用 Miniconda 建立一个独立的 Python 3.11 环境,跟系统的 Python 完全隔离,互不干扰。
这个概念理解了,后面的安装步骤就不会觉得奇怪了。
安装步骤
Step 1:安装 Miniconda
在 VS Code 终端执行:
winget install Anaconda.Miniconda3安装完成后关闭 VS Code 重新开启,让环境变量生效。(本文作者秉持 all-in-one 的心态,所有操作都在 VS Code 的终端内完成。当然你也可以用系统独立的终端执行,效果相同。)
重开后执行以下指令允许 PowerShell 执行脚本:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser确认 conda 安装成功:
conda --version看到版本号就代表成功了。
Step 2:建立 Python 3.11 环境
接受 Anaconda 的服务条款(三行分别执行,每行跑完会询问是否同意,输入 Y 按 Enter 确认):
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r
conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/msys2建立专属环境:
conda create -n tts python=3.11 -y启动环境(之后每次都要做这步):
conda activate tts终端前面从 (base) 变成 (tts) 就代表成功。
Step 3:下载 GPT-SoVITS
进入你的工作目录,clone 项目:
cd D:\你的工作目录
mkdir tts-service
cd tts-service
git clone https://github.com/RVC-Boss/GPT-SoVITS.git
cd GPT-SoVITSStep 4:安装套件
pip install -r requirements.txt这步骤会下载很多套件,需要几分钟,让它跑完。
⚠️ 踩坑记录:版本冲突
requirements.txt 装完后,有几个套件版本会互相冲突,需要手动修正:
# gradio 版本太新,降级
pip install gradio==4.44.0
# starlette 与 fastapi 版本问题
pip install "fastapi==0.115.0" "starlette>=0.37.2,<0.39.0"
# jinja2 版本问题
pip install jinja2==3.1.4
# 其他缺少的套件
pip install psutil pyyaml ffmpeg-python
conda install -c conda-forge editdistance⚠️ 踩坑记录:torchaudio 在 Windows 的问题
新版 torchaudio 在 Windows 上依赖 torchcodec,但 torchcodec 在 Windows 不支持。 需要安装兼容版本:
pip install torchaudio==2.9.0 torch==2.9.0⚠️ 踩坑记录:NLTK 语言资源
第一次生成中英混合文字时,需要下载 NLTK 的英文语言模型:
python -c "import nltk; nltk.download('averaged_perceptron_tagger_eng')"Step 5:下载预训练模型
GPT-SoVITS 需要几个预训练模型才能运作,总大小约 3GB,从 HuggingFace 下载:
python -c "from huggingface_hub import snapshot_download; snapshot_download('lj1995/GPT-SoVITS', local_dir='GPT_SoVITS/pretrained_models')"下载时间依网速而定,约 30 分钟到 1 小时。如果中途卡住,直接 Ctrl+C 重跑,支持断点续传。
还需要建立语言检测模型的缓存目录:
mkdir GPT_SoVITS\pretrained_models\fast_langdetectStep 6:启动服务
每次使用的标准启动指令:
conda activate tts
cd D:\你的工作目录\tts-service\GPT-SoVITS
C:\Users\你的用户名\miniconda3\envs\tts\python.exe webui.py为什么要用完整路径执行 Python? VS Code 有时候会自动启用
.venv环境,覆盖我们的tts环境。 用完整路径可以确保一定是用正确的 Python 执行,不会被干扰。
启动成功后,终端会出现:
Running on local URL: http://0.0.0.0:9874此时系统会自动开启浏览器并载入 http://localhost:9874,这代表你的本地服务器已经正式启用,整套服务正在你自己的电脑上运行。
第一次生成你的声音
准备声音样本
在开始之前,你需要一段自己的录音作为参考音频。
录音建议:
- 时长:5~10 秒
- 环境:安静的房间,关掉电风扇、冷气
- 设备:手机录音就够,现代手机麦克风品质足以应付 Voice Cloning。事实上作者第一次测试是直接用 NB 内建麦克风录的……莫名的也行。
- 内容:自然说话即可,不需要特别准备台词
- 格式:MP3 或 WAV 均可
录好之后传到电脑,存在固定位置(例如 D:\tts-service\my_voice.wav),之后每次使用都上传这个固定文件,不需要重新录音。
开启推理界面
- 浏览器开启
http://localhost:9874 - 点选 1-GPT-SoVITS-TTS Tab
- 点选 1C-推理 子 Tab
- 按下橙色按钮 「开启TTS推理WebUI」
- ⚠️ 按下后可能 30 秒以上没有反应,属正常现象(本文是用一台旧型号 NB 跑的,加上没有独立显卡,速度自然慢一些),耐心等待,不要重复点击
- 启动后会自动开启新的浏览器分页,载入
http://localhost:9872,这就是实际的语音生成操作界面
参数设定
推荐的沉稳财经风格参数:
| 参数 | 建议值 | 说明 |
|---|---|---|
| 语速 | 1.1 | 略快于正常语速,听起来更有节奏感 |
| 句间停顿 | 0.2秒 | 句子间的自然停顿 |
| top_k | 5 | 越小越稳定,适合正式内容 |
| top_p | 0.8 | 保守模式,减少不自然的发音 |
| temperature | 0.7~1.0 | 越小越平板,越大越有感情起伏 |
| 按标点符号切割 | 开启 | 这个非常重要,让抑扬顿挫更自然 |
「按标点符号切割」 是影响自然度最大的设定。开启后,模型会按照句号、逗号自然停顿,听起来更像真人说话而不是机器念稿。
中英混合的注意事项
中英混合是 TTS 最难处理的部分,切换点会有轻微顿挫感。
改善方法:在英文专有名词前加一个逗号,让模型有语言切换的缓冲。另外如果不想跟笔者一样第一次录音就有点「糊」的话,可以把英文品牌名称拆开,例如 Space X(中间加空格),让模型自然分段发音而不是硬念成一个字:
# 原本
SpaceX 上市了
# 改善后
,SpaceX 上市了这个小技巧能明显改善切换时的顿挫感。
生成时间参考(CPU 模式)
| 文本长度 | 预计时间 |
|---|---|
| 50字以内 | 约50~80秒 |
| 100~200字 | 约150~250秒 |
| 500字以上 | 约10~15分钟 |
⚠️ 重要: 生成期间不要操作浏览器。CPU 跑 TTS 时资源全部集中在运算,同时滚动页面会抢占资源,导致音频出现卡顿感。
建议的工作方式:按下生成后去做别的事,回来再听结果。
输出与保存
生成完成后,界面上会出现播放器和下载按钮。
- 点击下载,文件名为
audio.wav - 存放位置:浏览器默认下载文件夹
- ⚠️ 每次生成下载都会覆盖同一个文件,满意的版本请立即改名保存
整合进自动化流水线
GPT-SoVITS 提供 API 接口,可以直接用程序调用,不需要每次手动操作 Web 界面。
基本的调用方式:
import requests
response = requests.get("http://localhost:9880", params={
"text": "今天要介绍的是...",
"text_lang": "zh",
"ref_audio_path": "D:/tts-service/my_voice.wav",
"prompt_text": "你的参考音频说的内容",
"prompt_lang": "zh"
})
with open("output.wav", "wb") as f:
f.write(response.content)这样整条影片生产流水线就可以全自动(文字生成的部分用 Claude 或其他 AI 平台都行,看个人习惯):
Claude 生成文字脚本
↓
GPT-SoVITS API 生成语音
↓
FFmpeg 合成影片
↓
成品输出未来计划
- 服务云端化 / MCP化:把本地的 TTS 服务部署到云端服务器,或包装成 MCP 工具供 AI 直接调用。两者本质相同,都是让这套服务变成可以随时远程调用的 API,不再依赖本地 NB 开机。
- 声音微调训练:用更多自己的录音训练专属模型,进一步提升声音相似度与自然度。
结语
从「被平台收费收到肉疼」到「在自己电脑上跑着一套语音克隆服务」,这中间只需要一个下午的时间(或者睡一觉起来继续奋斗半天的时间)和一些耐心踩坑。
坑是真实存在的。版本冲突、环境混乱、Windows 兼容性问题——这些都是过程的一部分,也是为什么这篇文章要把每个错误都记录下来。
你不需要是工程师才能做这件事。你只需要愿意一步一步来,遇到错误不要慌,把信息贴给 AI 问就好。
声音是你的。系统是你的。内容是你的。
这才是独立工作室该有的样子。
延伸阅读
本文实测环境:Windows 11、无独立显卡笔记本、Python 3.11、GPT-SoVITS 最新版
建置日期:2026年6月