3 Punkte von GN⁺ 2026-01-10 | 1 Kommentare | Auf WhatsApp teilen
  • 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.

1 Kommentare

 
GN⁺ 2026-01-10
Hacker-News-Kommentare
  • Ein cooles und nützliches Projekt
    Ich persönlich halte Chatterbox-TTS-Server für die beste Alternative
    Es ist zwar langsam, aber die Audioqualität ist ziemlich hoch

    • Ich bevorzuge IndexTTS2
      Dieses Modell unterstützt Voice Cloning und manuelle Emotionssteuerung über Emotionsvektoren, daher finde ich es ein sehr leistungsstarkes Tool
      Es war besonders nützlich in einem laufenden Modell-Orchestrierungsprojekt
      Ein externes Emotionsklassifizierungsmodell steuert gleichzeitig die Persona des LLM und die TTS-Ausgabe, um Konsistenz zu wahren
      Je nach Emotionszustand ändert sich auch die Wahrscheinlichkeit für den „Memory“-Abruf, und es gibt kaum ein TTS mit so feiner Steuerung wie IndexTTS2
    • Die Ausgabequalität von Chatterbox-TTS ist jedoch deutlich besser
      Die Ausgabe von Sopro TTS ist, gemessen am GitHub-Video, ernsthaft schlecht und praktisch nicht nutzbar
      Chatterbox liefert dagegen erstaunliche Ergebnisse
      Ich habe eine RTX5090-GPU, und mit etwa 2 Sekunden Laufzeit für 1 Sekunde Generierung ist es sehr schnell
      Siehe erstes Beispiel und zweites Beispiel. Letzteres ist eine Demo, die die Stimme des YouTubers ArbitorIan geklont hat
  • Wirklich cool!
    Ich nutze lokal Kokoro (82M) , und es läuft schnell und hat eine hervorragende Audioqualität

    • Kennt jemand einen guten Open-Source-Sprachassistenten-Stack?
      Ich nutze ricky0123/vad für die Sprachaktivierung, danach die Web Speech API für schnelle Erkennung und dann kommerzielles TTS
      Unter Open Source habe ich bisher nichts mit guter Geschwindigkeit gefunden
    • Ich habe auch Kokoro-JS ausprobiert, das im Browser läuft, aber die Latenz war zu hoch und die gewünschte Sprache wurde nicht unterstützt, was schade war
  • Ich habe mich gefragt, was „zero-shot“ bedeutet

    • Zero-shot ist eine Methode, ein Modell mit einem einzelnen Prompt zu betreiben (oder mit zusätzlichem Kontext in Form einer Datei)
      Few-shot bedeutet, dem Modell einige Beispiele zu geben, um es zu lenken, und Multi-shot bedeutet mehrere Prompt- und Korrekturdurchläufe
    • In diesem Fall scheint es zu bedeuten, dass man auch ohne zusätzliche Sprachsamples einen guten Klon erhält
  • Fühlt sich an wie Voice Cloning auf Mission-Impossible-Niveau ohne langes Kompilieren
    Dazu werden auch ein passendes YouTube-Video und ein Wortspiel-Gedicht geteilt

  • Ich habe es auf Englisch getestet und war ziemlich beeindruckt
    Für ein Low-Budget-Projekt war das Ergebnis erstaunlich, und es war sehr einfach zu benutzen

    • Es ist aber nur für Englisch, daher konnte ich keine anderen Sprachen ausprobieren
      Wenn es eine deutsche Version gäbe, würde ich sie unbedingt testen
  • Wenn man die Einschränkungen berücksichtigt, ist das ziemlich beeindruckend
    Ich frage mich, ob geplant ist, eine stärkere Version zu veröffentlichen, die weniger Artefakte hat und mehr Rechenleistung benötigt
    Ich nutze meist Chatterbox, aber wenn sich das hier zu hoher Qualität entwickelt, könnte es eine gute Alternative werden

    • Das ist mein Side Project
      Die Rechenkosten sind ziemlich hoch, aber wenn die Reaktion der Community gut ist, möchte ich es weiterentwickeln
      Zur Einordnung: Chatterbox ist ein hervorragendes Modell und eine Inspirationsquelle
  • Ich habe mich gefragt, was „zero-shot“ bedeutet

    • Ich halte diese *-shot-Begriffe ehrlich gesagt für bedeutungslosen Branchenjargon
      Noch willkürlicher als die Big-O-Notation
    • Laut Wikipedia-Definition ist zero-shot ein Problem-Setup, bei dem beim Testen Beispiele von Klassen vorhergesagt werden, die im Training nicht gesehen wurden
      Wenn ein Modell also die bedingte Wahrscheinlichkeit P(Audio|Voice) lernt und für Stimmklassen sampeln kann, die es im Training nicht gesehen hat, dann ist es zero-shot
      Ein Referenz-Audio bereitzustellen verändert nicht die Modellgewichte, sondern liefert Kontext
  • Ich habe mir das Audio angehört und war schockiert, wie furchtbar die Audioqualität ist
    Es klingt schlechter als Computerstimmen von vor 15 Jahren, und ich verstehe nicht, warum die Leute es gut finden
    Ich habe es in mehreren Browsern getestet, aber es war überall gleich

    • Einige Referenzstimmen könnten die Qualitätsverschlechterung verursachen
      Wenn es so schlimm ist, könnte auch ein anderes Problem vorliegen, daher würde ich mir das gern gemeinsam ansehen
    • Wenn dieses Sample das Beste aus der Demo ist, dann war die Ausspracheverzerrung so stark, dass sie sofort abstoßend wirkte
    • Ich dachte kurz, das sei die Stimme von RFK
    • Ich habe mehrere Stimmen ausprobiert, aber das erzeugte Audio klang überhaupt nicht ähnlich und auch nicht nach einer richtigen Stimme
    • Ich konnte es beim Hören auch kaum glauben. Es war eine unangenehme Audioqualität, die man kaum länger als eine Minute erträgt
  • Wirklich beeindruckende Technik
    Ich denke, das wird in Zukunft noch besser werden
    Aber selbst als Übergangslösung wäre es gut, eine einfache Audio-Nachbearbeitung hinzuzufügen, die die kratzige Klangfarbe (razziness) reduziert

  • Ich frage mich, ob es unter solchen Modellen welche gibt, die als Speech-to-Speech-Stimmwandler funktionieren
    Also so, dass sie ein festes Sprachsample (Prompt) und einen eingehenden Echtzeit-Audiostream nehmen und die Stimme des Inputs in Ton und Timbre des Prompts umwandeln
    Bei V-Tubern müsste man den Prompt nicht oft wechseln, daher könnte es auch möglich sein, mit einmaligem Fine-Tuning ein festes Timbre aufzubringen

    • Chatterbox TTS unterstützt das im Modus „voice cloning“
      Das Streaming müsste man allerdings selbst implementieren
      Es nimmt Audio A (Stil) und B (Inhalt) als Eingabe und kombiniert das Timbre von A mit Aussprache und Intonation von B
      Solche Modelle sind eigentlich eher S+STS (speech+style to speech) als „TTS“
    • Ich kenne kein Open-Source-Projekt dafür, aber ElevenLabs setzt diese Idee schon seit Längerem um
      Im offiziellen Blog wird das ausführlich erklärt
    • RVC (Retrieval Voice Conversion) ist ebenfalls ein guter Open-Source-Stimmwandler
      Wegen Konflikten zwischen dem ursprünglichen Ersteller und den Entwicklern sollte man aber den Haupt-Fork meiden und lieber einen aktuellen, auf Englisch gepflegten Fork suchen
    • Tatsächlich nutzen viele V-Tuber solche Technik, daher sollte es auf jeden Fall stabile Lösungen geben