F5-TTS声音克隆!本地配置F5-TTS最新版!支持E2-TTS!ngrok内网穿透让Colab也能运行
🚀F5-TTS 是一款非自回归文本转语音(TTS)系统,采用了 Flow Matching和Diffusion Transformer技术。这款模型摒弃了传统 TTS 系统中的复杂模块,例如时长模型、音素对齐和文本编码器等,而是通过将文本填充至与输入语音相同的长度,并应用去噪方法实现语音生成。🚀F5-TTS 的一大创新点是 Sway Sampling 策略,在推理阶段显著提升了效率,使其具备实时处理能力。这种特性适用于需要快速语音合成的场景,如语音助手和交互式语音系统。
🚀F5-TTS 支持 零样本语音克隆,无需大量训练数据即可生成多种声音和口音,还提供了 情绪控制 和 速度调整 功能。该系统多语言支持强大,特别适合需要生成多样音频内容的应用场景,比如有声书、电子学习模块和营销材料等。
安装
conda create -n f5-tts python=3.10
conda activate f5-tts
sudo apt update
sudo apt install -y ffmpeg
pip uninstall torch torchvision torchaudio transformers
# 安装 PyTorch(包含 CUDA 支持)
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
# 安装 transformers
pip install transformers
git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
pip install -e .
# Launch a Gradio app (web interface)
f5-tts_infer-gradio
# Specify the port/host
f5-tts_infer-gradio --port 7860 --host 0.0.0.0
# Launch a share link
f5-tts_infer-gradio --share
一次执行
conda create -n f5-tts python=3.10 -y && \
conda activate f5-tts && \
sudo apt update && sudo apt install -y ffmpeg && \
pip uninstall -y torch torchvision torchaudio transformers && \
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 transformers && \
git clone https://github.com/SWivid/F5-TTS.git && \
cd F5-TTS && \
pip install -e . && \
f5-tts_infer-gradio --port 7860 --host 0.0.0.0
👉👉👉如有问题或请联系我的徽信 stoeng
🔥🔥🔥本项目代码由AI超元域频道制作,观看更多大模型微调视频请访问我的频道⬇
👉👉👉我的哔哩哔哩频道
👉👉👉我的YouTube频道
👉👉👉我的开源项目 https://github.com/win4r/AISuperDomain
!pip install pyngrok transformers gradio
# 导入所需库
import os
from pyngrok import ngrok
!apt-get update && apt-get install -y ffmpeg
!pip uninstall -y torch torchvision torchaudio transformers
!pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 transformers
# 克隆并安装项目
!git clone https://github.com/SWivid/F5-TTS.git
%cd F5-TTS
!pip install -e .
!ngrok config add-authtoken 2hKI7tLqJVdnbgM8pxM4nyYP7kQ_3vL3RWtqXQUUdwY5JE4nj
# 配置 ngrok 和 gradio
import gradio as gr
from pyngrok import ngrok
import threading
import time
import socket
import requests
def is_port_in_use(port):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
return s.connect_ex(('localhost', port)) == 0
def wait_for_server(port, timeout=60):
start_time = time.time()
while time.time() - start_time < timeout:
if is_port_in_use(port):
try:
response = requests.get(f'http://localhost:{port}')
if response.status_code == 200:
return True
except:
pass
time.sleep(2)
return False
# 确保 ngrok 没有在运行
ngrok.kill()
# 在新线程中启动 Gradio
def run_gradio():
import sys
import f5_tts.infer.infer_gradio
sys.argv = ['f5-tts_infer-gradio', '--port', '7860', '--host', '0.0.0.0']
f5_tts.infer.infer_gradio.main()
thread = threading.Thread(target=run_gradio)
thread.daemon = True
thread.start()
# 等待 Gradio 服务启动
print("等待 Gradio 服务启动...")
if wait_for_server(7860):
print("Gradio 服务已启动")
# 启动 ngrok
public_url = ngrok.connect(7860)
print(f"\n=== 访问信息 ===")
print(f"Ngrok URL: {public_url}")
print("===============\n")
else:
print("Gradio 服务启动超时")
# 保持程序运行
while True:
try:
time.sleep(1)
except KeyboardInterrupt:
ngrok.kill()
break
!f5-tts_infer-cli \
--model "F5-TTS" \
--ref_audio "/content/test.MP3" \
--ref_text "欢迎来到AI超元域,微软发布了一款基于大模型的屏幕解析工具OmniParser.这款工具是专为增强用户界面自动化而设计的它." \
--gen_text "欢迎来到AI超元域,今天将为大家详细演示另一款开源语音克隆项目。"