Eigene Stimme trainieren
Komplette Anleitung zum Training eigener Piper TTS Modelle
Inhalt
💡 Tipp: Klicke auf Code-Blöcke, um sie in die Zwischenablage zu kopieren. Dann per Rechtsklick in CMD/WSL einfügen!
Voraussetzungen
- Windows 10/11 mit WSL2
- NVIDIA RTX 3060 (12GB VRAM) oder vergleichbar
- Mindestens 50GB freier Speicherplatz
- Internetverbindung
- Audio-Daten: Mindestens 30 Minuten (empfohlen: 1-2 Stunden)
1. WSL2 Setup
1.1 WSL aktivieren (Erstinstallation)
Wenn du WSL noch nie installiert hast:
- Öffne CMD (Eingabeaufforderung) in Windows
- Gib
wslein und drücke Enter - Windows wird melden, dass WSL nicht installiert ist und fragen, ob es installiert werden soll
- Drücke Enter um zu bestätigen
- Windows installiert WSL automatisch
- Starte deinen PC neu
1.2 Ubuntu installieren
In CMD (Eingabeaufforderung) als Administrator:
wsl --install -d Ubuntu-22.04
Klicken zum Kopieren
Nach der Installation wirst du aufgefordert, einen Benutzernamen und Passwort zu erstellen.
WICHTIG: Merke dir Benutzername und Passwort - du brauchst sie später!
Nach der Einrichtung befindest du dich automatisch in der Ubuntu WSL-Umgebung.
1.3 WSL-Session beenden
Du musst jetzt die aktuelle WSL-Session beenden. Schließe einfach das Ubuntu-Fenster (X-Button oben rechts) oder gib ein:
exit
Klicken zum Kopieren
💡 Hinweis: Es kann eine Fehlermeldung erscheinen wie "Fehler beim Installationsprozess" - das ist normal und kann ignoriert werden. Die Installation ist trotzdem erfolgreich abgeschlossen.
1.4 WSL2 als Standard setzen
Öffne ein neues CMD-Fenster als Administrator und führe aus:
wsl --set-default-version 2
Klicken zum Kopieren
wsl --set-default Ubuntu-22.04
Klicken zum Kopieren
1.5 Ubuntu neu starten
wsl -d Ubuntu-22.04
Klicken zum Kopieren
Jetzt bist du wieder in der Ubuntu-Umgebung und kannst mit Schritt 2 fortfahren.
1.6 GPU-Zugriff testen (Optional)
Um zu überprüfen, ob deine NVIDIA GPU in WSL erkannt wird:
nvidia-smi
Klicken zum Kopieren
Erwartetes Ergebnis: Du solltest deine GPU mit VRAM-Angabe sehen. CUDA wird automatisch mit WSL2 ausgeliefert!
2. System-Pakete installieren
2.1 System aktualisieren
WICHTIG: Führe dies zuerst aus, bevor du Pakete installierst!
sudo apt update && sudo apt upgrade -y
Klicken zum Kopieren
Das kann einige Minuten dauern.
2.2 Basis-Pakete
Build-Tools:
sudo apt install -y build-essential ninja-build
Klicken zum Kopieren
Python und Entwicklungs-Tools:
sudo apt install -y python3.10 python3.10-venv python3.10-dev python3-pip
Klicken zum Kopieren
Audio-Bibliotheken:
sudo apt install -y libsndfile1 ffmpeg
Klicken zum Kopieren
espeak-ng:
sudo apt install -y espeak-ng
Klicken zum Kopieren
Git:
sudo apt install -y git
Klicken zum Kopieren
Zusätzliche Abhängigkeiten:
sudo apt install -y libportaudio2 portaudio19-dev
Klicken zum Kopieren
2.3 CMake aktualisieren (Version 3.26+ erforderlich)
Alte CMake-Version entfernen:
sudo apt remove --purge cmake -y
Klicken zum Kopieren
sudo apt autoremove -y
Klicken zum Kopieren
CMake von Kitware installieren:
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
Klicken zum Kopieren
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null
Klicken zum Kopieren
sudo apt update
Klicken zum Kopieren
sudo apt install -y cmake
Klicken zum Kopieren
Version überprüfen (sollte 3.26 oder höher sein):
cmake --version
Klicken zum Kopieren
3. Piper einrichten
3.1 Arbeitsverzeichnis erstellen
cd ~
Klicken zum Kopieren
mkdir piper-training
Klicken zum Kopieren
cd piper-training
Klicken zum Kopieren
3.2 Repository klonen
git clone https://github.com/OHF-voice/piper1-gpl.git
Klicken zum Kopieren
cd piper1-gpl
Klicken zum Kopieren
3.3 Python Virtual Environment erstellen
python3 -m venv .venv
Klicken zum Kopieren
source .venv/bin/activate
Klicken zum Kopieren
💡 Erfolgreich aktiviert? Du solltest jetzt (.venv) vor deinem Benutzernamen in der Kommandozeile sehen.
pip install --upgrade pip setuptools wheel
Klicken zum Kopieren
3.4 PyTorch mit CUDA Support installieren
WICHTIG: Zuerst PyTorch installieren, BEVOR du Piper installierst!
PyTorch 2.0.1 mit CUDA 11.8 (Installation kann dauern):
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
Klicken zum Kopieren
PyTorch Lightning:
pip install pytorch-lightning==2.0.9 lightning==2.0.9
Klicken zum Kopieren
NumPy auf kompatible Version setzen:
pip install "numpy<2.0"
Klicken zum Kopieren
3.5 PyTorch CUDA-Zugriff testen
python3 -c "import torch; print(f'CUDA available: {torch.cuda.is_available()}'); print(f'CUDA device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"None\"}')"
Klicken zum Kopieren
Erwartetes Ergebnis: CUDA available: True und dein GPU-Name
3.6 Piper Training Dependencies installieren
pip install -e .[train]
Klicken zum Kopieren
3.7 Cython Extension bauen
chmod +x build_monotonic_align.sh
Klicken zum Kopieren
./build_monotonic_align.sh
Klicken zum Kopieren
💡 Performance-Warnungen sind normal und können ignoriert werden!
3.8 scikit-build und Dev Build
pip install scikit-build
Klicken zum Kopieren
WICHTIG: pip installiert manchmal eine alte CMake-Version im venv - diese muss entfernt werden:
pip uninstall cmake -y
Klicken zum Kopieren
CMake-Version prüfen (sollte 3.26+ sein):
cmake --version
Klicken zum Kopieren
Dev Build:
python3 setup.py build_ext --inplace
Klicken zum Kopieren
3.9 Checkpoint herunterladen
mkdir -p ~/piper-training/checkpoints
Klicken zum Kopieren
cd ~/piper-training/checkpoints
Klicken zum Kopieren
Wähle das Checkpoint für deine Sprache (nur EINS herunterladen!):
# Deutsch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/en/en_US/lessac/medium/epoch%3D2164-step%3D1355540.ckpt
Klicken zum Kopieren
# Englisch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/en/en_US/lessac/medium/epoch%3D2164-step%3D1355540.ckpt
Klicken zum Kopieren
# Russisch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/ru/ru_RU/ruslan/medium/epoch%3D2436-step%3D1724372.ckpt
Klicken zum Kopieren
# Polnisch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/pl/pl_PL/gosia/medium/epoch%3D5001-step%3D1457672.ckpt
Klicken zum Kopieren
# Rumänisch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/ro/ro_RO/mihai/medium/epoch%3D7809-step%3D1558760.ckpt
Klicken zum Kopieren
# Spanisch (Spanien)
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/es/es_ES/davefx/medium/epoch%3D5629-step%3D1605020.ckpt
Klicken zum Kopieren
# Spanisch (Mexiko)
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/es/es_MX/ald/medium/epoch%3D9999-step%3D1753600.ckpt
Klicken zum Kopieren
# Tschechisch
wget https://huggingface.co/datasets/rhasspy/piper-checkpoints/resolve/main/cs/cs_CZ/jirka/medium/epoch%3D8819-step%3D1435400.ckpt
Klicken zum Kopieren
💡 Hinweis für Italienisch: Es gibt derzeit kein offizielles italienisches Checkpoint. Verwende das deutsche oder englische Checkpoint als Basis.
3.10 Verzeichnisstruktur vorbereiten
cd ~/piper-training
Klicken zum Kopieren
mkdir -p voice-data/raw-audio
Klicken zum Kopieren
mkdir -p voice-data/audio
Klicken zum Kopieren
mkdir -p voice-data/cache
Klicken zum Kopieren
mkdir -p voice-data/output
Klicken zum Kopieren
4. Audio-Daten vorbereiten
4.1 Audio-Dateien nach WSL kopieren
Von Windows PowerShell:
copy C:\Pfad\zu\deinen\*.wav \\wsl$\Ubuntu-22.04\home\DEIN_USERNAME\piper-training\voice-data\raw-audio\
Klicken zum Kopieren
Oder Windows Explorer:
Adresse: \\wsl$\Ubuntu-22.04\home\DEIN_USERNAME\piper-training\voice-data\raw-audio\
Dateien per Drag & Drop kopieren
💡 Hinweis: Das Audio-Format ist egal - das Automatisierungs-Script konvertiert alle Dateien automatisch zu 22050 Hz Mono!
5. Automatische Verarbeitung mit Whisper
5.1 Whisper installieren
cd ~/piper-training/piper1-gpl
Klicken zum Kopieren
Virtual Environment aktivieren (falls nicht bereits aktiv):
source .venv/bin/activate
Klicken zum Kopieren
Whisper installieren:
pip install openai-whisper pydub
Klicken zum Kopieren
5.2 Automatisierungs-Script erstellen
Erstelle die Datei mit:
cd ~/piper-training
Klicken zum Kopieren
nano process_audio_auto.py
Klicken zum Kopieren
📄 Python-Script anzeigen (process_audio_auto.py)
▼#!/usr/bin/env python3
"""
Automatische Audio-Verarbeitung für Piper Voice Training
- Konvertiert Audio zu 22050 Hz Mono
- Splittet in kurze Segmente
- Transkribiert mit Whisper
- Erstellt metadata.csv
"""
import os
import sys
import subprocess
from pathlib import Path
from pydub import AudioSegment
from pydub.silence import split_on_silence
import whisper
from tqdm import tqdm
# Konfiguration
RAW_AUDIO_DIR = "voice-data/raw-audio"
OUTPUT_AUDIO_DIR = "voice-data/audio"
METADATA_FILE = "voice-data/metadata.csv"
WHISPER_MODEL = "large" # tiny, base, small, medium, large
# Segment-Einstellungen
MIN_SILENCE_LEN = 500 # ms
SILENCE_THRESH = -40 # dB
KEEP_SILENCE = 200 # ms
MIN_SEGMENT_LEN = 1000 # ms
MAX_SEGMENT_LEN = 15000 # ms
def convert_to_mono_22050(input_file, output_file):
"""Konvertiert Audio zu 22050 Hz Mono"""
print(f" Konvertiere: {input_file.name}")
# Erst mit ffmpeg zu Standard-WAV konvertieren (behebt ADPCM-Problem)
temp_standard_wav = f"/tmp/temp_standard_{input_file.stem}.wav"
result = subprocess.run([
'ffmpeg', '-i', str(input_file),
'-acodec', 'pcm_s16le', # Standard PCM 16-bit
'-ar', '44100', # Erstmal auf 44100 Hz
'-ac', '1', # Mono
'-y', # Überschreiben
temp_standard_wav
], capture_output=True, text=True)
if result.returncode != 0:
print(f" FEHLER bei ffmpeg-Konvertierung: {result.stderr}")
raise Exception(f"ffmpeg failed for {input_file}")
# Jetzt mit pydub weiterverarbeiten
audio = AudioSegment.from_file(temp_standard_wav)
# Sample Rate auf 22050 Hz setzen
if audio.frame_rate != 22050:
audio = audio.set_frame_rate(22050)
# Als WAV speichern
audio.export(output_file, format="wav")
# Temp-Datei löschen
os.remove(temp_standard_wav)
return audio
def split_audio(audio, base_name):
"""Splittet Audio in kurze Segmente"""
print(f" Splitte Audio...")
chunks = split_on_silence(
audio,
min_silence_len=MIN_SILENCE_LEN,
silence_thresh=SILENCE_THRESH,
keep_silence=KEEP_SILENCE
)
segments = []
for i, chunk in enumerate(chunks):
chunk_len = len(chunk)
# Nur Chunks zwischen MIN und MAX Länge
if MIN_SEGMENT_LEN <= chunk_len <= MAX_SEGMENT_LEN:
segments.append(chunk)
# Zu lange Chunks weiter splitten
elif chunk_len > MAX_SEGMENT_LEN:
# In kleinere Teile aufteilen
num_parts = int(chunk_len / MAX_SEGMENT_LEN) + 1
part_len = chunk_len // num_parts
for j in range(num_parts):
start = j * part_len
end = start + part_len if j < num_parts - 1 else chunk_len
part = chunk[start:end]
if len(part) >= MIN_SEGMENT_LEN:
segments.append(part)
print(f" {len(segments)} Segmente erstellt")
return segments
def transcribe_segments(segments, segment_files):
"""Transkribiert alle Segmente mit Whisper"""
print(f"\nLade Whisper-Modell '{WHISPER_MODEL}'...")
model = whisper.load_model(WHISPER_MODEL)
print(f"Transkribiere {len(segments)} Segmente...")
transcriptions = []
for i, (segment, file_path) in enumerate(tqdm(zip(segments, segment_files), total=len(segments))):
# Segment temporär speichern für Whisper
temp_file = f"/tmp/temp_segment_{i}.wav"
segment.export(temp_file, format="wav")
# Transkription
result = model.transcribe(
temp_file,
language="de", # Deutsch
task="transcribe",
fp16=True # Nutzt GPU wenn verfügbar
)
text = result["text"].strip()
transcriptions.append(text)
# Temp-Datei löschen
os.remove(temp_file)
return transcriptions
def main():
# Verzeichnisse erstellen
os.makedirs(OUTPUT_AUDIO_DIR, exist_ok=True)
# Alle Audio-Dateien finden
raw_audio_path = Path(RAW_AUDIO_DIR)
audio_files = list(raw_audio_path.glob("*.wav")) + \
list(raw_audio_path.glob("*.WAV")) + \
list(raw_audio_path.glob("*.mp3")) + \
list(raw_audio_path.glob("*.MP3")) + \
list(raw_audio_path.glob("*.m4a")) + \
list(raw_audio_path.glob("*.M4A")) + \
list(raw_audio_path.glob("*.flac")) + \
list(raw_audio_path.glob("*.FLAC"))
if not audio_files:
print(f"Keine Audio-Dateien in {RAW_AUDIO_DIR} gefunden!")
sys.exit(1)
print(f"Gefunden: {len(audio_files)} Audio-Datei(en)")
print(f"Whisper-Modell: {WHISPER_MODEL}")
print()
all_segments = []
all_segment_files = []
segment_counter = 0
# Jede Audio-Datei verarbeiten
for audio_file in audio_files:
print(f"Verarbeite: {audio_file.name}")
# Konvertieren
converted_file = f"/tmp/converted_{audio_file.stem}.wav"
audio = convert_to_mono_22050(audio_file, converted_file)
# Splitten
segments = split_audio(audio, audio_file.stem)
# Segmente speichern
for segment in segments:
filename = f"utt_{segment_counter:04d}.wav"
filepath = os.path.join(OUTPUT_AUDIO_DIR, filename)
segment.export(filepath, format="wav")
all_segments.append(segment)
all_segment_files.append(filename)
segment_counter += 1
# Temp-Datei löschen
os.remove(converted_file)
print()
print(f"\nGesamt: {len(all_segments)} Segmente erstellt")
# Transkription
transcriptions = transcribe_segments(all_segments, all_segment_files)
# metadata.csv erstellen
print(f"\nErstelle {METADATA_FILE}...")
with open(METADATA_FILE, "w", encoding="utf-8") as f:
for filename, text in zip(all_segment_files, transcriptions):
# Bereinige Text (entferne Zeilenumbrüche, etc.)
text = text.replace("\n", " ").replace("\r", " ").strip()
# Schreibe Zeile
f.write(f"{filename}|{text}\n")
print(f"✅ Fertig!")
print(f" Segmente: {len(all_segments)}")
print(f" Metadata: {METADATA_FILE}")
print(f"\nÜberprüfe die metadata.csv und korrigiere bei Bedarf Fehler!")
print(f"Dann starte das Training mit den Anweisungen in der Anleitung")
if __name__ == "__main__":
main()
Klicken zum Kopieren
Speichern: Ctrl+O, Enter, Ctrl+X
5.3 Script ausführen
chmod +x process_audio_auto.py
Klicken zum Kopieren
cd ~/piper-training
Klicken zum Kopieren
source ~/piper-training/piper1-gpl/.venv/bin/activate
Klicken zum Kopieren
python3 process_audio_auto.py
Klicken zum Kopieren
Erwartete Dauer (RTX 3060, large-Modell): 2 Stunden Audio = ca. 30-60 Minuten Verarbeitung
5.4 Ergebnis überprüfen
Segmente zählen:
ls ~/piper-training/voice-data/audio/*.wav | wc -l
Klicken zum Kopieren
metadata.csv prüfen:
head -10 ~/piper-training/voice-data/metadata.csv
Klicken zum Kopieren
WICHTIG: Überprüfe die Transkriptionen und korrigiere Fehler:
- Zahlen ausschreiben: "drei" statt "3"
- Namen korrigieren
- Satzzeichen hinzufügen
nano ~/piper-training/voice-data/metadata.csv
Klicken zum Kopieren
6. Training starten
6.1 Virtual Environment aktivieren
cd ~/piper-training/piper1-gpl
Klicken zum Kopieren
Virtual Environment aktivieren (falls nicht bereits aktiv):
source .venv/bin/activate
Klicken zum Kopieren
6.2 Training-Befehl
Passe espeak_voice und max_epochs an deine Sprache an:
python3 -m piper.train fit \
--data.voice_name "meine_stimme" \
--data.csv_path ~/piper-training/voice-data/metadata.csv \
--data.audio_dir ~/piper-training/voice-data/audio/ \
--model.sample_rate 22050 \
--data.espeak_voice "de" \
--data.cache_dir ~/piper-training/voice-data/cache/ \
--data.config_path ~/piper-training/voice-data/output/config.json \
--data.batch_size 16 \
--ckpt_path ~/piper-training/checkpoints/*.ckpt \
--trainer.max_epochs 4000 \
--trainer.check_val_every_n_epoch 10
Klicken zum Kopieren
Sprach-spezifische Einstellungen
| Sprache | espeak_voice | Checkpoint Epoch | max_epochs (empfohlen) |
|---|---|---|---|
| Deutsch | de |
2164 | 3000 |
| Englisch | en-us |
2164 | 3000 |
| Russisch | ru |
2436 | 3300 |
| Polnisch | pl |
5001 | 5900 |
| Rumänisch | ro |
7809 | 8700 |
| Spanisch (ES) | es |
5629 | 6500 |
| Spanisch (MX) | es |
9999 | 10800 |
| Tschechisch | cs |
8819 | 9700 |
| Italienisch | it |
- | 3000 (nutze DE/EN Checkpoint) |
Weitere Parameter:
voice_name: Name deiner Stimmebatch_size: 16 für RTX 3060 (reduziere auf 8 bei OOM-Fehlern)ckpt_path:*.ckptfindet automatisch dein heruntergeladenes Checkpoint
6.3 Training überwachen
Zweites Terminal für GPU-Monitoring:
wsl
watch -n 1 nvidia-smi
Klicken zum Kopieren
Erwartete Trainingszeit (RTX 3060):
- Mit Checkpoint + 30 Min Audio: 2-4 Stunden
- Mit Checkpoint + 1-2 Std Audio: 4-8 Stunden
6.4 Training unterbrechen und fortsetzen
Unterbrechen: Ctrl+C
Fortsetzen:
Letzten Checkpoint finden:
ls -lht ~/piper-training/piper1-gpl/lightning_logs/version_*/checkpoints/
Klicken zum Kopieren
Training fortsetzen (passe espeak_voice und max_epochs an deine Sprache an):
python3 -m piper.train fit \
--ckpt_path ~/piper-training/piper1-gpl/lightning_logs/version_0/checkpoints/last.ckpt \
--data.voice_name "meine_stimme" \
--data.csv_path ~/piper-training/voice-data/metadata.csv \
--data.audio_dir ~/piper-training/voice-data/audio/ \
--model.sample_rate 22050 \
--data.espeak_voice "de" \
--data.cache_dir ~/piper-training/voice-data/cache/ \
--data.config_path ~/piper-training/voice-data/output/config.json \
--data.batch_size 16 \
--trainer.max_epochs 4000
Klicken zum Kopieren
max_epochs pro Sprache: DE: 4000 | EN: 3000 | RU: 3300 | PL: 5900 | RO: 8700 | ES(ES): 6500 | ES(MX): 10800 | CS: 9700
7. Modell exportieren und testen
7.1 Nach ONNX exportieren
cd ~/piper-training/piper1-gpl
Klicken zum Kopieren
Virtual Environment aktivieren (falls nicht bereits aktiv):
source .venv/bin/activate
Klicken zum Kopieren
Besten Checkpoint finden:
ls -lht lightning_logs/version_*/checkpoints/
Klicken zum Kopieren
Export:
python3 -m piper.train.export_onnx \
--checkpoint lightning_logs/version_0/checkpoints/epoch=999-step=10000.ckpt \
--output-file ~/piper-training/voice-data/output/de_DE-meine_stimme-medium.onnx
Klicken zum Kopieren
7.2 Config-Datei umbenennen
cd ~/piper-training/voice-data/output
Klicken zum Kopieren
cp config.json de_DE-meine_stimme-medium.onnx.json
Klicken zum Kopieren
ls -lh
Klicken zum Kopieren
7.3 Piper CLI herunterladen und testen
cd ~/piper-training
Klicken zum Kopieren
wget https://github.com/rhasspy/piper/releases/download/2023.11.14-2/piper_linux_x86_64.tar.gz
Klicken zum Kopieren
tar -xzf piper_linux_x86_64.tar.gz
Klicken zum Kopieren
Test-Synthese:
echo "Dies ist ein Test meiner neuen Stimme. Ich hoffe, sie klingt gut!" | \
./piper/piper \
--model voice-data/output/de_DE-meine_stimme-medium.onnx \
--output_file test_output.wav
Klicken zum Kopieren
Audio abspielen:
sudo apt install -y sox
Klicken zum Kopieren
play test_output.wav
Klicken zum Kopieren
7.4 Nach Windows kopieren
cp ~/piper-training/voice-data/output/de_DE-meine_stimme-medium.onnx* /mnt/c/Users/DEIN_USERNAME/Desktop/
Klicken zum Kopieren
8. Qualität verbessern
8.1 Mehr Audio aufnehmen (WICHTIGSTE MASSNAHME!)
Empfohlene Aufnahme-Richtlinien:
- Mindestens 30 Minuten (besser: 1-2+ Stunden)
- Verschiedene Sätze und Satzlängen
- Verschiedene Emotionen/Betonungen
- Klare, deutliche Aussprache
- Ruhige Umgebung (kein Hintergrundgeräusch)
- Konstanter Abstand zum Mikrofon
- Keine Clipping (Pegel nicht zu hoch)
Aufnahme-Einstellungen:
- Sample Rate: 22050 Hz
- Bit Depth: 16-bit
- Kanäle: Mono
- Format: WAV (unkomprimiert)
8.2 Training-Parameter anpassen
Für längeres Training:
--trainer.max_epochs 5000
Klicken zum Kopieren
Für bessere Qualität (langsamer):
--data.batch_size 8
Klicken zum Kopieren
8.3 Mit mehr Daten neu trainieren
- Neue Audio-Dateien nach
voice-data/raw-audio/kopieren process_audio_auto.pyerneut ausführen- Training mit altem Checkpoint fortsetzen
9. Problembehebung
Problem: "CUDA out of memory"
Lösung:
--data.batch_size 8 # oder 4
Klicken zum Kopieren
Problem: "Weights only load failed"
Lösung: PyTorch downgraden
pip install torch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 --index-url https://download.pytorch.org/whl/cu118
Klicken zum Kopieren
pip install pytorch-lightning==2.0.9 lightning==2.0.9
Klicken zum Kopieren
Problem: Training konvergiert nicht (Loss sinkt nicht)
Lösungen:
- Überprüfe
metadata.csvauf Tippfehler - Stelle sicher, dass Audio-Dateien korrekt sind
- Reduziere Learning Rate:
--optimizer.lr 0.00005
Problem: Stimme klingt roboterhaft
Ursachen:
- Zu wenig Trainingsdaten
- Training zu kurz
- Schlechte Audio-Qualität
Lösungen:
- Mehr Audio aufnehmen (mindestens 30 Min)
- Länger trainieren (2000+ Epochen)
- Audio-Qualität verbessern
Problem: WSL ist langsam
WICHTIG: Arbeite IMMER im Linux-Dateisystem (/home/...), NICHT im Windows-Dateisystem (/mnt/c/...)!
Problem: Whisper ist sehr langsam
Lösungen:
- GPU-Zugriff testen:
python3 -c "import torch; print(torch.cuda.is_available())" - Kleineres Modell:
WHISPER_MODEL = "small"
Nützliche Befehle
WSL herunterfahren (von Windows):
wsl --shutdown
Klicken zum Kopieren
WSL starten:
wsl
Klicken zum Kopieren
Virtual Environment aktivieren:
source ~/piper-training/piper1-gpl/.venv/bin/activate
Klicken zum Kopieren
GPU-Status:
nvidia-smi
Klicken zum Kopieren
Speicherplatz:
df -h
Klicken zum Kopieren
WSL Backup:
wsl --export Ubuntu-22.04 D:\wsl-backup.tar
Klicken zum Kopieren
WSL Wiederherstellen:
wsl --import Ubuntu-22.04 D:\WSL\Ubuntu D:\wsl-backup.tar
Klicken zum Kopieren
Viel Erfolg beim Training! Bei Fragen oder Problemen schau in die FAQ oder kontaktiere mich im WoG Forum.
Stimme teilen: Hast du eine legale Stimme trainiert und möchtest sie mit der Community teilen? Kontaktiere mich gerne per Discord (neocromicon) oder im Forum - ich nehme sie gerne offiziell ins Plugin auf!