by Rain Chu | 7 月 9, 2026 | AI , TTS
Qwen3-TTS 這次真正補上的,不只是「又一個開源 TTS 模型」,而是把 AI 語音從單純文字轉語音,往「可以設計聲音」推了一步。對創作者來說,這個差異很大:以前多半是找一段參考音頻去克隆,現在可以先用文字描述你想要的音色,再生成符合角色感的聲音。
我會把 Qwen3-TTS 放在本地 TTS 工具鏈的一個重要位置:它不是完全取代 Index TTS2,也不是只適合做 demo,而是補上了「音色捏臉」這個創作端很需要的能力。尤其當它被包進 ComfyUI 節點後,對做短片、角色對白、旁白、多角色音頻工作流的人會更順手。
如果你之前已經看過 VoxelCPM 本地 TTS 或 本地即時語音 Agent ,Qwen3-TTS 可以理解成另一條更偏「創作型語音生成」的路線。
先講結論:Qwen3-TTS 最值得看的是音色設計
Qwen3-TTS 的幾個核心能力可以拆成三塊:音色設計、音色克隆、自訂聲音與情緒控制,音色克隆大家比較熟,給一段參考音頻,再讓模型生成相似聲音;真正新鮮的是音色設計,你可以用提示詞描述聲音,例如年齡、性別、顆粒感、情緒、語氣、角色氣質。
這件事對內容創作很實用。做科幻短片時,你可以要一個「低沉、沙啞、有壓迫感的中年男聲」;做兒童故事時,可以要「明亮、溫柔、帶笑意的年輕女聲」;做遊戲角色時,可以先把聲音當成角色設定的一部分,而不是等拿到參考音頻後才開始克隆。
這也是 Qwen3-TTS 和 Index TTS2 的關鍵差異,Index TTS2 在參考音頻和情緒控制上仍然很靈活,但 Qwen3-TTS 把「從文字描述生成音色」這件事做成主能力,兩者不是誰完全取代誰,而是切入點不同。
Qwen3-TTS 的三種用法
從 ComfyUI 節點 README 來看,HAIGC 的 Comfyui-HAIGC-QwenTTS 把 Qwen3-TTS 包成幾個常用節點,最核心的是模型載入、聲音設計、聲音克隆、自訂聲音、角色預設保存與多角色對話合成。
用法 需要的模型 適合場景 限制 聲音設計 VoiceDesign 用文字描述角色聲線,先捏出音色 需要會寫清楚聲音提示詞 聲音克隆 Base 用參考音頻生成相似聲音 需要參考音頻與對應文本 自訂聲音 CustomVoice 使用預設說話人或提示詞控制聲音 情緒與音色控制受模型能力限制 多角色對話 搭配角色預設 短劇、廣播劇、遊戲 NPC 對話 要管理角色名與預設檔
這裡有一個實作上很重要的細節:模型要放在 `ComfyUI/models/qwen-tts/` 下面,節點不會幫你自動下載模型。也就是說,這不是裝好節點就直接能跑,還要自己把 Qwen3-TTS 的對應模型資料夾放到正確位置。
ComfyUI 節點讓它更像創作工作流
如果只看 TTS CLI,Qwen3-TTS 會比較像模型測試。但進到 ComfyUI 節點後,它就開始有工作流價值。你可以把文案、角色聲音、參考音頻、角色預設、多角色對話接成流程,最後輸出可用音頻。
這對影片創作者尤其實用。前面整理 OpenMontage 本地 AI 影片工作流 時也提過,影片生成不是只有畫面,旁白、角色語音、字幕和音效都是完整作品的一部分。Qwen3-TTS 這類工具的價值,就是把聲音也放進可控流程裡。
站上之前也整理過 ComfyUI 本機部署工作流 。圖像生成和 TTS 看起來是不同領域,但 ComfyUI 的優勢都是一樣的:把模型變成節點,讓創作者能用流程管理。
音色設計:最像「聲音捏臉」的功能
音色設計最適合用在你還沒有參考音頻,但已經知道角色感的情境。比方說,你想要一個「沙啞、低沉、帶警告意味的戰士聲音」,傳統聲音克隆會問你:參考音頻在哪裡?Qwen3-TTS 的 VoiceDesign 則是讓你先用文字描述聲音。
這對角色型內容很關鍵。短劇、遊戲、動畫、解說頻道,都常常不是缺一個真實人聲,而是缺一個「符合角色設定」的聲音。音色設計讓 TTS 從工具變成創作材料,這是我覺得 Qwen3-TTS 最值得測的地方。
但提示詞也會變成新門檻。你不能只寫「好聽的聲音」,最好描述清楚年齡、性別、音域、情緒、語速、質感、場景。例如:
A deep, raspy middle-aged male voice, slow pace, serious and threatening tone, cinematic fantasy character.
中文也可以寫,但英文描述通常比較容易控制細節。之後如果要大量產角色聲音,我會建議把常用聲音提示詞整理成自己的 prompt library。
聲音克隆:自然度不錯,但仍要看參考音頻品質
Qwen3-TTS 的聲音克隆需要參考音頻,也最好提供參考音頻對應的文本,這點和很多 zero-shot voice cloning 工具一樣:參考音頻越乾淨,語速和情緒越穩,克隆結果越容易自然。
這裡我會提醒兩件事。第一,不要拿太吵、太短、音量忽大忽小的音頻當參考;第二,克隆聲音牽涉聲紋與授權問題,不要拿真人聲音去做未經同意的商業使用,工具越方便,這條線越要自己守住。
如果你主要目標是語音克隆,可以把 Qwen3-TTS 和 VoxCPM 語音克隆 一起測,不要只看單句 demo,要測長句、情緒、停頓、重複生成穩定性。
情緒控制:Qwen3-TTS 和 Index TTS2 的取捨
Qwen3-TTS 可以透過自訂聲音與預設說話人做某種程度的情緒與語氣控制,但這裡要小心期待值,它的自訂情緒方式更偏「用預設或提示詞控制」,而 Index TTS2 在某些情境下則可以直接用參考音頻帶出情緒,操作上會更直覺。
所以我不會說 Qwen3-TTS 全面打掉 Index TTS2。更準確的說法是:
你想從文字描述直接設計聲音,Qwen3-TTS 更值得測。
你有很好的參考音頻,想保留聲音和情緒,Index TTS2 仍然有優勢。
你要做 ComfyUI 影音工作流,Qwen3-TTS 節點會更容易串進流程。
你要穩定量產,兩者都要測長文本、批次生成和錯誤率。
安裝與使用時先注意這幾點
模型要自己下載: 節點預設讀 `ComfyUI/models/qwen-tts/`,資料夾命名要和模型後綴一致。
先確認模型類型: VoiceDesign、Base、CustomVoice 對應的功能不同,載錯模型就會覺得節點怪怪的。
FP16 / FP32 和 CUDA 要看環境: GPU 跑得快,但顯存、驅動、torch 版本都會影響穩定性。
角色預設要管理好: 如果要做多角色對話,角色名、.pt 預設檔和對白格式最好固定。
節點早期可能有 bug: 遇到預設節點跑不起來,先看 GitHub issue 和最新 commit,不要急著判定模型不可用。
如果你只是想快速試用,也可以先用 ModelScope 的 Qwen3-TTS demo 或 RunningHub 工作流 感受效果。真正要放進自己的內容生產流程,再回頭做本地 ComfyUI 部署。
適合誰?
我覺得 Qwen3-TTS 特別適合四種人。
短片創作者。 需要快速做旁白、角色音、警告音、廣播音,不想每次找真人錄音。
遊戲與互動敘事作者。 多角色對話、NPC 聲音、角色預設會很有用。
ComfyUI 工作流玩家。 想把聲音生成接進圖像、影片、字幕和後製流程。
本地 AI 研究者。 想比較 Qwen3-TTS、Index TTS2、VoxCPM、ChatTTS 等不同開源 TTS 路線。
如果你只需要最簡單的文字轉語音,反而不一定要上這套。Qwen3-TTS 的價值在於音色設計、角色聲音與工作流整合,而不是單純把一段文字念出來。
資源整理
Qwen3-TTS 補上的是創作者最想要的控制感
Qwen3-TTS 最讓我在意的,不是它又多會念文字,而是它讓聲音開始可以被設計。對內容創作來說,聲音不是最後補上的配件,而是角色、情緒和敘事的一部分。
它目前還不是無腦安裝、無腦量產的工具。模型要自己放、節點要確認版本、不同功能要對應不同模型,ComfyUI 工作流也需要一點整理。但方向很明確:TTS 正在從「文字轉語音」進化成「聲音設計工具」。
一句話總結:Index TTS2 仍然香,但 Qwen3-TTS 把音色捏臉這塊補起來了。之後做角色語音、短劇旁白、多角色對話,我會把它列入優先測試清單。
by Rain Chu | 7 月 8, 2026 | Agent , AI , 語音合成 , 語音辨識
Hugging Face 的 speech-to-speech 真正有趣的地方,不只是「本地 AI 語音聊天」這句話,而是它把即時語音 Agent 拆成一條清楚的工程管線:VAD 偵測你什麼時候開始和結束說話,STT 把語音轉成文字,LLM 產生回應,TTS 再把文字變回聲音。
這條路線的價值很直覺:如果你不想把麥克風聲音、私人對話、公司資料一路送到雲端,那就把語音 Agent 搬回自己的機器。代價也很明顯:你要處理 Python、FFmpeg、CUDA、模型下載、本地 LLM server、TTS 後端、瀏覽器端 WebSocket。這不是「安裝一個 App 就結束」的工具。
如果你之前看過 VoxelCPM 本地 TTS ,這篇可以當成下一步:TTS 只是讓 AI 開口,speech-to-speech 則是把「聽、想、說」接成一個即時循環。
先講結論:它不是語音模型,而是一條可替換的語音 Agent 管線
huggingface/speech-to-speech 的 README 把架構講得很清楚:這是一條低延遲、模組化的 voice-agent pipeline,順序是 VAD → STT → LLM → TTS,並且透過 OpenAI Realtime-compatible WebSocket API 對外提供服務。
也就是說,你可以把支援 OpenAI Realtime 協議的 client 指到本機 server。
這個設計比單純做一個 demo 更有意思,因為每一段都能換。
STT 可以用 Parakeet、Whisper、Faster Whisper、MLX Whisper 或 Paraformer;LLM 可以接 OpenAI-compatible provider,也可以接 vLLM、llama.cpp、llama-server;TTS 可以用 Qwen3-TTS、Kokoro、Pocket TTS、ChatTTS 或 MMS TTS。
換句話說,它的重點不是某個模型最強,而是把語音 Agent 做成可插拔架構。
這和 OpenWork / OpenCode 工作台 的方向有點像:真正可長期使用的 AI 工具,不應該只綁死在單一供應商或單一模型。
Speech-to-speech 和傳統語音翻譯有什麼差別?
Hugging Face Audio Course 裡對 speech-to-speech translation 的說明很適合拿來釐清概念。
傳統機器翻譯是文字到文字,speech-to-speech 則是語音到語音。最常見的做法是串接:先把語音轉成文字,再做翻譯或生成,最後合成語音。
它也提醒一個很重要的問題:管線越長,錯誤越會累積,延遲也越高。
ASR 認錯一個字,後面的 LLM 可能照著錯字理解;LLM 回答太長,TTS 就要等更久;TTS 聲音不自然,最後體驗還是會掉下來。
所以本地即時語音 Agent 的關鍵不是只看「能不能講話」,而是看四件事:
語音辨識是不是準,尤其是中文、口音、背景噪音。
LLM 回應是不是夠快,不要讓人等到出戲。
TTS 聲音是不是自然,長時間聽會不會疲勞。
整條管線的延遲是不是穩定,而不是偶爾順、偶爾卡。
官方預設路線:先跑起 realtime server
官方 quickstart 很短:
pip install speech-to-speech
export OPENAI_API_KEY=...
speech-to-speech
跑起來之後,server 會在本機開一個 OpenAI Realtime 相容端點,常見位置是:
ws://localhost:8765/v1/realtime
預設路線會用本地 STT、本地 TTS,再把 LLM 接到 OpenAI-compatible API。你如果想讓 LLM 也留在本機,可以用 llama.cpp 啟動本地模型 server,再把 `responses_api_base_url` 指到本機。
speech-to-speech \
--model_name "ggml-org/gemma-4-E4B-it-GGUF" \
--responses_api_base_url "http://127.0.0.1:8080/v1" \
--responses_api_api_key ""
這裡的重點是 OpenAI-compatible。只要你的本地 LLM server 能提供類似 OpenAI API 的介面,它就有機會接進來。這也是為什麼 Ollama 遠端連線 和本地 OpenAI-compatible server 的設定很重要:語音只是入口,真正回答問題的是後面的 LLM。
Windows 實作路線:不是難,是零件很多
核心流程可以簡化成這樣:
裝 Python 3.11、Git、FFmpeg。
建立 `C:\s2s` 之類的資料夾,開 venv。
安裝 `speech-to-speech`。
用 llama.cpp 跑本地 Qwen 模型,開在 `http://127.0.0.1:8080/v1`。
啟動 speech-to-speech,把 STT 指到 Whisper、LLM 指到本地 server、TTS 指到 Qwen3-TTS。
開網頁 client,WebSocket 指到 `localhost:8765`。
這裡最容易踩坑的是 FFmpeg 和 winget。留言裡有人遇到 `winget` 找不到,這通常代表 Windows App Installer / winget 沒裝好,或 PowerShell 環境找不到它。這時候不要卡在同一條命令,可以改成手動下載 FFmpeg,或先修好 winget,再重新開 PowerShell。
架構表:每一段都可以替換,但每一段也都會出事
階段 作用 常見選擇 容易卡住的地方 VAD 判斷使用者何時開始/停止說話 Silero VAD 背景噪音、切句太早或太晚 STT 語音轉文字 Parakeet、Whisper、Faster Whisper 中文辨識、口音、GPU/CPU 速度 LLM 理解問題並產生回應 OpenAI-compatible API、llama.cpp、vLLM、Ollama 類服務 延遲、上下文長度、模型能力 TTS 文字轉語音 Qwen3-TTS、Kokoro、Pocket TTS、ChatTTS 聲音自然度、CUDA wheel、中文品質 Client 麥克風輸入與播放 Realtime WebSocket client、網頁呼吸球介面 瀏覽器權限、WebSocket 位置、服務啟動順序
這張表就是我對本地語音 Agent 的看法:模組化很香,但你不能只看成功 demo 任一段延遲太高、模型太大、依賴裝錯、WebSocket 指錯,都會讓整體體驗掉下來。
4GB 顯存、4090、CPU:期待值要分開看
如果你只是想體驗,本地小模型加 CPU/GPU 混跑可以試;如果你想每天使用,就要認真看顯卡、VRAM、記憶體、模型大小與量化格式。這部分可以搭配 AI 工作站顯卡選購 那篇看,因為語音 Agent 不是只吃一個模型,而是一整條 pipeline。
本地部署值不值得?
安裝太複雜、Python 依賴一直重裝、免費雲端語音也能用、中文場景不一定比微信等現成工具舒服。
我會這樣判斷:
如果你只想偶爾語音聊天 ,雲端 App 更省事。
如果你在意隱私、離線、可控模型 ,本地 speech-to-speech 才有意義。
如果你要接自己的 Agent 或自動化流程 ,OpenAI Realtime 相容 API 很有價值。
如果你不想處理依賴 ,等整合包或 Docker / 一鍵腳本會比較舒服。
有留言建議做整合包,把 Python、虛擬環境、依賴、模型檔都打包好。這個方向很務實。語音 Agent 要走向一般使用者,最重要的可能不是模型再強一點,而是安裝流程少掉一半。
接進 Hermes、OpenWork 或自己的 Agent:語音只是入口
有人問如果部署在 Hermes 裡,是不是就不用打字了。方向是對的,但要分清楚:speech-to-speech 解決的是語音輸入與語音輸出,Agent 真正能不能工作,還要看後面的工具調用、上下文、記憶、權限與任務執行。
也就是說,語音不是 Agent 的全部,只是更自然的控制入口。你可以想像之後用語音叫本地 Agent 幫你查資料、改檔案、跑腳本、操作工作流,但這需要像 OpenWork 或 Hermes Agent 這類工作台或 runtime 來承接任務。
真正有用的組合會是:speech-to-speech 負責「聽和說」,Agent runtime 負責「做事」,本地 LLM / 工具 / MCP 負責「連到你的資料和系統」。語音只是讓人更容易下指令,不能替代完整的任務架構。
資源整理
本地即時語音 Agent 很香,但現在還偏工程師玩具
speech-to-speech 讓本地語音 Agent 的架構變得很清楚:你可以把 VAD、STT、LLM、TTS 串起來,對外提供 OpenAI Realtime 相容 API,再用網頁或其他 client 連進來。這條路很有想像空間,尤其適合隱私敏感、離線使用、機器人、客服、語言練習、自建 AI 助手。
但我不會把它包裝成人人都該裝。現階段它還需要處理太多環境問題,Windows 下尤其明顯。真正適合的人,是願意花時間把本地模型、音訊依賴、GPU、WebSocket 和 Agent runtime 串起來的人。
一句話總結:本地即時語音不是為了取代手機上的語音助手,而是為了把「能聽、能想、能說」這個入口,接到你自己的模型、資料和工作流上。這件事如果跑順,會比單純聊天更有價值。
FAQ
speech-to-speech 是什麼?
speech-to-speech 是 Hugging Face 的開源語音 Agent 管線,透過 VAD、STT、LLM、TTS 四個階段,把使用者語音轉成模型回應,再合成語音輸出。
它可以完全本地運行嗎?
可以,但需要把 STT、LLM、TTS 都換成本地後端,例如 Whisper、llama.cpp 或其他 OpenAI-compatible 本地 LLM server,以及 Qwen3-TTS 等本地語音合成模型。
為什麼不用雲端語音助手就好?
如果只是日常聊天,雲端語音助手更省事。本地方案的價值在於隱私、離線、可控模型、可接自有資料與 Agent 工作流。
by Rain Chu | 4 月 18, 2026 | AI , 語音合成
🧠 什麼是 VoxCPM?
VoxCPM 是由 OpenBMB 推出的新一代語音生成模型,主打:
👉 超低樣本聲音克隆(只需5秒) 👉 完全本地運行(無需雲端) 👉 多語言+多方言支持(30+)
簡單講一句話:
👉 它就是「語音界的 Stable Diffusion」
🚀 核心特色
🎙️ 1️⃣ 極致聲音複製(5秒搞定)
只需要一段短短語音(約5秒):
👉 幾乎達到「真人等級」
🎚️ 2️⃣ 專業播音員等級輸出
生成語音具備:
清晰度高(接近錄音室品質)
節奏自然
可長文本生成(Podcast / 有聲書)
👉 可直接商用(需注意授權)
🌏 3️⃣ 多語言+方言(重點)
支援:
中文(普通話)
台語(閩南語)
廣東話
四川話
英文 / 日文 / 韓文 等
👉 這點直接屌打很多 TTS 工具
🔒 4️⃣ 完全本地運行
不像:
ElevenLabs(雲端)
PlayHT(雲端)
VoxCPM:
✅ 無需上傳聲音 ✅ 不怕資料外洩 ✅ 無 API 費用
⚙️ 安裝教學(本地部署)
📦 硬體需求(建議)
GPU:RTX 3060 以上(最佳)
RAM:16GB+
OS:Ubuntu / Windows(WSL)
🧩 Step 1:下載專案
官方 Repo👇 👉 VoxCPM GitHub repository
🧩 Step 2:安裝環境
🧩 Step 3:下載模型
依照 repo 指示下載:
🧩 Step 4:執行推理
🧩 Step 5:使用WEBUI
# WebUI
python lora_ft_webui.py # http://localhost:7860
🧠 進階玩法(你可以做什麼)
💰 商業應用
AI 配音 SaaS
有聲書生成平台
YouTube 自動旁白
🧪 高階玩法
聲音角色庫(多人 voice profile)
Telegram 語音 Bot
客製客服語音
⚠️ 注意事項(很重要)
⚙️ 技術限制
🆚 VoxCPM vs 其他 TTS
工具 本地 聲音克隆 方言 成本 VoxCPM ✅ ✅ ✅ 免費 ElevenLabs ❌ ✅ 普通 $$$ PlayHT ❌ ✅ 普通 $$$
👉 結論:本地部署 = VoxCPM 完勝
參考資料
官方網站
移除背景聲音工具(UVR5)
by Rain Chu | 9 月 2, 2024 | AI , 語音合成
免費且超強大的 AI TTS,文字轉語音模型+工具,有許多語氣的控制,也可以很精準的寫程式控制效果,是RD眼中好用的Local端開源的TTS
特色說明
1.大規模的數據:10萬小時的訓練資料,現在開源的是4小時的版本
2.專用設計:專門對於對話情境、視頻介紹的情境所設計的模型
3.開源特性:可以很簡單的整合到你的WEB中
4.支持語氣:oral, laugh, break
安裝前準備
python 3.10
CUDA
GIT
gradio
安裝說明
github 複製
git clone https://github.com/2noise/ChatTTS
cd ChatTTS
安裝依賴
pip install --upgrade -r requirements.txt
執行 webui
python examples/web/webui.py
利用 CLI
python examples/cmd/run.py "Your text 1." "Your text 2."
要整合在 python 程式碼中,可以安裝 PyPI
pip install ChatTTS
pip install git+https://github.com/2noise/ChatTTS
pip install -e .
整合程式碼
###################################
# Sample a speaker from Gaussian.
rand_spk = chat.sample_random_speaker()
print(rand_spk) # save it for later timbre recovery
params_infer_code = ChatTTS.Chat.InferCodeParams(
spk_emb = rand_spk, # add sampled speaker
temperature = .3, # using custom temperature
top_P = 0.7, # top P decode
top_K = 20, # top K decode
)
###################################
# For sentence level manual control.
# use oral_(0-9), laugh_(0-2), break_(0-7)
# to generate special token in text to synthesize.
params_refine_text = ChatTTS.Chat.RefineTextParams(
prompt='[oral_2][laugh_0][break_6]',
)
wavs = chat.infer(
texts,
params_refine_text=params_refine_text,
params_infer_code=params_infer_code,
)
###################################
# For word level manual control.
text = 'What is [uv_break]your favorite english food?[laugh][lbreak]'
wavs = chat.infer(text, skip_refine_text=True, params_refine_text=params_refine_text, params_infer_code=params_infer_code)
"""
In some versions of torchaudio, the first line works but in other versions, so does the second line.
"""
try:
torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]).unsqueeze(0), 24000)
except:
torchaudio.save("word_level_output.wav", torch.from_numpy(wavs[0]), 24000)
V3版本
VIDEO
音色庫
https://www.modelscope.cn/studios/ttwwwaa/chattts_speaker
注意事項
1.是否要使用CUDA,需要的話,記得安裝依賴
2.要用CUDA,怎選擇 Linux 平台,相容性比較好
3.Python最好用3.10版本,並且用conda
直接使用
https://chattts.com
colab
modalScope
參考資源
ChatTTS Github
ChatTTS官網
Chat TTS UI
Chat TTS 翻譯
MediaFire一件安裝包
Lobe Chat UI-有plugin,多模態的AI CHAT UI – 雨 (rain.tips)
AI Tools – AI工具大全(總整理) – 雨 (rain.tips)
搭配 Free AI 產圖Flux
VIDEO
VIDEO
VIDEO
近期留言