Leitfaden für lokale KI-Sprachausgabe

Lass deinen Livechat von lokalen KI-Stimmen vorlesen. Beginne mit der Option ohne Installation und nutze einen lokalen Server nur bei Bedarf.

Deutsch

Übersicht

Funktioniert mit erfasstem Chattext unabhängig von der Plattform. Der Stimmenanbieter gehört zum SSN-Player, nicht zu YouTube, Twitch, TikTok oder einer anderen Chatwebsite. Diese lokalen KI-Anbieter unterscheiden sich von System-Sprachausgabe: Sie erzeugen Audio auf der Seite, statt darauf angewiesen zu sein, dass OBS Betriebssystemstimmen bereitstellt. Siehe die kurze OBS-Einrichtungsanleitung zur Unterscheidung von Stimmenverfügbarkeit und Audioerfassung. Vergleiche Anbieter, höre Beispiele und sieh dir die Einstellungen an.

Social Stream Ninja kann Chatnachrichten mit lokaler KI-Sprachausgabe vorlesen. „Lokal“ kann zwei Dinge bedeuten: Die Stimme läuft im Browser oder du betreibst einen kleinen TTS-Server auf deinem eigenen Computer.

Es gibt zwei Ansätze:

Weg 2 — Selbst gehosteter Server Docker erforderlich

Betreibe einen lokalen TTS-Server auf deinem Rechner und konfiguriere Social Stream Ninja für diesen Server. Damit erhältst du mehr Stimmen, Stimmenklonen und serverseitige Steuerung.

  • Kokoro-FastAPI
  • openedai-speech (Piper)
  • kokoro-web

Verwendet die integrierte Unterstützung von Social Stream: OpenAI-kompatibler Endpunkt .

Beginne mit Weg 1. Wenn du TTS einfach in OBS nutzen möchtest, probiere zuerst integriertes Kokoro oder Kitten. Sie benötigen weder Docker noch Server oder API-Schlüssel. Verwende einen selbst gehosteten Server nur, wenn du ausdrücklich eine Serverstimme, Stimmenklonen oder ein anderes Modell brauchst.

Schnelle Einrichtung

Dies ist für die meisten Streamer der kürzeste Weg:

1
Verwende zuerst den integrierten Anbieter. Hinzufügen &speech=en-US&ttsprovider=kokoro oder &speech=en-US&ttsprovider=kitten an deine dock.html URL.
2
Füge diese URL als Browser-Quelle in OBS ein. Die OBS-Browser-Quelle ist die Seite, die den Ton erzeugt.
3
Aktiviere die OBS-Audioerfassung. Aktiviere in den Eigenschaften der Browser-Quelle Audio über OBS steuern.
4
Sende eine kurze Test-Chatnachricht. Verwende etwas Einfaches wie Testing local TTS. Warte bei Kokoro oder Piper auf die erstmaligen Modelldownloads.
5
Probiere erst dann einen selbst gehosteten Server. Wenn du Kokoro-FastAPI, openedai-speech oder einen anderen Docker-Server verwendest, lies die localhost-Regel unten, bevor du eine URL nach OBS kopierst.

Die localhost-/127.0.0.1-Regel

Dies ist der häufigste Fehler bei lokaler TTS.

localhost und 127.0.0.1 bedeuten immer „dieser selbe Computer“. Wenn OBS auf einem Computer und Kokoro auf einem anderen läuft, 127.0.0.1 innerhalb der OBS-URL verweist auf den OBS-Computer, nicht auf den Kokoro-Computer.
Diagramm: localhost bezeichnet denselben Computer; für einen anderen Computer wird eine LAN-IP benötigt
Verwende 127.0.0.1 nur, wenn der TTS-Server auf demselben Computer wie die Audio abspielende Seite läuft. Läuft der Server auf einem anderen Computer, verwende dessen LAN-IP-Adresse.
Deine EinrichtungZu verwendender Endpunkt
OBS und Kokoro laufen auf demselben Computerhttp://127.0.0.1:8880/v1/audio/speech
Kokoro läuft auf einem anderen Computer in deinem Heimnetzhttp://192.168.x.x:8880/v1/audio/speech, mit der LAN-IP des Kokoro-Computers
Die Testschaltfläche der SSN-Desktop-App funktioniert, aber OBS bleibt stummOBS benötigt weiterhin einen eigenen funktionierenden Endpunkt. Der App-Test beweist nicht, dass OBS den Server erreichen kann.

Stelle unter Linux, macOS und Windows außerdem sicher, dass die Firewall den Port erlaubt und Docker den Port veröffentlicht hat mit -p 8880:8880.

Wo du in SSN klicken musst

Öffne im Erweiterungs-Popup die TTS-Anbieterauswahl und wähle Eigener / lokaler TTS-Endpunkt. Das zeigt die OpenAI-kompatiblen lokalen Endpunktfelder und den Link zurück zu dieser Anleitung.

Übersicht im Screenshot-Stil der lokalen TTS-Felder in Social Stream Ninja
Das Endpunktfeld ist entscheidend. Bei einem lokalen Server kann der API-Schlüssel meist leer bleiben. Wähle einen Stimmennamen, den dein Server tatsächlich unterstützt.
Zu den Screenshots: die SSN-Feldübersicht oben zeigt die lokalen Endpunktfelder. Oberflächen externer Server ändern sich je nach Projektversion; aktuelle Screenshots und Oberflächendetails sind daher beim jeweiligen Einrichtungsschritt über das Projekt-Repository verlinkt.

Selbst gehosteter Ablauf

SSN behandelt einen lokalen/selbst gehosteten TTS-Server wie einen OpenAI-kompatiblen Sprachendpunkt. Der grundlegende Ablauf ist:

chat text -> SSN TTS request -> local endpoint or SSN bridge -> TTS server -> audio response -> SSN playback

Anfrageformat

Für ttsprovider=customtts, localtts, oder openai, sendet SSN einen JSON-POST an den konfigurierten Endpunkt:

POST /v1/audio/speech { "model": "tts-1", "input": "Chat message text", "voice": "af_bella", "response_format": "mp3", "speed": 1.0 }

CORS, gehostete Seiten und die Brücke

CORS ist eine Berechtigungsprüfung des Browsers. Einfach gesagt: Der TTS-Server muss dem Browser mitteilen: „Ja, diese Seite darf Audio von mir anfordern.“ Fehlt diese Berechtigung, kann die Anfrage blockiert werden, bevor Kokoro oder ein anderer TTS-Server sie überhaupt sieht.

Wenn der Server keine Browseranfragen erlaubt, starte die Lokale SSN-TTS-Brücke und verwende in SSN http://127.0.0.1:8124/v1/audio/speech. Für OBS ist die einfachste Einrichtung, die Brücke auf demselben Computer wie OBS auszuführen.

Unterstützte Audioantworten

Antwort SSN-Unterstützung Hinweise
Binäres Audio Ja Beste Option. Antworte mit audio/mpeg, audio/wav, audio/ogg, audio/aac, oder einem anderen im Browser abspielbaren Audiotyp.
JSON mit Audio-URL Ja SSN prüft url, audio_url, output_url, verschachtelte data.url sowie den ersten Eintrag in data[] .
JSON mit Base64-Audio Ja SSN prüft audio, audio_data, audioContent, b64_json, verschachtelte data Felder und Daten-URLs.
Rohes PCM Nur mit Wrapper Gib PCM als WAV-Datei oder Base64-WAV zurück. Ein Browser-Audioelement kann rohe PCM-Bytes nicht zuverlässig direkt abspielen.
Empfohlene Formate: verwende mp3 für kleine Dateien und breite Browser-Unterstützung, wav für lokale Klonserver und Bridge-Tests und opus nur, wenn Server und Browser es beide unterstützen.

Audio-Streaming

SSN unterstützt bei eigenen/lokalen TTS-Endpunkten derzeit keine fortlaufende Wiedergabe. Es wartet auf den Antwort-Blob oder die JSON-Audionutzdaten und spielt sie dann ab. Manche vorgeschalteten Server bieten Streaming-Endpunkte, aber der aktuelle OpenAI-kompatible SSN-Weg puffert vor der Wiedergabe.

Praktisches Ergebnis: Halte Chat-TTS-Abschnitte kurz. Streaming-Unterstützung bräuchte einen separaten Wiedergabeweg mit gestreamten WAV-/MP3-Blöcken, MediaSource, WebCodecs oder einem serverseitigen Mixer.

Weg 1 — Integrierte TTS (ohne Einrichtung)

Diese Engines sind in Social Stream Ninja enthalten und benötigen keine Installation. Sie laufen im Browser mit WebAssembly (WASM) oder ONNX Runtime.

Anbieter Qualität CPU-Nutzung GPU/WebGPU URL-Parameter
Kokoro TTS ⭐⭐⭐⭐⭐ Hervorragend Mittel Schneller mit GPU ?ttsprovider=kokoro
Piper TTS ⭐⭐⭐⭐ Sehr gut Gering Nur CPU ?ttsprovider=piper
Kitten TTS ⭐⭐⭐ Gut Sehr gering Nur CPU ?ttsprovider=kitten
eSpeak-NG ⭐⭐ Robotisch Minimal Nur CPU ?ttsprovider=espeak

So aktivierst du es

Hinzufügen &ttsprovider= und &speech= an deine Social-Stream- dock.html URL:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=kokoro

Kokoro-TTS-Optionen

SSN bietet derzeit 28 englische, drei spanische und drei brasilianisch-portugiesische Kokoro-Stimmen an. Wähle eine mit &voicekokoro=:

English female: af_bella, af_sarah, af_nicole, af_sky English male: am_adam, am_michael British female: bf_emma, bf_isabella British male: bm_george, bm_lewis
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=kokoro&voicekokoro=af_bella&kokorospeed=1.1
Sprachhinweis: Wähle eine Kokoro-Stimme für die gewünschte Sprache. Wenn du nur den Sprachparameter änderst, bleibt die ausgewählte Stimme gleich.

Spanisches Beispiel:

dock.html?session=YOUR_SESSION&speech=es-ES&ttsprovider=kokoro&voicekokoro=ef_dora

Portugiesisches Beispiel:

dock.html?session=YOUR_SESSION&speech=pt-BR&ttsprovider=kokoro&voicekokoro=pf_dora

Piper-TTS-Optionen

Gib ein Stimmenmodell an mit &pipervoice=:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=piper&pipervoice=en_US-hfc_female-medium

Portugiesische und spanische Piper-Stimmen sind verfügbar:

Brazilian Portuguese: pt_BR-faber-medium, pt_BR-edresson-low
Spanish: es_ES-davefx-medium, es_MX-ald-medium
dock.html?session=YOUR_SESSION&speech=pt-BR&ttsprovider=piper&pipervoice=pt_BR-faber-medium
dock.html?session=YOUR_SESSION&speech=es-ES&ttsprovider=piper&pipervoice=es_ES-davefx-medium

Kitten-TTS-Optionen

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=kitten&kittenvoice=expr-voice-4-f

eSpeak-NG-Optionen

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=espeak&espeakvoice=en&espeakspeed=175
dock.html?session=YOUR_SESSION&speech=pt-BR&ttsprovider=espeak&espeakvoice=pt-br&espeakspeed=145
dock.html?session=YOUR_SESSION&speech=es-ES&ttsprovider=espeak&espeakvoice=es&espeakspeed=145
Erstes Laden: Kokoro und Piper müssen bei der ersten Nutzung ihre Modelldateien herunterladen (~50–200 MB). Das geschieht automatisch im Hintergrund. Spätere Aufrufe können zwischengespeicherte Modelle nutzen, aber die Initialisierung dauert weiterhin. OBS hat einen separaten Cache gegenüber Chrome/Edge.
OBS-Erfassung: Alle integrierten TTS-Anbieter spielen Audio direkt über den Browser ab. Füge in OBS dein dock.html als Browser-Quelle hinzu und aktiviere „Audio über OBS steuern“— keine virtuellen Kabel erforderlich. Siehe den OBS-Abschnitt unten.

Hinweise zu Browser und Desktop-App

Chrome-Erweiterung, OBS-Browser-Quelle und eigenständige Social-Stream-Ninja-Desktop-App verwenden alle dieselben dock.html URL-Parameter für TTS. Der wichtige Unterschied ist, wo der Ton erzeugt wird.

Oberfläche Verhalten lokaler TTS Audioerfassung
Chrome-Erweiterung / OBS-Browser-Quelle Browser-fetch benötigt CORS vom lokalen Server, sofern du nicht die SSN-Brücke verwendest. Verwende die OBS-Browser-Quelle mit „Audio über OBS steuern“.
Eigenständige Desktop-App Verwendet dieselben Anbietereinstellungen. Lokale Dateifenster der App sind weniger durch CORS eingeschränkt, aber die Brücke bleibt der sicherste Weg für Server, die browserartige Anfragen ablehnen. Erfasse Desktop-/App-Audio oder leite die App an ein virtuelles Audiokabel.
Integriertes Kokoro in der Desktop-App Die App kann ihren lokalen Pfad ninjafy.tts für Kokoro verwenden, statt sich nur auf das Laden des Modells im Browser zu verlassen. Audio wird von der App abgespielt; verwende daher Desktop-/App-Audioerfassung.
Verwechsle App-Test und OBS nicht. Wenn du in der SSN-App Test drückst, testet die App aus ihrem eigenen Kontext. Wenn du eine dock.html URL nach OBS kopierst, muss OBS selbst den TTS-Server erreichen und das Audio abspielen.

Weg 2 — Selbst gehosteter TTS-Server

Wenn du mehr Stimmen, Stimmenklonen oder einen eigenen Server zur Nutzung in mehreren Tools möchtest, kannst du einen lokalen TTS-Server betreiben. Social Stream Ninja verbindet sich über seine integrierte Unterstützung: OpenAI-kompatibler TTS-Endpunkt — für lokale Server ist kein API-Schlüssel erforderlich.

Voraussetzungen: Docker Desktop muss installiert sein und laufen. Docker ist für persönliche Nutzung kostenlos.

Drei empfohlene Optionen:

Server Modell GPU Datenträger Standardport
Kokoro-FastAPI Empfohlen Kokoro 82M Optional ~2 GB 8880
openedai-speech (Piper) Ressourcenschonend Piper TTS Nur CPU <1 GB 8000
kokoro-web Kokoro 82M Optional ~2 GB 3000

Welches Paket passt?

Paket Wichtigster Vorteil Abwägung
Integriertes Kokoro Beste erste Wahl: kein Server, hohe Qualität, privat, funktioniert in Browser und Desktop-App. Kein Stimmenklonen.
Kokoro-FastAPI OpenAI-kompatibler Server, einfache Docker-Einrichtung, CPU oder GPU, viele Kokoro-Stimmen. Kein echtes Stimmenklonen; Stimmenmischung und eigene Stimmenfunktionen hängen von der Serverversion ab.
openedai-speech Schlanker OpenAI-kompatibler Endpunkt; Piper schont die CPU und XTTS ergänzt Klonen mit etwa 4 GB VRAM als Ziel. Laut Repository ist es größtenteils veraltet; betrachte es daher als nützlich, aber nicht zukunftssicher.
Chatterbox-Server Stimmenklonen, Weboberflächenoptionen, OpenAI-kompatible APIs, Werkzeuge für lange Texte. CUDA-/GPU-Unterstützung funktioniert bei manchen Versionen reibungsloser als CPU; die Einrichtung hängt vom Server-Fork ab.
GPT-SoVITS Gutes Klonen und gute Steuerung mit kurzen Referenzen und Transkriptunterstützung. Standardmäßig nicht OpenAI-kompatibel; verwende den SSN-Bridge-Modus.
F5-TTS Natürliches Zero-Shot-Klonen mit Prompt-WAV und Transkript. Das offizielle Projekt ist kein einfacher OpenAI-Endpunkt; verwende einen Wrapper oder Bridge-Modus.
Qwen3-TTS Moderne Funktionen zum Klonen und Gestalten von Stimmen, einschließlich kleinerer 0.6B-/1.7B-Modelle. Zunächst Bibliothek/Demo; benötigt für SSN einen Wrapper.
MisoTTS Hochwertige promptgesteuerte Spracherzeugung. Kein lokales Ziel für 6 GB VRAM; nutze bei Bedarf entferntes/eigenes Hosting.

So funktioniert Stimmenklonen

Stimmenklonen ist kein eigener SSN-Modus. Es ist eine Funktion einiger lokaler TTS-Server. SSN sendet den Chattext an einen lokalen Endpunkt; der Server wählt die geklonte Stimme anhand einer gespeicherten Referenzaudiodatei, eines Stimmenprofils oder der Bridge-Konfiguration.

Typischer Ablauf

  1. Nimm einen sauberen Referenzclip auf, normalerweise 3 bis 30 Sekunden mit einer Person und wenig Hintergrundgeräuschen.
  2. Einige Engines benötigen außerdem das exakte Transkript des Referenzclips.
  3. Der lokale Server wandelt die Referenz in einen Sprecher-Prompt, ein Embedding oder ein Stimmenprofil um.
  4. SSN sendet Livechat-Text an den Endpunkt mit ttsprovider=customtts.
  5. Der Server liefert eine abspielbare Audiodatei, normalerweise WAV oder MP3, und SSN spielt sie im Dock bzw. in der Browser-Quelle ab.
Verwende Stimmen nur mit Einwilligung. Stimmenklonen kann wie eine echte Person klingen. Verwende daher nur eigene Stimmen, Stimmen mit Nutzungserlaubnis oder solche, die klar für diesen Zweck lizenziert sind.
XTTS-v2 ist standardmäßig nur für nichtkommerzielle Nutzung. Coqui Public Model License erlaubt nur die nichtkommerzielle Nutzung des Modells und seiner Ausgaben. Ein monetarisierter Stream erfüllt dies möglicherweise nicht; prüfe daher vor der kommerziellen Nutzung von XTTS-v2 die Lizenz oder hole eine separate Erlaubnis ein.

Setze bei höchstens 6 GB VRAM zuerst auf kleine Zero-Shot-Klonmodelle und OpenAI-kompatible Server. Größere Modelle können über denselben SSN-Endpunkt funktionieren, wenn der Nutzer sie anderswo hostet.

Option Stimmenklonen Passt in 6 GB VRAM API-Pfad für SSN
Qwen3-TTS 0.6B Base 3 Sekunden Referenzaudio Wahrscheinlich Verwende einen OpenAI-kompatiblen Wrapper und dann ttsprovider=customtts
XTTS-v2 / openedai-speech Kurze WAV-Referenzstimmen Ja, laut openedai-speech etwa 4 GB /v1/audio/speech
Chatterbox Turbo / Server Klonen anhand von Referenzaudio Wahrscheinlich bei Turbo / kleinen Abschnitten OpenAI-kompatible Serverversionen oder die Brücke
GPT-SoVITS 5 Sekunden Zero-Shot, 1 Minute Few-Shot Wahrscheinlich mit fp16 / schlanker Installation Verwende scripts/local-tts-bridge.cjs --mode gptsovits
F5-TTS Prompt-WAV + Transkript Vielleicht; hängt von Version und Vocoder ab Verwende einen OpenAI-kompatiblen Wrapper oder --mode f5 für F5-TTS-Server-Wrapper
MisoTTS 8B Audio-Prompt-Kontext Nein; Projekt empfiehlt 24 GB VRAM Nur entfernter/eigener Endpunkt
Bestes Zielformat für SSN: Unterstützung für POST /v1/audio/speech mit { model, input, voice, response_format, speed } und Rückgabe einer abspielbaren Audiodatei. Das deckt OpenAI, Coqui/XTTS, Kokoro-Wrapper, Qwen-Wrapper und die meisten Proxy-Dienste ab.

Computeranforderungen

Dies sind praktische Ausgangspunkte, keine festen Garantien. Modellversion, Quantisierung, Textlänge, Docker-Image und Hintergrund-Apps können den Speicherbedarf verändern.

Option Praktische Mindestanforderungen an den Computer Gutes Ziel Hinweise
System TTS / eSpeak Jeder moderne PC Jeder PC Schnell, geringe Qualität, kein Klonen.
Integriertes Kitten Schwache CPU, 4 GB RAM Moderne Laptop-CPU, 8 GB RAM Kleines ONNX-Modell, schneller Start.
Integriertes Piper Moderne CPU, 4–8 GB RAM Moderne CPU, 8 GB RAM Gute ressourcenschonende Option für neuronale Stimmen.
Integriertes Kokoro Moderne CPU, 8 GB RAM WebGPU-fähige GPU oder schnelle CPU, 8–16 GB RAM Beste Qualität ohne Einrichtung. Beim ersten Laden werden Modellressourcen heruntergeladen.
Kokoro-FastAPI CPU-Docker-Host, 8 GB RAM NVIDIA-GPU optional, 8–16 GB RAM Guter lokaler Server, wenn das Laden des Modells im Browser nicht ideal ist.
openedai-speech Piper CPU, 4–8 GB RAM CPU, 8 GB RAM Schlanker OpenAI-kompatibler Server.
openedai-speech XTTS NVIDIA-GPU mit etwa 4 GB VRAM, 8–16 GB RAM NVIDIA-GPU mit mindestens 6 GB, 16 GB RAM Weg zum Stimmenklonen; CPU ist möglich, aber langsam.
Chatterbox-Server CPU funktioniert bei manchen Versionen, ist aber langsam NVIDIA-GPU mit mindestens 6 GB, 16 GB RAM Verwende zum Klonen oder für lange Texte eine GPU.
GPT-SoVITS / F5-TTS / Qwen3-TTS Nur CPU-Tests, langsam NVIDIA-GPU mit mindestens 6 GB für kleinere/optimierte Modelle, 16 GB RAM Wrapperwahl und Modellgröße sind entscheidend. Rechne mit mehr Einrichtungsaufwand.
MisoTTS 8B Bei 6 GB VRAM lokal nicht empfohlen 24 GB VRAM oder entfernter Host Das Repository empfiehlt für interaktive Nutzung GPUs mit viel VRAM.

Hinweise zu getesteten Servern

Dies sind die selbst gehosteten Stimmenklon-Ziele, die auf SSN-Kompatibilität geprüft wurden. Der lokale Endpunktweg wurde gegen beide getestet: dock.html und featured.html.

SSN akzeptiert direkte binäre Audioantworten, JSON-Antworten mit Base64-Audio und JSON-Antworten mit einer Audio-URL. Die aktuelle eigene/lokale Wiedergabe puffert das empfangene Audio vor dem Abspielen; fortlaufende Streaming-Wiedergabe wird noch nicht unterstützt.

Server SSN-Weg Hinweise
openedai-speech Direkt oder über Brücke OpenAI-kompatibel /v1/audio/speech. Der Piper-Modus wurde mit echter CPU-Synthese getestet, ausgehend von dock.html und featured.html, direkt und über die Brücke. Wenn du unter Windows aus dem Quellcode startest, stelle sicher, dass der Ordner Scripts der virtuellen Umgebung in PATH liegt, damit piper.exe und ffmpeg.exe gefunden werden können.
chatterbox-tts-api Direkt oder über Brücke OpenAI-kompatibel /v1/audio/speech. Verwendet konfiguriertes Referenzaudio zum Klonen. Das API-Format wurde direkt und über die Brücke getestet.
Chatterbox-TTS-Server Direkt oder über Brücke OpenAI-kompatibler Endpunkt und Weboberfläche. Mit echter CPU-Synthese getestet unter Verwendung von Emily.wav aus dock.html und featured.html, direkt und über die Brücke.
GPT-SoVITS Bridge-Modus Starte die SSN-Brücke mit --mode gptsovits; Zielserver ist /tts, nicht OpenAI-kompatibel.
F5-TTS_server Bridge-Modus Starte die SSN-Brücke mit --mode f5; Zielserver verwendet GET /synthesize_speech/.
F5-TTS offiziell Wrapper erforderlich Zunächst CLI, Gradio und Socket-Server. Verwende einen OpenAI-kompatiblen Wrapper oder den F5-Bridge-Modus mit einem Wrapper.
Qwen3-TTS Wrapper erforderlich Zunächst Bibliothek und Gradio-Demo. Guter Kandidat für einen kleinen OpenAI-kompatiblen Wrapper um generate_voice_clone.
MisoTTS Nur entfernt/eigen Stimmenklonen wird unterstützt, aber das 8B-Modell ist kein Ziel für 6 GB VRAM und hat keinen lokalen REST-Endpunkt im Repository.

Kokoro-FastAPI einrichten

Kokoro-FastAPI führt das Kokoro-82M-Modell als lokalen Server mit OpenAI-kompatibler API aus. Es funktioniert auf der CPU (keine GPU nötig) und bietet hervorragende Sprachqualität.

Mit Docker installieren

Öffne ein Terminal (Eingabeaufforderung, PowerShell oder Terminal) und führe einen der folgenden Befehle aus:

CPU (funktioniert auf jedem Computer):

docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.2

GPU (nur NVIDIA — schnellere Synthese):

docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:v0.2.0post4
Erster Start: Docker lädt das Image herunter (~1,5–2 GB). Das passiert nur einmal. Danach startet der Server in wenigen Sekunden.

Betrieb prüfen

Öffne deinen Browser und gehe zu http://localhost:8880/web/— du solltest eine Weboberfläche sehen, in der du Stimmen testen kannst.

Verfügbare Stimmen

Über 67 Stimmen verfügbar. Einige Highlights:

af_bella, af_sarah, af_nicole, af_sky, af_heart (American female) am_adam, am_michael (American male) bf_emma, bf_isabella (British female) bm_george, bm_lewis (British male)

Alle Stimmen ansehen und testen unter http://localhost:8880/web/ sobald der Server läuft.

SSN-URL

Wenn Kokoro-FastAPI auf demselben Computer wie OBS läuft:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8880/v1/audio/speech&voiceopenai=af_bella

Wenn Kokoro-FastAPI auf einem anderen Computer läuft, ersetze 192.168.x.x durch die LAN-IP-Adresse dieses Computers:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://192.168.x.x:8880/v1/audio/speech&voiceopenai=af_bella
Kokoro-Stimmennamen unterscheiden sich von OpenAI-Stimmennamen. Verwende für Kokoro-FastAPI Stimmen wie af_bella, af_sarah, am_adam, oder bf_emma. Namen wie echo, nova, und alloy sind Namen im OpenAI-/openedai-speech-Stil und funktionieren möglicherweise nicht mit Kokoro.

Server am Laufen halten

Verwende Dockers Neustart-Flag, damit Kokoro-FastAPI automatisch im Hintergrund weiterläuft:

docker run -d --restart unless-stopped -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.2

Der Server startet nun bei jedem Neustart automatisch mit Docker Desktop.

openedai-speech einrichten (Piper und XTTS-v2)

openedai-speech stellt den OpenAI-kompatiblen Endpunkt /v1/audio/speech bereit, den Social Stream benötigt. Das kleine Image führt Piper auf der CPU aus; das vollständige Image kann XTTS-v2-Stimmenklonen auf einer unterstützten GPU ausführen.

Archiviertes Projekt: openedai-speech wurde im Januar 2026 archiviert und bezeichnet sich als größtenteils veraltet. Es bleibt ein nützliches Kompatibilitätsbeispiel, wird aber nicht mehr gepflegt. Betreibe es lokal und gib seinen nicht authentifizierten Port nicht im öffentlichen Internet frei.

Option A: Ressourcenschonendes Piper

Verwende diese Option für einen reinen CPU-TTS-Server unter 1 GB. Sie enthält weder XTTS-v2 noch Stimmenklonen.

Mit Docker Compose installieren

1
Klone das Repository oder erstelle einen Ordner mit folgender docker-compose.min.yml. Alternativ kannst du die folgenden Befehle direkt ausführen.
2
Starte das minimale reine Piper-Image:
docker run -d --restart unless-stopped \ -p 8000:8000 \ ghcr.io/matatonic/openedai-speech-min

Hinweis zur Installation aus dem Quellcode unter Windows

Wenn du openedai-speech aus einem lokalen Checkout statt Docker betreibst, füge den Skriptordner seiner virtuellen Umgebung zu PATH hinzu, bevor du den Server startest. Ohne dies können Anfragen HTTP 500 zurückgeben, weil der Server folgende Programme nicht findet: piper.exe oder ffmpeg.exe.

cd openedai-speech $env:Path = "$PWD\.venv\Scripts;$env:Path" .\.venv\Scripts\python.exe speech.py --xtts_device none -H 127.0.0.1 -P 8000

Verfügbare Stimmen

openedai-speech verwendet Stimmennamen im OpenAI-Stil, die Piper-Stimmen zugeordnet sind:

alloy, echo, fable, onyx, nova, shimmer

SSN-URL

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=openai&openaiendpoint=http://localhost:8000/v1/audio/speech&voiceopenai=nova

Option B: XTTS-v2-Stimmenklonen

XTTS-v2 selbst ist ein Modell, keine Web-API. Verwende den vollständigen openedai-speech-Server, um das Modell zu laden, eine gespeicherte Referenzstimme auszuwählen, Chattext von SSN anzunehmen und abspielbares Audio zurückzugeben. Der Server nennt etwa 4 GB GPU-VRAM als praktischen Zielwert; CPU-Inferenz ist möglich, aber langsam.

Verwende nicht openedai-speech-min für XTTS-v2. Das minimale Image enthält nur Piper. XTTS-v2 benötigt die vollständige Installation und model=tts-1-hd in jeder Sprachanfrage.
1
Klone den archivierten Server, erstelle seine Umgebungsdatei und starte die vollständige Docker-Compose-Einrichtung mit GPU:
git clone https://github.com/matatonic/openedai-speech.git cd openedai-speech Copy-Item sample.env speech.env docker compose up -d

Verwende unter macOS oder Linux cp sample.env speech.env anstelle von Copy-Item. Docker muss Zugriff auf eine unterstützte GPU haben. Das Modell wird bei der ersten Nutzung heruntergeladen.

2
Bereite einen sauberen Referenzclip mit Einwilligung vor. Eine Mono-WAV mit 22050 Hz und 6 bis 30 Sekunden ist ein guter Ausgangspunkt:
ffmpeg -i input.mp3 -ac 1 -ar 22050 -t 6 -y voices/me.wav
3
Ergänze die geklonte Stimme im bestehenden Abschnitt tts-1-hd in config/voice_to_speaker.yaml:
tts-1-hd: me: model: xtts speaker: voices/me.wav language: en

Behalte alle vorhandenen Stimmen in diesem Abschnitt: tts-1-hd. Ändere me auf den Stimmennamen, den SSN senden soll, und verwende bei Bedarf den richtigen XTTS-Sprachcode.

4
Starte den Server neu und richte dann das SSN-Dock oder Featured-Overlay darauf aus:
docker compose restart
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8000/v1/audio/speech&openaimodel=tts-1-hd&voiceopenai=me&openaiformat=wav
openaimodel=tts-1-hd wird für XTTS-v2 benötigt. Wenn es fehlt, sendet Social Stream seinen Standard tts-1, und openedai-speech wählt stattdessen Piper. Der voiceopenai Wert muss mit dem Namen der geklonten Stimme in folgender Datei übereinstimmen: voice_to_speaker.yaml.

Wenn Browser oder OBS die direkte Anfrage blockieren, starte die Lokale TTS-Brücke auf dem OBS-Computer, behalte dieselben Modell- und Stimmenparameter bei und ändere dabei openaiendpoint auf http://127.0.0.1:8124/v1/audio/speech.

Lokale TTS-Brücke

Die Brücke ist ein kleiner lokaler Helfer. Sie nimmt die Browseranfrage von SSN entgegen, spricht mit deinem TTS-Server und gibt Audio mit browsergeeigneten Headern an SSN zurück.

Einfachste Regel: betreibe die Brücke auf demselben Computer wie OBS. Dann kann OBS http://127.0.0.1:8124/v1/audio/speech verwenden, selbst wenn der eigentliche TTS-Server auf einem anderen Computer läuft.
Diagramm: OBS ruft die lokale Brücke auf, die wiederum den TTS-Server aufruft
Die OBS-Browser-Quelle spricht mit der Brücke auf dem OBS-Computer. Diese kann dann Kokoro-FastAPI, openedai-speech oder einen anderen Server aufrufen.

Der eigenständige Startordner ist local-tts-bridge/; siehe die README der Brücke für alle Startoptionen.

OpenAI-kompatibler Proxy

Windows PowerShell, wenn der TTS-Server auf diesem Computer läuft:

$env:SSN_TTS_TARGET="http://127.0.0.1:8880/v1/audio/speech" npm run local-tts-bridge

Windows PowerShell, wenn der TTS-Server auf einem anderen Computer läuft:

$env:SSN_TTS_TARGET="http://192.168.x.x:8880/v1/audio/speech" npm run local-tts-bridge

macOS-/Linux-Terminal:

SSN_TTS_TARGET="http://127.0.0.1:8880/v1/audio/speech" npm run local-tts-bridge

Richte dann die OBS- dock.html URL auf die Brücke aus:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8124/v1/audio/speech&voiceopenai=af_bella

GPT-SoVITS-Proxy-Modus

GPT-SoVITS verwendet sein eigenes /tts JSON-Format, damit die Brücke die OpenAI-kompatible SSN-Anfrage in den GPT-SoVITS-Anfragetext umwandeln kann.

$env:SSN_TTS_REF_AUDIO_PATH="C:\voices\speaker.wav" $env:SSN_TTS_REF_TEXT="Reference audio transcript here." $env:SSN_TTS_TARGET="http://127.0.0.1:9880/tts" npm run local-tts-bridge -- --mode gptsovits
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8124/v1/audio/speech&openaiformat=wav

F5-TTS-Server-Proxy-Modus

Einige F5-TTS-Server-Wrapper stellen /synthesize_speech/?text=...&voice=... statt eines OpenAI-kompatiblen Endpunkts bereit. Die Brücke kann SSNs Anfrage in dieses Abfrageformat umwandeln.

$env:SSN_TTS_TARGET="http://127.0.0.1:7860/synthesize_speech/" npm run local-tts-bridge -- --mode f5
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8124/v1/audio/speech&voiceopenai=default_en&openaiformat=wav
Bridge-Endpunkt: http://127.0.0.1:8124/v1/audio/speech. Ändere den Port mit SSN_TTS_BRIDGE_PORT=8125 bei Bedarf.

Mit Social Stream Ninja verbinden

Alle oben genannten selbst gehosteten Server verwenden dieselbe Verbindungsmethode — die integrierte Unterstützung von Social Stream: OpenAI-TTS-Endpunkt mit eigener lokaler URL.

URL-Parameter

Parameter Wert Beschreibung
ttsprovider customtts oder openai Verwende den OpenAI-kompatiblen TTS-Weg. Verwende customtts für lokale/selbst gehostete Endpunkte.
openaiendpoint http://localhost:8880/v1/audio/speech Deine lokale Server-URL (Port bei Bedarf ändern)
speech en-US Aktiviert TTS für Englisch
voiceopenai af_bella Stimmenname (serverabhängig)
openaiformat mp3 Audioformat: mp3, wav, opus, flac
openaispeed 1.0 Sprechgeschwindigkeit (0,5–2,0)
Endpunkt-Aliase: customttsendpoint und localttsendpoint funktionieren ebenfalls. customttsvoice, localttsvoice, customttsmodel, localttsmodel, customttsformat, und localttsformat sind akzeptierte Aliase für die Felder im OpenAI-Stil.
Prüfe Endpunkt und Stimme vor der Audio-Fehlersuche. openaiendpoint muss von der TTS-abspielenden Seite erreichbar sein, und voiceopenai muss eine von deinem Server unterstützte Stimme sein. Kokoro-FastAPI verwendet Namen wie af_bella; openedai-speech verwendet oft Namen wie nova oder echo.

Vollständige Beispiel-URLs

Kokoro-FastAPI:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://localhost:8880/v1/audio/speech&voiceopenai=af_bella&openaispeed=1.1

openedai-speech:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://localhost:8000/v1/audio/speech&voiceopenai=nova

kokoro-web:

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://localhost:3000/api/v1/audio/speech&voiceopenai=af_bella

Weitere TTS-Optionen

Diese Optionen funktionieren mit jedem TTS-Anbieter, einschließlich lokaler Server:

Parameter Beispiel Beschreibung
simpletts &simpletts „sagt“ auslassen — nur die Nachricht vorlesen
simpletts2 &simpletts2 Benutzernamen vollständig auslassen
volume &volume=0.8 Lautstärkepegel (0,0–1,0)
skipmessages &skipmessages=3 Nur jede 3. Nachricht vorlesen
ttscommand &ttscommand=!say Nur mit !say beginnende Nachrichten vorlesen
readevents &readevents Auch Abonnements, Spenden usw. vorlesen
ttsquick &ttsquick=100 Kürzt Sprache absichtlich nach dieser Zeichenzahl. Entferne den Wert, wenn Nachrichten abgeschnitten werden.
Kein API-Schlüssel erforderlich. Bei einem lokalen Server (URL außerhalb von openai.com) sendet Social Stream Ninja die Anfrage ohne Authorization-Header. Du musst keinen Schlüssel konfigurieren.

Sinnvolle integrierte Browseroptionen

SSN unterstützt bereits Betriebssystem-/Browser- speechSynthesis, integriertes Kokoro, Piper, Kitten und eSpeak. Die nützlichsten künftigen Ergänzungen im Browser wären eine Auswahl des Audioausgabegeräts, wo setSinkId verfügbar ist, mehr Piper-Stimmen sowie ein eigener Weg für fortlaufende Streaming-Wiedergabe für Server, die Audioblöcke streamen können.

Audio in OBS bringen

Wie du TTS-Audio in OBS erfasst, hängt davon ab, wie du Social Stream Ninja betreibst.

Methode 1 — OBS-Browser-Quelle Empfohlen

Dies ist die einfachste Methode und funktioniert für alle TTS-Anbieter (integriert und selbst gehosteter Server).

1
Erstelle in OBS eine neue Browserquelle
2
Setze die URL auf deine dock.html URL mit TTS-Parametern
3
Prüfe „Audio über OBS steuern“ in den Browser-Quell-Einstellungen
4
Klicke auf OK— TTS-Audio erscheint nun als OBS-Audioquelle, die du anpassen oder weiterleiten kannst
5
Klicke einmal in der Vorschau auf die Browser-Quelle, um automatisches Browser-Audio zu erlauben
Warum das funktioniert: Integrierte TTS und TTS über selbst gehostete Server spielen beide Audio über den Audiokontext des Browsers ab (nicht über die Sprachausgabe des Betriebssystems). OBS kann Browser-Audio direkt erfassen, wenn „Audio über OBS steuern“ aktiviert ist.

Methode 2 — SSN-Desktop-App + Desktop-Audio

Wenn du die eigenständige Social-Stream-Ninja-Desktop-App verwendest (keine OBS-Browser-Quelle):

1
TTS-Audio wird aus der App über deine Systemlautsprecher/Kopfhörer abgespielt
2
Erstelle in OBS eine Audioeingabeaufnahme oder Desktop-Audioerfassung Quelle
3
Wenn du TTS von anderem Desktop-Audio trennen möchtest, verwende ein virtuelles Audiokabel:
  • Windows: VB-Audio Virtual Cable (kostenlos)
  • Setze CABLE Input als Ausgabe für die SSN-App in den Windows-Soundeinstellungen
  • Erfassen CABLE Output in OBS mit Audioeingabeaufnahme

Links zu Windows-Audio-Routing

App-spezifisches Routing unter Windows 10

1
Öffnen Soundeinstellungen > App-Lautstärke- und Geräteeinstellungen.
2
Suche den Browser oder die SSN-App in der App-Liste.
3
Setze die Ausgabe auf CABLE Input (VB-Audio Virtual Cable).
4
Erstelle in OBS Audioeingabeaufnahme und wähle CABLE Output.

App-spezifisches Routing unter Windows 11

1
Öffnen Einstellungen > System > Sound > Lautstärkemixer.
2
Suche den Browser oder die SSN-App.
3
Setze das Ausgabegerät auf CABLE Input (VB-Audio Virtual Cable).
4
Erstelle in OBS Audioeingabeaufnahme und wähle CABLE Output.

Audio-Router-Software

Audio Router kann eine App an ein virtuelles Kabel weiterleiten, ist aber ältere Software. Bevorzuge das app-spezifische Windows-Routing, wenn es funktioniert.

1
Installiere Audio Router.
2
Leite den Browser oder die SSN-App an CABLE Input.
3
Erfasse in OBS CABLE Output.

Erweitertes Routing mit Voicemeeter

Voicemeeter ist am besten, wenn du TTS lokal hören, an OBS weiterleiten und von Musik-/Spielaudio trennen möchtest.

1
Installiere Voicemeeter und lege es als Windows-Standardausgabe fest.
2
Setze Hardware Out auf deine Lautsprecher/Kopfhörer.
3
Leite die virtuelle Ausgabe als Audioeingabeaufnahme-Quelle nach OBS.
System TTS (?speech=en-US ohne Anbieter) hängt von den Stimmen ab, die der Browser bereitstellt. OBS zeigt möglicherweise keine Stimmen oder listet Stimmen auf, ohne erfassbares Audio zu erzeugen. Teste Sprachausgabe und OBS-Aufnahme separat. Verwende einen der oben genannten Anbieter (kokoro, piper, usw.) stattdessen.

Vergleichstabelle

Option Einrichtung Qualität Privat OBS (Browser-Quelle) GPU erforderlich Kosten
Integriertes Kokoro Keine ⭐⭐⭐⭐⭐ Ja Ja Nein (schneller mit) Kostenlos
Integriertes Piper Keine ⭐⭐⭐⭐ Ja Ja Nein Kostenlos
Integriertes Kitten Keine ⭐⭐⭐ Ja Ja Nein Kostenlos
Integriertes eSpeak Keine ⭐⭐ Ja Ja Nein Kostenlos
Kokoro-FastAPI Docker ⭐⭐⭐⭐⭐ Ja Ja Nein (optional) Kostenlos
openedai-speech Docker ⭐⭐⭐⭐ Ja Ja Nein Kostenlos
ElevenLabs API-Schlüssel ⭐⭐⭐⭐⭐ Nein Ja Nein Kostenpflichtige Tarife
System-Sprachausgabe Keine ⭐⭐ Ja Nein* Nein Kostenlos

* System TTS erfordert für die OBS-Erfassung Audio-Routing über ein virtuelles Kabel.

Fehlerbehebung

Checkliste im Screenshot-Stil zur Fehlerbehebung bei lokaler TTS
Wenn TTS an einer Stelle funktioniert, an einer anderen aber nicht, prüfe in dieser Reihenfolge Computer, Endpunkt, Stimme, Browserberechtigung und OBS-Audioerfassung.

Der SSN-App-Test funktioniert, aber OBS hat keinen Ton

Der App-Test beweist nur, dass die App den Server erreichen kann. Die OBS-Browser-Quelle muss weiterhin selbst den Endpunkt erreichen und Audio abspielen.

Nur der erste Buchstabe oder die ersten Wörter werden vorgelesen

Lokaler Server antwortet nicht

CORS oder lokales Netzwerk blockiert

Wenn der Browser meldet, dass CORS, lokaler Netzwerkzugriff, privater Netzwerkzugriff oder fehlgeschlagener fetch die Anfrage blockiert hat, erreicht sie den TTS-Server möglicherweise nie.

Falsche Stimme oder Stimme nicht gefunden

Audio wird abgespielt, aber OBS erfasst es nicht

Docker-Image nicht gefunden

Docker-Image-Tags können sich ändern. Wenn ein Befehl in dieser Anleitung nicht mehr funktioniert, prüfe auf der Projektseite den aktuellen Tag:

Weitere TTS-Optionen: Für cloudbasierte Premium-TTS (ElevenLabs, Google Cloud, Speechify) und die vollständige URL-Parameterreferenz siehe die TTS-Stimmenanleitung.