- Sopro TTS ist ein leichtgewichtiges, englischbasiertes Text-to-Speech-Modell, das Zero-Shot-Stimmklonen und Streaming-Generierung unterstützt
- Es verfügt über 169 Millionen Parameter und erzeugt auf der CPU mit 0,25 RTF 30 Sekunden Audio in etwa 7,5 Sekunden
- Bereits mit 3 bis 12 Sekunden Referenzsprache kann die Stimme eines Sprechers geklont werden; verwendet werden eine WaveNet-artige dilated conv und eine leichtgewichtige Cross-Attention-Struktur
- Ein Low-Budget-Projekt, das auf einer einzelnen L40S-GPU trainiert wurde; bei besserer Datenqualität besteht weiteres Potenzial für Leistungssteigerungen
- Unterstützt Streaming- und Nicht-Streaming-Modus sowie CLI, Python API und Web-Demo, was die Eignung für Entwicklerexperimente und Integrationen erhöht
Überblick über Sopro TTS
- Sopro bedeutet auf Portugiesisch „Atem“ und wurde als leichtgewichtiges englisches TTS-Modell entwickelt
- Architektur, die dilated convolution und Cross-Attention statt eines Transformers kombiniert
- Als persönliches Projekt mit einer einzelnen L40S-GPU trainiert
- Hauptmerkmale
- 169M Parameter, Streaming-Unterstützung, Zero-Shot-Stimmklonen
- 0,25 RTF auf der CPU, erzeugt 30 Sekunden Audio in 7,5 Sekunden
- Stimmklonen mit 3 bis 12 Sekunden Referenzaudio möglich
Installation und Ausführung
- Es sind nur Mindestversionen der Abhängigkeiten festgelegt, sodass eine Installation ohne separate Umgebung möglich ist
- Beispiel: Version
torch==2.6.0 bringt auf einer M3-CPU etwa die dreifache Leistung
- Installationsmethoden
- PyPI:
pip install sopro
- GitHub-Repository: nach
git clone dann pip install -e .
Nutzungsbeispiele
- CLI-Ausführungsbeispiele
- Text, Referenzaudio und Ausgabedatei können angegeben werden
- Bietet detaillierte Steuerungsparameter wie
--style_strength, --no_stop_head, --stop_threshold, --stop_patience
- Python-API-Beispiele
- Modell laden mit
SoproTTS.from_pretrained("samuel-vitorino/sopro", device="cpu")
- Unterstützt sowohl Nicht-Streaming als auch Streaming
- Im Streaming-Modus können erzeugte Audio-Chunks nacheinander zusammengefügt werden
Interaktive Streaming-Demo
- Nach der Installation den lokalen Server mit dem Befehl
uvicorn demo.server:app starten
- Alternativ per Docker bauen und ausführen
docker build -t sopro-demo .
docker run --rm -p 8000:8000 sopro-demo
- Die Demo ist im Browser unter
http://localhost:8000 aufrufbar
Hinweise und Einschränkungen
- Es kann an Ausgabekonsistenz fehlen; Feinabstimmung der Parameter kann nötig sein
- Die Qualität des Stimmklonens hängt stark von Mikrofonqualität und Umgebungsgeräuschen ab
- Die Nicht-Streaming-Version liefert höhere Audioqualität
- Die Generierung ist auf etwa 32 Sekunden (400 Frames) begrenzt; darüber hinaus treten halluzinationsartige Ausgaben auf
- Bei Verwendung von torchaudio wird ffmpeg benötigt; soundfile wird empfohlen
- Die Trainingsdaten liegen in vorab tokenisierter Form vor; die Originalaudios wurden aus Speicherplatzgründen verworfen
- Geplant sind die Veröffentlichung des Trainingscodes und ein Ausbau der Mehrsprachenunterstützung
Trainingsdaten
- Verwendete Datensätze: Emilia YODAS, LibriTTS-R, Mozilla Common Voice 22, MLS
Referenzen und Basistechnologien
- Nutzung von Forschung und Code zu Mimi Codec (Kyutai), WaveNet, Attentive Stats Pooling, AudioLM, CSM u. a.
Noch keine Kommentare.