本機 AI TTS 指南

在自己的電腦執行聊天語音。大多數實況主只需內建音色。

我需要這個嗎?

「本機」有兩種含義:在瀏覽器中執行的 SSN 內建音色,或你自己執行的語音伺服器。

我想要…執行操作
不需要安裝的免費音色使用 內建音色。大多數人做到這裡即可。
使用我已經執行的語音伺服器連線伺服器.
複製音色參閱 音色複製.
OBS 中的 Fish Audio請參閱 Fish Audio 設定.
付費雲端音色請參閱 TTS 參考.
適用於 SSN 擷取的所有聊天。音色屬於 SSN 播放器,而非 YouTube 或 Twitch。與 系統 TTS不同,本機 AI 音色自行產生音訊,因此 OBS 可以擷取。 比較供應商並試聽範例.

內建音色(不需要安裝)

它們直接在瀏覽器的 SSN 中執行,不需要伺服器、Docker 或 API 金鑰。

音色音質電腦負載連結參數值
Kokoro出色中等,GPU 更快。ttsprovider=kokoro
Piper很好低,僅 CPU。ttsprovider=piper
Kitten良好很低,僅 CPU。ttsprovider=kitten
eSpeak-NG機械感極低,僅 CPU。ttsprovider=espeak

四步設定

  1. 新增 &speech=en-US&ttsprovider=kokoro 到您的 dock.html 連結。(或 piper, kitten, espeak.)
  2. 將該連結作為以下來源加入 OBS: 瀏覽器來源。聲音由該頁面產生。
  3. 在內容中開啟 透過 OBS 控制音訊.
  4. 傳送簡短測試聊天,例如 Testing local TTS.
dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=kokoro
首次使用較慢。 Kokoro 和 Piper 首先下載模型(約 50–200 MB),之後會重用,但啟動仍需片刻。OBS 個別儲存,不與 Chrome 共用。

音色、速度和其他語言: 供應商設定。更喜歡點選操作?使用 設定指南.

連線自己的 TTS 伺服器

伺服器可提供更多音色、音色複製,或讓多個工具共用一種聲音。SSN 按以下介面與其通訊: 相容OpenAI 語音伺服器,不需要 API 金鑰。

  1. 啟動伺服器。 Kokoro-FastAPI 最簡單。
  2. 在 SSN 開啟 TTS 供應商清單並選擇 自訂/本機文字轉語音端點.
  3. 在 自訂 / 本機 API 端點,輸入伺服器位址,例如 http://127.0.0.1:8880/v1/audio/speech.
  4. API 金鑰留空。
  5. 選擇伺服器認識的音色: af_bella 用於 Kokoro, nova 用於 openedai-speech。
  6. 將連結複製到 OBS 並傳送測試聊天。
螢幕截圖式Social Stream Ninja本機文字轉語音欄位說明
關鍵欄位是端點。
OBS 在另一台電腦? 閱讀 localhost 規則 。 被瀏覽器攔截? 使用 橋接.
伺服器模型GPU磁碟連接埠
Kokoro-FastAPI (建議)Kokoro 82M選用~2 GB8880
openedai-speech (Piper)Piper僅CPU<1 GB8000
kokoro-webKokoro 82M選用~2 GB3000

這些需要 Docker Desktop 已安裝並執行,個人使用免費。

localhost 規則

這是最常見的錯誤。

localhost 和 127.0.0.1 始終表示「目前這台電腦」。 如果 OBS 與語音伺服器位於兩台電腦, 127.0.0.1 在 OBS 中指向 OBS 電腦。
示意圖:localhost指同一台電腦,存取另一台電腦需要區域網路IP位址
您的設定使用此位址
OBS 和伺服器在同一台電腦http://127.0.0.1:8880/v1/audio/speech
伺服器在家中另一台電腦http://192.168.x.x:8880/v1/audio/speech,改為該電腦的本機 IP
SSN 應用程式測試正常,OBS 無聲OBS 需要自己能存取的位址。應用程式測試成功不能證明 OBS 能存取伺服器。

還要確認防火牆允許該連接埠,且 Docker 已公開連接埠(-p 8880:8880).

Kokoro-FastAPI

Kokoro-FastAPI 將 Kokoro 作為本機伺服器執行。支援 CPU,不需要 GPU。

  1. 開啟終端機(命令提示字元、PowerShell 或 Terminal),執行以下一種:
    docker run -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-cpu:v0.2.2

    NVIDIA GPU(更快):

    docker run --gpus all -p 8880:8880 ghcr.io/remsky/kokoro-fastapi-gpu:v0.2.0post4
    首次執行下載約 1.5–2 GB,只需一次。
  2. 開啟 http://localhost:8880/web/。應出現可試聽音色的頁面(超過 67 種)。
  3. 使用此連結(伺服器在另一台電腦時修改位址):
    dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8880/v1/audio/speech&voiceopenai=af_bella
使用 Kokoro 音色名稱,例如 af_bella, af_sarah, am_adam 或 bf_emma。OpenAI 音色名稱,例如 nova 或 alloy 可能無效。

隨 Docker 自動啟動:

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

openedai-speech(Piper 和 XTTS-v2)

已封存專案。 openedai-speech 於 2026 年 1 月封存,自稱大致已過時。仍可作為範例使用,但不再更新。請僅在本機使用;它沒有登入驗證,絕不要將連接埠暴露到網際網路。

方案 A:輕量 Piper 伺服器(CPU)

不到 1 GB,不支援音色複製。

docker run -d --restart unless-stopped -p 8000:8000 ghcr.io/matatonic/openedai-speech-min

音色: alloy, echo, fable, onyx, nova, shimmer.

dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=openai&openaiendpoint=http://localhost:8000/v1/audio/speech&voiceopenai=nova
在 Windows 從原始碼執行(HTTP 500 錯誤)

加入其虛擬環境中的 Scripts 資料夾加到 PATH ,否則找不到 piper.exe 或 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

方案 B:XTTS-v2 音色複製(GPU)

需要完整伺服器,而不是 openedai-speech-min。預計需要約 4 GB 顯示記憶體,CPU 也能執行但較慢。

四步設定 XTTS-v2
  1. 取得並啟動伺服器:
    git clone https://github.com/matatonic/openedai-speech.git
    cd openedai-speech
    Copy-Item sample.env speech.env
    docker compose up -d
    在macOS或Linux上使用 cp sample.env speech.env。Docker 需要 GPU 存取權,模型首次使用時下載。
  2. 準備獲准使用的乾淨參考音訊:單聲道、22050 Hz、6–30 秒:
    ffmpeg -i input.mp3 -ac 1 -ar 22050 -t 6 -y voices/me.wav
  3. 在 config/voice_to_speaker.yaml,在現有的以下部分加入: tts-1-hd 部分(保留已有音色):
    tts-1-hd:
      me:
        model: xtts
        speaker: voices/me.wav
        language: en
    變更 me 改為 SSN 將傳送的名稱。
  4. 執行 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 是必要的。 沒有它時 SSN 傳送 tts-1,伺服器會改用 Piper。 voiceopenai 必須與 YAML 檔案中的音色名稱一致。

被瀏覽器攔截?執行 橋接 ,只更改 openaiendpoint 為 http://127.0.0.1:8124/v1/audio/speech.

本機 TTS 橋接

SSN 的小型輔助程式:接收 SSN 請求,轉交語音伺服器,再以瀏覽器可接受的方式傳回音訊。需要 Node.js。

最簡單的規則: 在 OBS 電腦上執行橋接,這樣 OBS 始終使用 http://127.0.0.1:8124/v1/audio/speech,即使語音伺服器在另一台電腦也是如此。
示意圖:OBS呼叫本機橋接服務,再由橋接服務呼叫文字轉語音伺服器
  1. 告訴橋接伺服器的位置。PowerShell:
    $env:SSN_TTS_TARGET="http://127.0.0.1:8880/v1/audio/speech"
    伺服器在另一台電腦?使用其本機 IP,例如 http://192.168.x.x:8880/v1/audio/speech.
  2. 在 SSN 資料夾中執行 node scripts/local-tts-bridge.cjs。保持執行。
  3. 讓 SSN 指向橋接:
    dock.html?session=YOUR_SESSION&speech=en-US&ttsprovider=customtts&openaiendpoint=http://127.0.0.1:8124/v1/audio/speech&voiceopenai=af_bella

macOS/Linux,一行命令: SSN_TTS_TARGET="http://127.0.0.1:8880/v1/audio/speech" node scripts/local-tts-bridge.cjs。在 local-tts-bridge 資料夾中, node server.cjs 效果相同。用以下參數更改連接埠: SSN_TTS_BRIDGE_PORT=8125。所有選項: 橋接服務README.

GPT-SoVITS 模式

GPT-SoVITS使用自己的 /tts 格式,由橋接轉換。

$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"
node scripts/local-tts-bridge.cjs --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 伺服器模式

部分 F5-TTS 包裝層使用 /synthesize_speech/?text=...&voice=...。橋接負責格式轉換。

$env:SSN_TTS_TARGET="http://127.0.0.1:7860/synthesize_speech/"
node scripts/local-tts-bridge.cjs --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

聲音複製

複製不是 SSN 設定,而是部分語音伺服器的功能。SSN 傳送聊天文字,伺服器選擇複製音色。

  1. 錄製一位說話者的乾淨音訊,通常 3–30 秒,盡量減少背景雜音。
  2. 部分伺服器也需要音訊中說出的準確文字。
  3. 伺服器將音訊轉換成音色設定檔。
  4. SSN 透過以下方式傳送聊天文字: ttsprovider=customtts.
  5. 伺服器傳回音訊(通常 WAV 或 MP3),SSN 負責播放。
只複製自己擁有或獲准使用的聲音。
XTTS-v2預設僅供非商業使用。 它的 Coqui Public Model License 僅允許非商業用途。營利直播可能不符合條件,請先檢查授權條款或取得許可。

顯示記憶體不超過 6 GB 時,先從相容 OpenAI 伺服器上的小模型開始。大模型也可用,但可託管到別處。

選項複製所需材料6 GB GPU 夠用嗎?如何連線
XTTS-v2 / openedai-speech簡短 WAV 音訊可以,約 4 GB直連, /v1/audio/speech。專案已封存。
chatterbox-tts-api / Chatterbox-TTS-Server參考音訊使用 Turbo 或較小分段時很可能夠用直連或橋接。GPU 比 CPU 更流暢,設定因分支而異。
Qwen3-TTS (0.6B / 1.7B)3 秒音訊很可能夠用(0.6B Base)需要相容 OpenAI 的包裝層。
GPT-SoVITS5 秒,1 分鐘效果更好使用 fp16 / 輕量安裝時很可能夠用橋接 --mode gptsovits.
F5-TTS音訊及其逐字稿可能包裝層或橋接 --mode f5 帶有 F5-TTS_server.
MisoTTS 8B提示音訊不夠,建議 24 GB僅遠端託管,儲存庫中沒有本機 REST 端點。

內建 Kokoro 和 Kokoro-FastAPI 不支援音色複製。

已透過 SSN 測試的內容

已使用以下兩種方式檢查: dock.html 和 featured.html:

  • openedai-speech (Piper):已驗證 CPU 真實語音,含直連和橋接。
  • Chatterbox-TTS-Server:已驗證 CPU 真實語音,使用 Emily.wav,包括直接連線和透過橋接連線。
  • chatterbox-tts-api:已驗證請求格式,含直連和橋接。
  • GPT-SoVITS 和 F5-TTS_server:僅透過橋接模式。
  • F5-TTS官方專案 和 Qwen3-TTS:需要先加包裝層(僅提供 CLI、Gradio 或程式庫)。

需要什麼電腦?

這是粗略起點,不是保證。模型大小、文字長度和其他應用程式都會影響記憶體用量。

選項最低配置較舒適配置
系統文字轉語音/eSpeak任何電腦任何電腦
內建Kitten低階CPU,4 GB記憶體筆電 CPU,8 GB 記憶體
內建Piper現代 CPU,4–8 GB 記憶體現代CPU,8 GB記憶體
內建Kokoro現代CPU,8 GB記憶體WebGPU GPU 或快速 CPU,8–16 GB 記憶體
Kokoro-FastAPICPU,8 GB記憶體選用 NVIDIA GPU,8–16 GB 記憶體
openedai-speech PiperCPU,4–8 GB 記憶體CPU,8 GB記憶體
openedai-speech XTTSNVIDIA GPU 約 4 GB,8–16 GB 記憶體6 GB以上顯示記憶體的NVIDIA GPU,16 GB記憶體
Chatterbox部分版本可用 CPU,較慢6 GB以上顯示記憶體的NVIDIA GPU,16 GB記憶體
GPT-SoVITS / F5-TTS / Qwen3-TTSCPU 可測試,較慢6 GB以上顯示記憶體的NVIDIA GPU,16 GB記憶體
MisoTTS 8B6 GB 不夠24 GB GPU 或遠端主機

將音訊送入 OBS

OBS 瀏覽器來源(建議)

適用於內建音色和自己的伺服器。

  1. 新增一個 瀏覽器來源 ,使用你的 dock.html TTS 連結。
  2. 開啟 透過 OBS 控制音訊.
  3. 點選 確定。TTS 現在會出現在 OBS 混音器中。

SSN 桌面應用程式

桌面應用程式使用相同連結設定,但聲音從應用程式而非 OBS 播放。使用以下方式擷取: 桌面音訊 或 音訊輸入擷取(Audio Input Capture)。要將 TTS 與其他聲音分開,請將應用程式輸出到虛擬音訊線: 音訊路由步驟.

不要把應用程式測試與 OBS 混為一談。 在應用程式中按 Test 是從應用程式發起測試。連結放入 OBS 後,必須由 OBS 存取伺服器並播放音訊。
更多桌面應用程式細節

應用程式視窗對瀏覽器權限(CORS)的限制比 Chrome 少。伺服器拒絕瀏覽器請求時,橋接仍是最穩妥的選擇。內建 Kokoro 可使用應用程式自身的 ninjafy.tts 路徑,而不在瀏覽器中載入模型。

系統 TTS (&speech=en-US 且未指定供應商)取決於 OBS 中已有的音色。通常沒有,或無法產生可擷取的聲音。請改用上面的供應商。

並排比較

選項設定品質私人可用於 OBS費用
內建Kokoro無5/5是是免費
內建Piper無4/5是是免費
內建Kitten無3/5是是免費
內建eSpeak無2/5是是免費
Kokoro-FastAPIDocker5/5是是免費
openedai-speechDocker4/5是是免費
ElevenLabsAPI 金鑰5/5否是付費方案
系統 TTS無2/5是需要設定音訊路由免費

解決問題

螢幕截圖式本機文字轉語音疑難排解清單
有的地方可用,有的無法使用?依序檢查:電腦、位址、音色、瀏覽器權限、OBS 音訊。
問題試試這個
應用程式測試正常,OBS 無聲OBS 必須自行存取伺服器。伺服器在另一台電腦?替換 127.0.0.1 替換為本機 IP。檢查 透過 OBS 控制音訊。仍被攔截?在 OBS 電腦執行橋接。
只讀第一個字母或幾個單字移除 ttsquick ,從 OBS 連結移除(例如 &ttsquick=14)並重新整理。測試時也移除 typewriter= 排除時序問題。
伺服器無回應確認 Docker 和容器正在執行。在伺服器電腦開啟 http://127.0.0.1:8880/web/ (Kokoro-FastAPI 或你的伺服器連接埠)。在 OBS 電腦開啟 http://SERVER_LAN_IP:8880/web/。如果失敗,OBS 也無法存取,請檢查伺服器防火牆。
「Blocked by CORS」、「private network」或「failed fetch」請求尚未到達伺服器就被瀏覽器攔截。執行 node scripts/local-tts-bridge.cjs 在 OBS 電腦上執行,並使用 http://127.0.0.1:8124/v1/audio/speech。託管的測試版 Dock 頁面更容易被攔截,橋接或本機應用程式視窗更方便。
音色不對或找不到音色Kokoro-FastAPI: af_bella, af_sarah, am_adam,或其網頁中的音色。openedai-speech: nova, echo, alloy。部分伺服器區分大小寫。
能播放但 OBS 擷取不到開啟 透過 OBS 控制音訊。測試時觀察 OBS 混音器音量表,確保已設定 &ttsprovider=;系統 TTS 可能需要桌面音訊或虛擬音訊線。
找不到Docker映像檔映像標籤會變化,請在以下位置查看目前標籤: Kokoro-FastAPI 或 openedai-speech.

面向伺服器開發者

SSN 與自訂伺服器的通訊方式。僅在建置或偵錯伺服器時需要閱讀。

chat text -> SSN -> your endpoint (or the bridge) -> TTS server -> audio -> SSN plays it
SSN 傳送什麼

帶有 ttsprovider=customtts, localtts 或 openai,SSN 傳送 JSON POST:

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

未設定 API 金鑰時,SSN 不傳送 Authorization 標頭。

SSN 能播放什麼
回應是否可用?說明
音訊檔案是最佳。 audio/mpeg, audio/wav, audio/ogg, audio/aac,或瀏覽器可播放的任何格式。
包含音訊 URL 的 JSON是檢查 url, audio_url, output_url, data.url,以及第一個 data[] 項目。
包含base64音訊的JSON是檢查 audio, audio_data, audioContent, b64_json、巢狀的 data 欄位,以及資料URL。
原始PCM僅在有封裝時以 WAV 檔案或 base64 WAV 傳送。

格式: mp3 體積小且廣泛支援。 wav 適合複製伺服器和橋接測試。使用 opus 僅在伺服器和瀏覽器均支援時使用。

暫不支援串流播放。 SSN 等待完整回應後再播放,請保持聊天訊息簡短。

自己的伺服器連結設定
設定範例功能
ttsprovidercustomtts使用自己的伺服器。(openai 也可用。)
openaiendpointhttp://localhost:8880/v1/audio/speech伺服器位址,連接埠需與伺服器一致。
speechen-US開啟英語 TTS。
voiceopenaiaf_bella音色名稱,取決於伺服器。
openaimodeltts-1-hd模型名稱。預設 tts-1.
openaiformatmp3mp3、wav、opus 或 flac。
openaispeed1.0語速(0.5–2.0)。

也接受: customttsendpoint, localttsendpoint, customttsvoice, localttsvoice, customttsmodel, localttsmodel, customttsformat, localttsformat。朗讀選項,例如 simpletts, skipmessages 和 ttsquick 適用於所有供應商: 所有連結設定.

範例連結:

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