Skip to content

Commit 4e09152

Browse files
steveseguinactions-user
authored andcommitted
docs(tts): update Premium TTS documentation and add local TTS guide images
Updated the Premium TTS Options section in README.md to clarify browser/provider TTS capture and reference the Local AI TTS Guide for self-hosted endpoints. Added supporting screenshots to the local TTS documentation. [auto-enhanced]
1 parent ad9ce31 commit 4e09152

8 files changed

Lines changed: 205 additions & 79 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -880,7 +880,7 @@ The `voice` parameter works with partial matching, so you can use terms like "si
880880

881881
#### Premium TTS Options
882882

883-
Unlike the system TTS (free), all premium TTS options are fully supported by both the Social Stream Ninja app and OBS browser sources with direct audio capture capabilities. These options provide superior language support and much easier integration.
883+
Unlike the system TTS (free), browser/provider TTS options are designed to play through the page, which makes OBS capture much easier when "Control audio via OBS" is enabled. Self-hosted local endpoints also work, but the endpoint still needs to be reachable from the page that is playing TTS; see the Local AI TTS Guide for localhost, CORS, and OBS browser-source setup notes.
884884

885885
##### Kokoro Premium FREE TTS
886886
Social Stream Ninja now includes Kokoro TTS, a high-quality browser-based text-to-speech solution that runs directly in the browser. Benefits include:
49.8 KB
Loading
53.3 KB
Loading
55.4 KB
Loading
57 KB
Loading

docs/local-tts.html

Lines changed: 179 additions & 72 deletions
Large diffs are not rendered by default.

docs/tts.html

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -667,11 +667,12 @@ <h3>OpenAI / Local Server TTS</h3>
667667
<li>Use <code>?ttsprovider=customtts</code> or <code>?ttsprovider=localtts</code> for a self-hosted endpoint</li>
668668
<li>Uses OpenAI's API by default, or any compatible local server</li>
669669
<li>Custom endpoint: <code>&openaiendpoint=http://localhost:8880/v1/audio/speech</code></li>
670+
<li><strong>Important:</strong> <code>localhost</code> and <code>127.0.0.1</code> mean the same computer that is playing the TTS page. If OBS is on a different computer than your TTS server, use the server computer's LAN IP instead.</li>
670671
<li>No API key needed for local servers</li>
671-
<li>If the local server has CORS problems, run <code>npm run local-tts-bridge</code> and point SSN at <code>http://127.0.0.1:8124/v1/audio/speech</code></li>
672+
<li>If the local server has CORS or local network problems in Chrome/OBS, run <code>npm run local-tts-bridge</code> on the OBS computer and point SSN at <code>http://127.0.0.1:8124/v1/audio/speech</code></li>
672673
<li>SSN sends <code>{ model, input, voice, response_format, speed }</code> and supports binary audio, JSON audio URLs, and JSON base64 audio</li>
673674
<li>Custom/local endpoint playback is buffered today; SSN does not progressively play streamed audio chunks yet</li>
674-
<li>Voice: <code>&voiceopenai=af_bella</code>, speed: <code>&openaispeed=1.0</code></li>
675+
<li>Voice: <code>&voiceopenai=af_bella</code>, speed: <code>&openaispeed=1.0</code>. Use a voice name your server supports; Kokoro voices look like <code>af_bella</code>, while openedai-speech/OpenAI-style voices may look like <code>nova</code> or <code>echo</code>.</li>
675676
<li>See the <a href="local-tts.html">Local AI TTS Guide</a> for self-hosted server setup</li>
676677
</ul>
677678

@@ -711,9 +712,11 @@ <h2 id="troubleshooting">Troubleshooting</h2>
711712
<div class="card">
712713
<h3>Common Issues</h3>
713714
<ul>
714-
<li><strong>No audio playing:</strong> Click on the page first - browsers require user interaction for audio</li>
715-
<li><strong>Voices not showing:</strong> Restart browser after installing language packs</li>
716-
<li><strong>OBS not capturing:</strong> For system TTS, use one of the capture methods above</li>
715+
<li><strong>No audio playing:</strong> Check that TTS is enabled, the TTS-producing page is open, and the browser source is not muted. In a normal browser, click the page once.</li>
716+
<li><strong>Voices not showing:</strong> Restart browser after installing language packs</li>
717+
<li><strong>OBS not capturing:</strong> For browser/provider TTS, check <strong>Control audio via OBS</strong>. For system TTS, use one of the capture methods above</li>
718+
<li><strong>Local endpoint works in the app test but not OBS:</strong> OBS is a separate browser. Check the endpoint from the OBS computer, especially if using <code>127.0.0.1</code>.</li>
719+
<li><strong>Only the first letter or first words are read:</strong> remove <code>ttsquick</code> from the OBS URL if present.</li>
717720
<li><strong>Safari issues:</strong> Safari has limited automatic TTS support</li>
718721
<li><strong>Premium service not working:</strong> Check API key and ensure provider is correctly specified</li>
719722
</ul>

local-tts-bridge/README.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,15 @@ http://127.0.0.1:8124/v1/audio/speech
88

99
It has no npm dependencies.
1010

11+
## The Same-Computer Rule
12+
13+
`127.0.0.1` and `localhost` mean "this same computer." If OBS is running on a different computer than your TTS server, do not point OBS at `127.0.0.1` for the server. Either:
14+
15+
- run this bridge on the OBS computer and point `SSN_TTS_TARGET` at the TTS server's LAN IP, or
16+
- expose the bridge/server on your LAN and use that LAN IP from OBS.
17+
18+
The simplest setup is usually: OBS -> bridge on the OBS computer -> TTS server.
19+
1120
## How SSN Calls It
1221

1322
SSN sends the same OpenAI-compatible JSON body it would send to OpenAI:
@@ -35,12 +44,19 @@ $env:SSN_TTS_TARGET="http://127.0.0.1:8000/v1/audio/speech"
3544
node server.cjs
3645
```
3746

38-
SSN URL:
47+
SSN URL when the bridge is running on the OBS computer:
3948

4049
```text
4150
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8124/v1/audio/speech&voiceopenai=nova&openaiformat=wav
4251
```
4352

53+
If your TTS server is on another computer, keep the SSN URL pointed at the local bridge, but set the bridge target to the server's LAN IP:
54+
55+
```powershell
56+
$env:SSN_TTS_TARGET="http://192.168.x.x:8880/v1/audio/speech"
57+
node server.cjs
58+
```
59+
4460
Tested with SSN `dock.html` and `featured.html`:
4561

4662
- openedai-speech Piper mode: direct and bridge.

0 commit comments

Comments
 (0)