![[Open Source] **VoxCPM2:免分詞,繁中語音合成,立刻上手體驗!** [Open Source] **VoxCPM2:免分詞,繁中語音合成,立刻上手體驗!**](https://i0.wp.com/raw.githubusercontent.com/OpenBMB/VoxCPM/refs/heads/main/assets/voxcpm_logo.png?ssl=1)
VoxCPM2:免 Tokenizer 的多語言語音合成,台灣人也能輕鬆上手!
大家好!今天要為大家介紹一個超酷的語音合成模型: VoxCPM2。 這是一個由 OpenBMB 開發的 免 Tokenizer (免分詞器) 的文字轉語音(TTS)系統,它能直接生成連續的語音表示,實現高度自然和富有表現力的語音合成。對於台灣的讀者來說,這代表著我們可以輕鬆地用繁體中文或其他支援的語言,讓文字變成聽起來像真人的聲音!
什麼是 VoxCPM2?
簡單來說,VoxCPM2 是一個 AI 模型,它可以將文字轉換成語音。它的特別之處在於:
- 免 Tokenizer: 傳統的 TTS 模型需要將文字分解成離散的 token (類似於文字的片段),然後再轉換成語音。VoxCPM2 直接處理連續的語音,因此可以產生更自然、更流暢的語音效果。
- 多語言支援: VoxCPM2 支援 30 種語言,包含繁體中文!無論你是想用中文、英文、日文還是其他語言,VoxCPM2 都能幫你實現。
- 語音設計: 你可以用自然語言描述想要的聲音 (例如:年輕女性、溫柔的聲音),VoxCPM2 就能生成符合描述的全新聲音。
- 語音克隆: 你可以提供一段短的錄音,VoxCPM2 就能克隆出這個聲音,甚至可以控制語氣、速度和風格。
- 高品質輸出: VoxCPM2 可以輸出 48kHz 的錄音室級音質,讓你聽到的聲音更清晰、更逼真。
為什麼 VoxCPM2 對台灣讀者來說很棒?
- 繁體中文支援: 這是最重要的!你可以直接用繁體中文輸入,VoxCPM2 就能生成標準的中文語音。
- 豐富的應用場景:
- 內容創作: 你可以將你的部落格文章、小說、劇本等轉換成語音,製作有聲書、Podcast 等內容。
- 遊戲開發: 為你的遊戲角色配音,創造更豐富的遊戲體驗。
- 語音助手: 開發自己的語音助手,讓它用自然的聲音與你互動。
- 學習語言: 聽取不同語言的語音,幫助你學習發音。
- 個人娛樂: 玩玩語音設計和語音克隆,體驗 AI 語音的樂趣。
- 開源且商業可用: VoxCPM2 的程式碼和模型權重都是開源的,你可以免費使用它,甚至可以用於商業用途。
快速上手:如何使用 VoxCPM2?
1. 安裝
首先,你需要安裝 voxcpm 套件。請確保你的 Python 版本在 3.10 以上 (但不超過 3.13),並且安裝了 PyTorch (2.5.0 以上) 和 CUDA (12.0 以上)。
pip install voxcpm
2. Python API (程式碼範例)
以下是一些簡單的 Python 程式碼範例,讓你快速上手:
🗣️ 文字轉語音 (Text-to-Speech)
from voxcpm import VoxCPM
import soundfile as sf
model = VoxCPM.from_pretrained(
"openbmb/VoxCPM2",
load_denoiser=False,
)
wav = model.generate(
text="VoxCPM2 是目前推薦的,用於逼真的多語言語音合成的版本。",
cfg_value=2.0,
inference_timesteps=10,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)
print("已儲存:demo.wav")
這段程式碼會將文字 “VoxCPM2 是目前推薦的,用於逼真的多語言語音合成的版本。” 轉換成語音,並儲存為 “demo.wav” 檔案。你可以根據自己的需求修改 text 參數,輸入不同的文字。
如果你想從 ModelScope 下載模型,請先安裝 modelscope:
pip install modelscope
然後修改程式碼如下:
from modelscope import snapshot_download
snapshot_download("OpenBMB/VoxCPM2", local_dir='./pretrained_models/VoxCPM2') # 指定儲存模型的本地目錄
from voxcpm import VoxCPM
import soundfile as sf
model = VoxCPM.from_pretrained("./pretrained_models/VoxCPM2", load_denoiser=False)
wav = model.generate(
text="VoxCPM2 是目前推薦的,用於逼真的多語言語音合成的版本。",
cfg_value=2.0,
inference_timesteps=10,
)
sf.write("demo.wav", wav, model.tts_model.sample_rate)
🎨 語音設計 (Voice Design)
使用自然語言描述來創造聲音,不需要任何參考音檔! 將描述放在 text 開頭的括號中 (例如 "(年輕女性,溫柔甜美的聲音)你好,歡迎來到 VoxCPM2!"):
wav = model.generate(
text="(一位年輕女性,聲音溫柔甜美)哈囉,歡迎來到 VoxCPM2!",
cfg_value=2.0,
inference_timesteps=10,
)
sf.write("voice_design.wav", wav, model.tts_model.sample_rate)
這段程式碼會生成一個符合 “一位年輕女性,聲音溫柔甜美” 描述的聲音,並將 “哈囉,歡迎來到 VoxCPM2!” 這句話轉換成語音。
🎛️ 可控語音克隆 (Controllable Voice Cloning)
提供一個參考音檔,模型會克隆該聲音,你還可以控制速度、情緒或風格。
wav = model.generate(
text="這是一個由 VoxCPM2 產生的克隆聲音。",
reference_wav_path="路徑/到/你的聲音.wav",
)
sf.write("clone.wav", wav, model.tts_model.sample_rate)
wav = model.generate(
text="(稍微快一點,語氣活潑)這是一個帶有風格控制的克隆聲音。",
reference_wav_path="路徑/到/你的聲音.wav",
cfg_value=2.0,
inference_timesteps=10,
)
sf.write("controllable_clone.wav", wav, model.tts_model.sample_rate)
這段程式碼會克隆指定音檔的聲音,並將文字轉換成語音。第二個例子則加入了風格控制,讓聲音聽起來更活潑。
🎙️ 終極克隆 (Ultimate Cloning)
提供參考音檔及其確切的轉錄,實現基於音訊續寫的克隆,重現每個語音細微差異。為了獲得最大的克隆相似度,將相同的參考剪輯傳遞給 reference_wav_path 和 prompt_wav_path,如下所示:
wav = model.generate(
text="這是一個使用 VoxCPM2 的終極克隆演示。",
prompt_wav_path="路徑/到/你的聲音.wav",
prompt_text="參考音訊的轉錄。",
reference_wav_path="路徑/到/你的聲音.wav", # 選擇性,為了更好的相似度
)
sf.write("hifi_clone.wav", wav, model.tts_model.sample_rate)
3. CLI 命令行工具
VoxCPM2 也提供了 CLI 工具,讓你更容易使用。以下是一些常用的指令:
# 語音設計 (無需參考音訊)
voxcpm design \
--text "VoxCPM2 帶來錄音室級的多語言語音合成。" \
--output out.wav
# 可控語音克隆 (帶有風格控制)
voxcpm design \
--text "VoxCPM2 帶來錄音室級的多語言語音合成。" \
--control "年輕女性聲音,溫柔和藹,略帶微笑" \
--output out.wav
# 語音克隆 (參考音訊)
voxcpm clone \
--text "這是一個語音克隆演示。" \
--reference-audio 路徑/到/你的聲音.wav \
--output out.wav
# 終極克隆 (提示音訊 + 轉錄)
voxcpm clone \
--text "這是一個語音克隆演示。" \
--prompt-audio 路徑/到/你的聲音.wav \
--prompt-text "參考轉錄" \
--reference-audio 路徑/到/你的聲音.wav \ # 選擇性,為了更好的相似度
--output out.wav
# 批次處理
voxcpm batch --input examples/input.txt --output-dir outs
# 顯示幫助
voxcpm --help
4. Web Demo 網頁演示
你可以使用官方提供的 Web Demo,在網頁上體驗 VoxCPM2:
python app.py --port 8808 # 然後在瀏覽器中開啟:http://localhost:8808
5. 部署與加速 (Nano-vLLM)
如果你需要高吞吐量的服務,可以使用 Nano-vLLM-VoxCPM,這是一個基於 Nano-vLLM 的專用推理引擎,支援並發請求和非同步 API。
pip install nano-vllm-voxcpm
from nanovllm_voxcpm import VoxCPM
import numpy as np, soundfile as sf
server = VoxCPM.from_pretrained(model="/你的/VoxCPM/路徑", devices=[0])
chunks = list(server.generate(target_text="哈囉,來自 VoxCPM!"))
sf.write("out.wav", np.concatenate(chunks), 48000)
server.stop()
VoxCPM2 的模型與版本
| VoxCPM2 | VoxCPM1.5 | VoxCPM-0.5B | |
|---|---|---|---|
| 狀態 | 🟢 最新 | 穩定 | 舊版 |
| 後端參數 | 2B | 0.6B | 0.5B |
| 音訊取樣率 | 48kHz | 44.1kHz | 16kHz |
| LM Token 速率 | 6.25Hz | 6.25Hz | 12.5Hz |
| 語言 | 30 | 2 (zh, en) | 2 (zh, en) |
| 克隆模式 | 獨立參考 & 續寫 | 僅續寫 | 僅續寫 |
| 語音設計 | ✅ | — | — |
| 可控語音克隆 | ✅ | — | — |
| SFT / LoRA | ✅ | ✅ | ✅ |
| RTF (RTX 4090) | ~0.30 | ~0.15 | ~0.17 |
| Nano-VLLM 中的 RTF (RTX 4090) | ~0.13 | ~0.08 | ~0.10 |
| VRAM | ~8 GB | ~6 GB | ~5 GB |
| 權重 | 🤗 HF / MS | 🤗 HF / MS | 🤗 HF / MS |
| 技術報告 | 即將推出 | — | arXiv ICLR 2026 |
| 演示頁面 | 音訊樣本 | — | 音訊樣本 |
更多資源
- 官方文件: voxcpm.readthedocs.io 提供了詳細的說明和教學。
- 範例程式碼: 文件裡有更多範例,可以幫助你更好地理解如何使用 VoxCPM2。
- 社群: 加入 Discord 和 Feishu 社群,和其他使用者交流,分享你的經驗。
限制與風險
- 濫用風險: VoxCPM2 的語音克隆技術可以生成非常逼真的語音。禁止將 VoxCPM 用於冒充、欺詐或散佈虛假資訊。強烈建議明確標記任何 AI 生成的內容。
- 可控性: 語音設計和可控語音克隆的結果可能因運行而異。建議多嘗試幾次,以獲得所需的聲音或風格。
- 語言支援: VoxCPM2 官方支援 30 種語言。對於未列出的語言,歡迎直接測試或嘗試使用你自己的資料進行微調。我們計劃在未來的版本中擴展語言覆蓋範圍。
結語
VoxCPM2 是一個非常強大的 TTS 模型,對於台灣的內容創作者、遊戲開發者和語言學習者來說,都是一個非常有用的工具。快去嘗試一下,創造屬於你自己的聲音吧! 如果你在使用過程中遇到任何問題,歡迎在下方留言,一起交流討論!
參考閱讀
https://github.com/OpenBMB/VoxCPM