F5-TTS-api
该项目源码地址 https://github.com/jianchang512/f5-tts-api
这是用于 F5-TTS 项目的api和webui
F5-TTS 是一款先进的文本转语音系统,它使用深度学习技术生成逼真、高质量的人声。只需短短10秒的音频样本,就能克隆出你的声音。F5-TTS 能够准确再现语音,并赋予其丰富的感情色彩。
原音色女儿国国王
克隆后音频
Windows集成包 (包含F5-TTS模型及运行环境)
123网盘下载 https://www.123684.com/s/03Sxjv-kKjB3
huggingface下载地址: https://huggingface.co/spaces/mortimerme/s4/resolve/main/f5-tts-api-v0.3.7z?download=true
2024-11-27 补丁下载
下载补丁后解压到
api.py
所在文件夹覆盖,即完成升级补丁下载地址: https://github.com/jianchang512/f5-tts-api/releases/download/v0.1/2024-1127-buding.7z
适用系统: Windows 10/11 (下载后解压即可使用)
使用方法:
启动API服务: 双击 run-api.bat
文件,API地址为 http://127.0.0.1:5010/api
。
必须启动api服务才可在翻译软件中使用
集成包默认使用CUDA 11.8版本。如果您有英伟达显卡并已配置好CUDA/cuDNN环境,系统会自动使用GPU加速。 如果想使用更高版本的cuda,比如12.4,请如下操作
进入到 api.py 所在文件夹,在文件夹地址栏输入
cmd
后回车,然后在弹出的终端中分别执行以下命令
.\runtime\python -m pip uninstall -y torch torchaudio
.\runtime\python -m pip install torch torchaudio --index-url https://download.pytorch.org/whl/cu124
F5-TTS 的优势在于其高效性和高质量的语音输出。相比于需要较长音频样本的同类技术,F5-TTS 只需很短的音频就能生成高保真的语音,并能很好地表达情感,提升听感,这是许多现有技术难以做到的。
目前,F5-TTS支持英语和中文两种语言。
总而言之,F5-TTS 是一款强大的文本转语音工具,它不仅语音质量高,还能生成富有表现力的语音。通过便捷的语音克隆功能,您可以轻松将文本转换成逼真、富有情感的音频。缺点就是生成速度有点慢。
使用提示:代理/VPN
模型需要从 huggingface.co 网站下载。由于该网站在国内无法访问,请提前设置系统代理或全局代理,否则模型下载将会失败。
整合包已集成大部分所需模型,但可能会检测更新或下载其他依赖小模型,所以如果终端出现
HTTPSConnect
错误时,仍需设置系统代理
在视频翻译软件中使用
启动API服务。必须启动api服务才可在翻译软件中使用
打开视频翻译软件,找到TTS设置,选择F5-TTS,输入API地址(默认为 http://127.0.0.1:5010)。
输入参考音频和音频文本。
Model建议选择f5-tts 生成质量更好
快速测试
不需要测试则无需此操作
- 整合包下载解压后,复制一份api.py文件,然后将复制后的该文件改名为 test.py,再删掉 test.py 里所有内容,将以下内容粘贴到test.py中。
- 找一段10s左右想克隆音色音频文件,格式为wav,发声清晰无噪音,重命名为 1.wav 放在 test.py同目录下,将 1.wav 中对应的发声文字填写到下方代码的"ref_text" 后,不要换行。
- 将想要合成的文字填写到下方代码的 "gen_text" 后。
- 双击
run-api.py
启动api服务,当启动成功后,在 test.py 所在文件夹地址栏输入cmd,然后回车,输入命令.\runtime\python test.py
,等待执行完毕,文件夹内会生成一个 ceshi.wav,这就是克隆后的声音。
import requests
res=requests.post('http://127.0.0.1:5010/api',data={
"ref_text": '这里填写 1.wav 中对应的文字内容',
"gen_text": '''这里填写要生成的文本。''',
"model": 'f5-tts'
},files={"audio":open('./1.wav','rb')})
if res.status_code!=200:
print(res.text)
exit()
with open("ceshi.wav",'wb') as f:
f.write(res.content)