AI Personal Learning
und praktische Anleitung
TRAE

Muyan-TTS: Personalisiertes Podcast-Sprachtraining und -synthese

Allgemeine Einführung

Muyan-TTS ist ein Open-Source-Text-to-Speech-Modell (TTS), das für Podcasting-Szenarien entwickelt wurde. Es ist mit über 100.000 Stunden Podcast-Audiodaten vortrainiert und unterstützt die Null-Sample-Sprachsynthese, um qualitativ hochwertige natürliche Sprache zu erzeugen. Das Modell basiert auf Llama-3.2-3B und kombiniert die SoVITS Muyan-TTS unterstützt auch die personalisierte Sprachanpassung aus zehnminütigen Sprachdaten von Einzelpersonen, die auf die Bedürfnisse bestimmter Klangfarben zugeschnitten sind. Das Projekt wird unter der Apache-2.0-Lizenz veröffentlicht. Der komplette Trainingscode, der Datenverarbeitungsablauf und die Modellgewichte werden auf GitHub, Hugging Face und ModelScope gehostet, und Entwickler werden ermutigt, sich weiterzuentwickeln und zur Community beizutragen.

Muyan-TTS: Open-Source-Tool für hochwertige Podcast-Sprachsynthese-1


 

Funktionsliste

  • Null-Sample-SprachsyntheseGenerieren Sie qualitativ hochwertige Sprache im Podcast-Stil ohne zusätzliches Training und passen Sie sich an eine breite Palette von tonalen Eingaben an.
  • Persönliche Anpassung der StimmeGenerieren Sie die Stimme eines bestimmten Sprechers durch Feinabstimmung einiger Minuten von Sprachdaten einer einzelnen Person.
  • Effizientes Reasoning GeschwindigkeitUngefähr 0,33 Sekunden Audiogenerierung pro Sekunde auf einer einzigen NVIDIA A100 GPU, was mehrere Open-Source-TTS-Modelle übertrifft.
  • Quelloffener SchulungscodeBietet einen vollständigen Trainingsprozess vom Basismodell bis zum fein abgestimmten Modell mit Unterstützung für die Anpassung durch den Entwickler.
  • Pipeline für die DatenverarbeitungIntegration mit Whisper, FunASR und NISQA zur Reinigung und Transkription von Podcast-Audiodaten.
  • Unterstützung bei der API-BereitstellungBietet API-Tools für die einfache Integration in Podcasts oder andere Sprachanwendungen.
  • Modellgewichte offenMuyan-TTS und Muyan-TTS-SFT Modellgewichte können von Hugging Face und ModelScope heruntergeladen werden.

 

Hilfe verwenden

Einbauverfahren

Die Installation von Muyan-TTS muss in einer Linux-Umgebung durchgeführt werden, empfohlen wird Ubuntu. Nachfolgend finden Sie die detaillierten Schritte:

  1. Klon-Lager
    Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus, um das Muyan-TTS-Repository zu klonen:

    git clone https://github.com/MYZY-AI/Muyan-TTS.git
    cd Muyan-TTS
  1. Erstellen einer virtuellen Umgebung
    Erstellen einer virtuellen Umgebung für Python 3.10 mit Conda:

    conda create -n muyan-tts python=3.10 -y
    conda activate muyan-tts
    
  2. Installation von Abhängigkeiten
    Führen Sie den folgenden Befehl aus, um die Projektabhängigkeiten zu installieren:

    make build
    

    Hinweis: FFmpeg muss installiert sein. funktioniert unter Ubuntu:

    sudo apt update
    sudo apt install ffmpeg
    
  3. Herunterladen des vortrainierten Modells
    Laden Sie die Modellgewichte über den unten stehenden Link herunter:

    pretrained_models
    ├── chinese-hubert-base
    ├── Muyan-TTS
    └── Muyan-TTS-SFT
    
  4. Überprüfen der Installation
    Nachdem sichergestellt wurde, dass alle Abhängigkeiten und Modelldateien ordnungsgemäß installiert sind, kann die Inferenz oder das Training durchgeführt werden.

Verwendung des Basismodells (Null-Sample-Sprachsynthese)

Das Basismodell von Muyan-TTS unterstützt die Null-Sample-Sprachsynthese, die für die schnelle Erzeugung von Sprache im Podcast-Stil geeignet ist. Die Schritte sind wie folgt:

  1. Eingabetext und Referenzton vorbereiten
    Bereiten Sie einen Text vor (text) und Referenzsprache (ref_wav_path). Beispiel:

    ref_wav_path="assets/Claire.wav"
    prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige."
    text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
    
  2. Führen Sie den Argumentationsbefehl aus
    Verwenden Sie den folgenden Befehl, um Sprache zu erzeugen, und geben Sie dabei an model_type wegen base::

    python tts.py
    

    Oder führen Sie einfach den Kern-Inferenzcode aus:

    async def main(model_type, model_path):
    tts = Inference(model_type, model_path, enable_vllm_acc=False)
    wavs = await tts.generate(
    ref_wav_path="assets/Claire.wav",
    prompt_text="Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.",
    text="Welcome to the captivating world of podcasts, let's embark on this exciting journey together."
    )
    output_path = "logs/tts.wav"
    with open(output_path, "wb") as f:
    f.write(next(wavs))
    print(f"Speech generated in {output_path}")
    

    Die erzeugte Sprache wird in der Datei logs/tts.wav.

  3. Ersetzen von Referenz-Audio
    Im Modus der Null-Probe wird dieref_wav_path Sie kann durch die Stimme eines beliebigen Sprechers ersetzt werden, und das Modell ahmt dessen Klangfarbe nach, um eine neue Stimme zu erzeugen.

Verwendung des SFT-Modells (personalisierte Sprachanpassung)

Das SFT-Modell wird mit Sprachdaten einer einzelnen Person, die für die Erzeugung bestimmter Klangfarben geeignet sind, feinabgestimmt. Das Verfahren ist wie folgt:

  1. Trainingsdaten vorbereiten
    Sammeln Sie mindestens ein paar Minuten an Sprachdaten einer einzelnen Person und speichern Sie diese im WAV-Format. Verwenden Sie als Beispiel den dev-clean-Datensatz von LibriSpeech, der zum Download zur Verfügung steht:

    wget --no-check-certificate https://www.openslr.org/resources/12/dev-clean.tar.gz
    

    Nach dem Auspacken der prepare_sft_dataset.py angegeben in librispeech_dir ist der Dekomprimierungspfad.

  2. Trainingsdaten generieren
    Führen Sie den folgenden Befehl aus, um die Daten zu verarbeiten und zu generieren data/tts_sft_data.json::

    ./train.sh
    

    Das Datenformat ist wie folgt:

    {
    "file_name": "path/to/audio.wav",
    "text": "对应的文本内容"
    }
    
  3. Anpassen der Trainingskonfiguration
    Compiler training/sft.yamlParameter wie Lernrate, Stapelgröße usw. einstellen.
  4. Beginn der Ausbildung
    train.sh Der folgende Befehl wird automatisch ausgeführt, um das Training zu starten:

    llamafactory-cli train training/sft.yaml
    

    Nach Abschluss des Trainings werden die Modellgewichte in der Datei pretrained_models/Muyan-TTS-new-SFT.

  5. SoVITS-Gewichte kopieren
    Indem das Basismodell die sovits.pth Kopieren Sie in das neue Modellverzeichnis:

    cp pretrained_models/Muyan-TTS/sovits.pth pretrained_models/Muyan-TTS-new-SFT
    
  6. logische Schlussfolgerung
    Um mit dem SFT-Modell Sprache zu erzeugen, müssen Sie Folgendes beachten ref_wav_path Im Einklang mit dem in der Ausbildung verwendeten Sprecher:

    python tts.py --model_type sft
    

Bereitstellung über API

Muyan-TTS unterstützt die API-Bereitstellung zur einfachen Integration in Anwendungen. Die Schritte sind wie folgt:

  1. Starten des API-Dienstes
    Führen Sie den folgenden Befehl aus, um den Dienst zu starten. Der Standardport ist 8020:

    python api.py --model_type base
    

    Die Dienstprotokolle werden in der logs/llm.log.

  2. Anfrage senden
    Verwenden Sie den folgenden Python-Code, um die Anfrage zu senden:

    import requests
    payload = {
    "ref_wav_path": "assets/Claire.wav",
    "prompt_text": "Although the campaign was not a complete success, it did provide Napoleon with valuable experience and prestige.",
    "text": "Welcome to the captivating world of podcasts, let's embark on this exciting journey together.",
    "temperature": 0.6,
    "speed": 1.0,
    }
    url = "http://localhost:8020/get_tts"
    response = requests.post(url, json=payload)
    with open("logs/tts.wav", "wb") as f:
    f.write(response.content)
    

caveat

  • Hardware-VoraussetzungNVIDIA A100 (40GB) oder ein gleichwertiger Grafikprozessor wird für Inferenzen empfohlen.
  • SpracheinschränkungDa die Trainingsdaten überwiegend auf Englisch sind, wird derzeit nur die englische Eingabe unterstützt.
  • Qualität der DatenDie Sprachqualität des SFT-Modells hängt von der Klarheit und Konsistenz der Trainingsdaten ab.
  • AusbildungskostenDie Gesamtkosten für die Vorschulung betrugen etwa 50.000 $, einschließlich Datenverarbeitung (30.000 $), LLM-Vorschulung (19.200 $) und Decoderschulung (0,134 Mio. $).

 

Anwendungsszenario

  1. Erstellung von Podcast-Inhalten
    Muyan-TTS wandelt Podcast-Skripte schnell in natürliche Sprache um, so dass unabhängige Autoren hochwertige Audiodateien erstellen können. Benutzer können durch einfache Eingabe von Text und Referenzsprache Sprache im Podcast-Stil erzeugen und so die Aufnahmekosten senken.
  2. Produktion von Hörbüchern
    Mit dem SFT-Modell können Ersteller die Stimme bestimmter Charaktere anpassen, um Hörbuchkapitel zu erstellen. Das Modell unterstützt die Erzeugung langer Audiodateien, die sich für lange Inhalte eignen.
  3. Entwicklung von Sprachassistenten
    Entwickler können Muyan-TTS über APIs in Sprachassistenten integrieren, um eine natürliche und personalisierte Sprachinteraktion zu ermöglichen.
  4. Erstellung von Bildungsinhalten
    Schulen oder Bildungseinrichtungen können Lehrmaterial in Sprache umwandeln, um Audiosignale für Hörübungen oder Kurserklärungen zu erzeugen, die für das Erlernen von Sprachen oder für Sehbehinderte geeignet sind.

 

QA

  1. Welche Sprachen werden von Muyan-TTS unterstützt?
    Derzeit wird nur Englisch unterstützt, da die Trainingsdaten überwiegend aus englischen Podcasts bestehen. Andere Sprachen können in Zukunft durch Erweiterung des Datensatzes unterstützt werden.
  2. Wie lässt sich die Sprachqualität von SFT-Modellen verbessern?
    Verwenden Sie hochwertige, klare Sprachdaten von Einzelpersonen, um Hintergrundgeräusche zu vermeiden. Stellen Sie sicher, dass die Trainingsdaten mit dem Sprachstil der Zielszene übereinstimmen.
  3. Wie steht es mit der Langsamkeit des Denkens?
    Sicherstellung des Einsatzes von Unterstützung vLLM Beschleunigte GPU-Umgebungen. Von nvidia-smi Überprüfen Sie die Speichernutzung, um sicherzustellen, dass das Modell korrekt in die GPU geladen wurde.
  4. Unterstützt es die kommerzielle Nutzung?
    Muyan-TTS ist unter der Apache 2.0 Lizenz veröffentlicht und wird für die kommerzielle Nutzung unter den Bedingungen der Lizenz unterstützt.
  5. Wie erhalte ich technische Unterstützung?
    Probleme können über GitHub eingereicht werden (Ausgaben) oder treten Sie der Discord-Community bei (Diskord) Holen Sie sich Unterstützung.
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Muyan-TTS: Personalisiertes Podcast-Sprachtraining und -synthese
de_DEDeutsch