Allgemeine Einführung
F5-TTS ist ein neuartiges nicht-autoregressives Text-to-Speech (TTS)-System, das auf einem stromangepassten Diffusionskonverter (Diffusion TransformatorF5-TTS unterstützt das Training auf mehrsprachigen Datensätzen mit einer sehr natürlichen und effizienten Synthese). Das System verbessert die Synthesequalität und -effizienz erheblich, indem es das ConvNeXt-Modell verwendet, um die Textdarstellung für eine einfachere Anpassung an die Sprache zu optimieren.F5-TTS unterstützt das Training auf mehrsprachigen Datensätzen mit sehr natürlichen und ausdrucksstarken Null-Sample-Fähigkeiten, nahtlosem Code-Wechsel und effizienter Geschwindigkeitssteuerung. Das Projekt ist quelloffen und zielt darauf ab, die Entwicklung in der Gemeinschaft zu fördern.
Dieses Modell verzichtet auf die komplexen Module traditioneller TTS-Systeme, wie z.B. Dauer-Modelle, Phonem-Alignment und Text-Encoder, und erreicht stattdessen die Spracherzeugung durch Auffüllen des Textes auf die gleiche Länge wie die Eingangssprache und die Anwendung von Entrauschungsmethoden.
Eine der wichtigsten Innovationen des F5-TTS ist Sway-Probenahme Strategie, die die Effizienz in der Inferenzphase erheblich verbessert und Echtzeitverarbeitungsmöglichkeiten ermöglicht. Diese Funktion eignet sich für Szenarien, die eine schnelle Sprachsynthese erfordern, wie z. B. Sprachassistenten und interaktive Sprachsysteme.
F5-TTS-Unterstützung Null-Proben-SprachklonenEs bietet auch die Möglichkeit, eine breite Palette von Stimmen und Akzenten zu erzeugen, ohne dass große Mengen an Trainingsdaten benötigt werden. emotionale Kontrolle im Gesang antworten Geschwindigkeitsanpassung Merkmale. Mit seiner starken Unterstützung für mehrere Sprachen eignet sich das System besonders gut für Anwendungen, die die Erstellung unterschiedlicher Audioinhalte erfordern, wie z. B. Hörbücher, E-Learning-Module und Marketingmaterialien.
Funktionsliste
- Text-zu-Sprache-Umwandlung: Wandeln Sie den eingegebenen Text in natürliche und flüssige Sprache um.
- Zero-Sample-Generierung: Generieren Sie qualitativ hochwertige Sprache ohne vorab aufgenommene Samples.
- Emotionale Reproduktion: Unterstützung bei der Erzeugung von Sprache mit Emotionen.
- Geschwindigkeitskontrolle: Der Benutzer kann die Geschwindigkeit der Spracherzeugung steuern.
- Mehrsprachige Unterstützung: unterstützt die Spracherzeugung in mehreren Sprachen.
- Offener Quellcode: Vollständiger Code und Modellprüfpunkte werden zur Verfügung gestellt, um die Nutzung und Entwicklung durch die Gemeinschaft zu erleichtern.
Hilfe verwenden
Einbauverfahren
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
F5-TTS Ein-Klick-Installationsbefehl
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
F5-TTS google Colab läuft
Hinweis: Die ngrok-Registrierung ist erforderlich, um einen Schlüssel für den Zugang zum Intranet zu beantragen.
!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分享圈,今天将为大家详细演示另一款开源语音克隆项目。"
Verwendungsprozess
Ausbildungsmodelle
- Konfigurieren Sie die Beschleunigungseinstellungen, z. B. die Verwendung mehrerer GPUs und FP16:
accelerate config
- Ausbildung einleiten:
accelerate launch test_train.py
Inferenz
- Laden Sie vorab trainierte Modellprüfpunkte herunter.
- Einzige Begründung:
- Ändern Sie die Konfigurationsdatei, um die Anforderungen zu erfüllen, z. B. feste Dauer und Schrittgröße:
python test_infer_single.py
- Ändern Sie die Konfigurationsdatei, um die Anforderungen zu erfüllen, z. B. feste Dauer und Schrittgröße:
- Begründung der Charge:
- Bereiten Sie den Testdatensatz vor und aktualisieren Sie den Pfad:
bash test_infer_batch.sh
- Bereiten Sie den Testdatensatz vor und aktualisieren Sie den Pfad:
Detaillierte Vorgehensweise
- Text-zu-Sprache-Umwandlung::
- Sobald der Text eingegeben ist, wandelt das System ihn automatisch in Sprache um, und der Benutzer kann verschiedene Sprachstile und Emotionen auswählen.
- Erzeugung von Nullproben::
- Der Benutzer muss keine voraufgezeichneten Hörproben zur Verfügung stellen, und das System erzeugt auf der Grundlage des eingegebenen Textes qualitativ hochwertige Sprache.
- emotionale Reproduktion::
- Der Benutzer kann verschiedene Emotionsbezeichnungen auswählen, und das System erzeugt Sprache mit der entsprechenden Emotion.
- Geschwindigkeitskontrolle::
- Der Benutzer kann die Geschwindigkeit der Spracherzeugung steuern, indem er die Parameter an die Anforderungen der verschiedenen Szenarien anpasst.
- Unterstützung mehrerer Sprachen::
- Das System unterstützt die Spracherzeugung in mehreren Sprachen, und die Benutzer können je nach Bedarf verschiedene Sprachen auswählen.