F5-TTS 是一款开源的文本转语音 (TTS) 工具,以其快速克隆声音、支持多种语言以及能够表达情感等特点受到关注。本文将为您提供 F5-TTS 的本地部署指南和使用技巧。
F5-TTS 简介
F5-TTS 是一款基于深度学习技术的声音克隆工具,能够在短时间内(仅需2秒或15秒的音频样本)精确克隆目标声音的音色、语调和情感表达。它是 E2-TTS 的改进版本,推理速度更快。该工具开源免费,用户可以根据需求进行定制和优化。
主要特点:
- 快速克隆能力:仅需少量参考音频即可复刻音色。
- 高质量音频:生成的语音在音色细腻度和情感传达上效果逼真。
- 多语言支持:支持中英文混合输入及多种其他语言,如法语、意大利语、日语等。
- 情感和风格调整:支持调整语速、音高、情感(如“Shouting”风格)。
- 用户友好的操作界面:提供 Gradio WebUI,方便操作。
- 低资源占用:部分资料提及显存占用较低,适合本地部署。
- 零样本生成能力:无需特定训练样本即可生成高质量语音。
安装部署
本地部署 F5-TTS 通常涉及环境准备、代码克隆、依赖安装和模型下载等步骤。以下是综合性的安装指南:
前置条件
- Python 环境:强烈建议使用 Python 3.10 版本。
- Git:用于克隆项目代码。
- Conda (推荐):用于创建和管理独立的 Python 虚拟环境,避免依赖冲突。
- NVIDIA GPU 及 CUDA (推荐):为了获得更好的性能和加速,建议使用 NVIDIA 显卡并安装相应的 CUDA 工具包。
- 科学上网环境:F5-TTS 需要从 Hugging Face 等网站下载模型,国内用户可能需要配置代理。
- Pinokio
对于咱们小白用户,我强烈推荐一个“神器”——Pinokio!它就像一个AI软件的“应用商店”,可以帮我们一键安装很多复杂的AI工具,自动处理那些烦人的环境配置问题。
你需要先去 Pinokio 的官网 下载Pinokio
如果你不想用 Pinokio,或者之后 Pinokio 安装失败了,也可以选择手动安装。但这需要你对 Python (需要 3.10 版本)、Git 和 命令行 有一定的了解。还需要自己配置 PyTorch 环境。
方法一:使用 Pinokio (小白首选)
- 打开 Pinokio: 安装好后,启动 Pinokio。第一次打开里面可能是空的。
- 发现 F5-TTS: 点击 "Discover" (发现) 按钮。在搜索框里输入 F5-TTS 或者 E2F5 TTS。
- 下载和安装: 找到 F5-TTS (可能会显示为 E2F5 TTS),点击它,然后点击 "Download" (下载),再点击 "Install" (安装)。
- 等待安装: 接下来,Pinokio 会自动帮你下载所有需要的东西,包括 F5-TTS 本身和它依赖的库。这个过程可能需要一些时间,取决于你的网络和电脑配置。
中途可能会弹出一些提示框,比如问你是否要下载 CUDA (如果你的 N 卡需要),或者其他组件。通常,你只需要一直点 "Yes" 或 "OK" 或 "下一步" 就行了,让 Pinokio 帮你搞定一切! - 启动 F5-TTS: 安装完成后,F5-TTS 会出现在 Pinokio 的主界面列表里。选中它,然后点击 "Launch" (启动)。
- 打开Web界面: 等待一小会儿 (可能一两分钟),Pinokio 窗口里会加载出 F5-TTS 的操作界面 (基于 Gradio)。为了方便操作,你可以点击界面右上角通常会有的“在新窗口/标签页中打开”的按钮,把它在你的浏览器里打开,界面更大更清晰!
通用安装步骤
-
克隆 F5-TTS 仓库 在合适的目录下打开终端,执行以下命令克隆项目代码:
Bash
git clone https://github.com/SWivid/F5-TTS.git cd F5-TTS
-
创建并激活 Conda 虚拟环境 (推荐)
Bash
conda create -n f5-tts python=3.10 conda activate f5-tts
-
安装 PyTorch 及相关库 根据您的 CUDA 版本选择合适的 PyTorch 安装命令。例如,使用 CUDA 11.8:
Bash
pip install torch==2.3.0+cu118 torchaudio==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
或者使用PyTorch 2.4 版本(例如,配合 CUDA 12.4):
Bash
pip install torch==2.4.0+cu124 torchaudio==2.4.0+cu124 --extra-index-url https://download.pytorch.org/whl/cu124
注意: PyTorch 版本和 CUDA 版本的兼容性非常重要,请根据您的硬件和驱动情况选择。
-
安装项目依赖 在项目根目录下,执行以下命令之一安装所需的依赖包:
Bash
pip install -r requirements.txt
或者,进行可编辑安装 (editable install):
Bash
pip install -e .
-
安装 FFmpeg (如果需要) PyTorch 可能需要 FFmpeg 来处理非 WAV 格式的音频文件。如果系统中未安装,请根据您的操作系统进行安装并确保其在系统路径中。
- macOS (使用 Homebrew):
brew install ffmpeg
- Windows: 从 FFmpeg 官网下载,解压并将
bin
目录添加到系统环境变量Path
中。 - Linux (例如 Ubuntu/Debian):
sudo apt update && sudo apt install -y ffmpeg
- macOS (使用 Homebrew):
-
下载预训练模型 首次启动时,F5-TTS 会尝试从 Hugging Face 下载所需的预训练模型。确保您的网络环境可以访问 Hugging Face。议手动下载模型到本地指定路径,以避免启动时报错。
- 可以配置环境变量
HF_ENDPOINT=https://hf-mirror.com
来使用 Hugging Face 的国内镜像。
- 可以配置环境变量
特定平台和部署方式
- macOS:安装步骤与通用步骤类似,注意 Python 和 FFmpeg 的安装方式。
- Windows:安装时需注意文件路径不要包含中文或空格。FFmpeg 的安装和环境变量配置也需特别留意。
- Linux (包括腾讯云 GPU):可以参照通用步骤。在腾讯云等 GPU 云服务器上部署时,可能需要先卸载预装的 PyTorch,再安装指定版本。
- Docker 和 Kubernetes (k8s):F5-TTS 也支持通过 Docker 部署,甚至可以在 Kubernetes 环境中运行。这对于需要容器化部署的用户来说非常有用。部署时需要注意 GPU 的正确配置和访问权限,例如在 k8s 中配置
nvidia-device-plugin
。
启动 WebUI 服务
安装完成后,可以使用以下命令启动 Gradio WebUI:
Bash
f5-tts_infer-gradio
可以指定端口和主机,例如:
Bash
f5-tts_infer-gradio --port 7860 --host 0.0.0.0
如果希望生成一个公开的分享链接 (通过 Gradio Live),可以使用:
Bash
f5-tts_infer-gradio --share
也可通过运行 Python 脚本来启动,例如:
Bash
python gradio_app.py
或在特定路径下运行:
Bash
cd src/f5_tts/infer/
python infer_gradio.py
启动成功后,终端会显示本地访问 URL (通常是 http://127.0.0.1:7860
)。
使用技巧
基本使用 (WebUI)
- 文本输入 (Text):在文本框中输入想要转换为语音的文本,支持中英文混合。
- 参考音频上传 (Reference Audio):上传一段清晰的人声作为声音克隆的参考,建议时长在 2-15 秒之间。支持 WAV、MP3 等常见格式。
- 生成语音 (Generate):点击按钮开始生成语音,完成后可在线播放或下载。
高级功能与技巧
- 批量处理 (Batch Processing):上传包含多行文本的 TXT 文件进行批量语音生成。
- 长文本处理:对于较长的文本,建议按自然段落分割处理以获得更佳效果。
- API 使用:可以通过添加
--api
参数启动服务,以便通过 API 调用 F5-TTS。 - 多语言模型切换:默认模型主要支持中英文。如需使用其他语言(如法语、日语等),需要修改
src/f5_tts/infer/infer_gradio.py
文件中的DEFAULT_TTS_MODEL_CFG
配置,指向对应语言的模型和词汇表文件路径 (通常托管在 Hugging Face)。修改后需重启服务,并确保网络畅通以下载新模型。 - 与 pyVideoTrans 对接:可以将 F5-TTS 与 pyVideoTrans 等视频翻译配音软件对接。需要在 F5-TTS 启动后,在 pyVideoTrans 中配置 F5-TTS 的 API 地址,并指定参考音频文件及其对应文字。
- 局域网访问:默认情况下,Gradio 服务可能只允许本机访问。若需在局域网内其他设备访问,可能需要修改
infer_gradio.py
文件以允许外部访问,例如设置share=True
或在启动命令中指定--host 0.0.0.0
,并可能需要修改代码以正确处理临时文件路径。 - 内网穿透 (Ngrok):如果需要在公网访问本地部署的 F5-TTS 服务,可以使用 Ngrok 等内网穿透工具。
常见问题与故障排查
- 模型下载失败/Hugging Face 连接问题
- 确保科学上网环境配置正确,并开启全局或系统代理。
- 配置 Hugging Face 镜像地址,例如
export HF_ENDPOINT=https://hf-mirror.com
。 - 检查 Git SSL 验证设置:
git config --global http.sslVerify false
(临时解决方法,注意安全风险)。 - 可以修改
utils_infer.py
中的snapshot_download
和hf_hub_download
函数调用,添加local_files_only=True
参数,以在模型已下载到本地后禁止程序再次尝试从网络下载 (需确保模型已完整下载)。
- 端口冲突:如果端口 7860 已被其他程序占用,F5-TTS 将无法启动。关闭占用该端口的程序或在启动 F5-TTS 时指定其他端口。
- PyTorch 版本与 CUDA 不兼容 / GPU 无法使用
- 确保安装的 PyTorch 版本与您的 CUDA驱动版本兼容。
- 在容器化部署 (如 Docker, k8s) 时,确保容器已正确配置以访问宿主机的 GPU。
conda: command not found
:通常是 Conda 的路径未正确添加到系统环境变量中。需要找到 Miniconda/Anaconda 的安装路径,并将其下的bin
(Linux/macOS) 或Scripts
(Windows) 目录添加到 PATH 环境变量中,然后重新加载配置文件 (如.zshrc
,.bashrc
) 或重启终端。- 缺少
ffmpeg
工具:按照前述安装步骤为您的操作系统安装 FFmpeg。 - 路径问题:在 Windows 系统上,避免在包含中文或空格的路径下安装或运行 F5-TTS。
gradio_client
问题:如果 API 对接出现问题 (如detail: "Not found"
),尝试更新gradio_client
:pip install --upgrade gradio_client
。- 启动命令差异:不同的安装方式或版本可能对应不同的启动命令 (如
f5-tts_infer-gradio
vspython gradio_app.py
),请参考您所使用的具体教程或项目文档。
注意事项
- 法律与道德:在使用声音克隆技术时,请务必遵守相关法律法规和道德规范,尊重他人隐私权和知识产权,不要用于非法或不当目的。
- 参考音频质量:参考音频的清晰度和质量直接影响克隆效果。
- 终端窗口:通过 API 使用时,即使关闭了 WebUI 浏览器界面,也不能关闭启动 F5-TTS 服务的终端窗口。
- 定期更新:建议定期从 GitHub 拉取最新代码 (
git pull
) 以获取最新功能和 bug 修复。
希望本文档能帮助您顺利部署和使用 F5-TTS。具体细节可能因 F5-TTS 版本更新而有所不同,建议同时参考官方 GitHub 仓库获取最新信息。
一键部署包
提取码yeuX