VoxCPM.cpp CUDA 實驗版

VoxCPM 2.0 語音生成工具 測試版

支援聲音描述、角色情境、上傳聲音、歌曲範例與長文串流播放流程;API 預設 http://127.0.0.1:8821

48kHz 輸出cfg / steps 可調長文拆句播放WAV / MP3

Server 連線

VoxCPM2.cpp 預設使用本機 API,檢查成功後再生成語音。

尚未檢查 Server。
聲音描述 / 角色情境用一個欄位描述聲線、角色、距離、情緒與表演方式
上傳你的聲音可註冊 Voice ID 後指定參考聲音生成
歌曲範例5 組歌曲,每組短中長,共 15 種歌曲文本
雙語範例庫10 組一般範例,可切換國語或英文

VoxCPM 2.0 範例庫

10 個一般範例 + 5 個歌曲範例;使用上方統一切換短、中、長與語言。

上傳你的聲音

參考音訊建議 5 到 15 秒,背景乾淨,參考文字需與音訊一致。

尚未註冊參考聲音。

已註冊聲音

VoxCPM.cpp 沒有列表 API,這裡顯示本頁記住的 Voice ID 並逐一檢查。

Voice ID狀態操作
尚無資料

導演控制台

聲音描述與角色情境合併成同一個欄位;指導強度與擴散步數會一併送給 VoxCPM2。

對應 cfg_value,1.0–3.0,預設 2.0。
對應 inference_timesteps,4–30,預設 5。
等待生成。

生成對話紀錄

目前沒有生成紀錄。

聲音描述 / 情境文字音訊
尚無生成紀錄。

串流媒體播放呼叫方式

VoxCPM 支援透過音訊串流輸出 generate_streaming()。互動式應用建議由程式先拆文章,再逐句呼叫與播放。

1. 程式拆文章

將輸入文字依照句號、問號、驚嘆號與換行切成句子或短段落。

2. 逐句朗讀

每次只把一個句子送進 generate_streaming(),比處理單一不斷增長的文字輸入更穩定。

3. 排隊播放

每段生成後立即播放,等這段播完再送下一段,貼近 sd.play() 加 sd.wait() 的做法。

對應 cfg_value,1.0–3.0,串流預設 1.0。
對應 inference_timesteps,4–30,串流預設 4。
尚未送出串流文字。
import sounddevice as sd
import numpy as np

sample_rate = model.tts_model.sample_rate

for chunk in model.generate_streaming(
    text="這是一段串流語音測試!",
):
    sd.play(chunk, samplerate=sample_rate)
    sd.wait()  # 等這段播完再繼續
async function playByChunks(chunks) {
  for (const chunk of chunks) {
    const audio = await generateOneSentence(chunk);
    await audio.play();
    await waitUntilEnded(audio);
  }
}