Web Analytics

ZipVoice

⭐ 748 stars Traditional Chinese by k2-fsa

🌐 語言

ZipVoice⚡

極速且高品質的零樣本文本轉語音,採用流匹配技術

概述

ZipVoice 是一系列基於流匹配的快速且高品質零樣本 TTS 模型。

1. 主要特點

2. 模型變體

模型名稱 描述 論文 演示
ZipVoice 基礎模型,支援中英文零樣本單說話人 TTS。
ZipVoice-Distill ZipVoice 的蒸餾版本,速度更快且性能損失極小。
ZipVoice-Dialog 基於 ZipVoice 的對話生成模型,可生成單聲道雙方語音對話。
ZipVoice-Dialog-Stereo ZipVoice-Dialog 的立體聲變體,支援雙聲道對話生成,讓每位說話者分配至不同的聲道。

最新消息

2025/07/14ZipVoice-DialogZipVoice-Dialog-Stereo 兩款語音對話生成模型正式釋出。arXiv demo page

2025/07/14OpenDialog 資料集,包含 6.8k 小時語音對話資料,正式釋出。下載連結:hf, ms。詳情請見 arXiv

2025/06/16ZipVoiceZipVoice-Distill 模型正式釋出。arXiv demo page

安裝

1. 複製 ZipVoice 原始碼庫

git clone https://github.com/k2-fsa/ZipVoice.git

2.(可選)建立 Python 虛擬環境

python3 -m venv zipvoice
source zipvoice/bin/activate

3. 安裝所需的套件

pip install -r requirements.txt

4. 安裝 k2 以進行訓練或高效推理

k2 是訓練所必需的,並且可以加速推理。然而,即使不安裝 k2,你仍然可以使用 ZipVoice 的推理模式。

注意: 請確保安裝與你的 PyTorch 和 CUDA 版本相符的 k2 版本。例如,如果你使用的是 pytorch 2.5.1 和 CUDA 12.1,你可以按照以下方式安裝 k2:

pip install k2==1.24.4.dev20250208+cuda12.1.torch2.5.1 -f https://k2-fsa.github.io/k2/cuda.html
請參閱 https://k2-fsa.org/get-started/k2/ 以了解詳情。 中國大陸用戶可參考 https://k2-fsa.org/zh-CN/get-started/k2/。

python3 -c "import k2; print(k2.__file__)"

使用方式

1. 單一說話者語音生成

要使用我們預訓練的 ZipVoice 或 ZipVoice-Distill 模型生成單一說話者語音,請使用以下指令(所需模型將自 HuggingFace 下載):

#### 1.1 單句推論

python3 -m zipvoice.bin.infer_zipvoice \
    --model-name zipvoice \
    --prompt-wav prompt.wav \
    --prompt-text "I am the transcription of the prompt wav." \
    --text "I am the text to be synthesized." \
    --res-wav-path result.wav
#### 1.2 一系列句子的推論

python3 -m zipvoice.bin.infer_zipvoice \
    --model-name zipvoice \
    --test-list test.tsv \
    --res-dir results

2. 對話語音生成

#### 2.1 推論指令

要使用我們預訓練的 ZipVoice-Dialogue 或 ZipVoice-Dialogue-Stereo 模型生成雙方對話語音,請使用以下指令(所需模型將從 HuggingFace 下載):

python3 -m zipvoice.bin.infer_zipvoice_dialog \
    --model-name "zipvoice_dialog" \
    --test-list test.tsv \
    --res-dir results
分別產生單聲道和立體聲對話。

#### 2.2 輸入格式

test.tsv 的每一行都是以下格式之一:

(1) 合併提示格式,其中兩位說話者的提示音訊和轉錄被合併為一個提示 wav 檔案:

{wav_name}\t{prompt_transcription}\t{prompt_wav}\t{text}

(2) 分割提示格式,其中兩位說話者的音檔和文字轉錄分別存在不同檔案中:

{wav_name}\t{spk1_prompt_transcription}\t{spk2_prompt_transcription}\t{spk1_prompt_wav}\t{spk2_prompt_wav}\t{text}

3 使用指引:

#### 3.1 提示長度

我們建議使用較短的提示 wav 檔案(例如單一說話者語音生成少於 3 秒,對話語音生成少於 10 秒),以加快推論速度。過長的提示會降低推論速度並影響語音品質。

#### 3.2 速度優化

如果推論速度不理想,可以透過以下方式加快速度:

#### 3.3 記憶體控制

所提供的文字將依標點符號(單一說話者語音生成)或說話者換人符號(對話語音生成)分段。分段後的文字將以批次處理。因此,模型可用幾乎固定的記憶體用量處理任意長度文字。可透過調整 --max-duration 參數控制記憶體使用量。

#### 3.4 「原始」評估

預設會對輸入(提示 wav、提示文字轉錄及文字)進行預處理,以提升推論效率及效能。如欲以完全原始輸入評估模型(例如重現論文結果),可傳入 --raw-evaluation True

#### 3.5 短文字

在生成非常短的語音(例如一兩個字)時,生成語音可能會略掉部分發音。此時可傳入 --speed 0.3(0.3 為可調參數),以延長生成語音時間。

#### 3.6 修正中文多音字發音錯誤

我們使用 pypinyin 來將中文字符轉換為拼音。然而,它偶爾會將多音字拼錯。

要手動更正這些錯誤發音,請將正確的拼音用尖括號 < > 括起,並包含聲調標記

範例:

> 注意:如果需要手動指定多個拼音,每個拼音都用 <> 括起,例如:这把十公分

#### 3.7 移除生成語音中的長時間靜音

模型會自動判斷生成語音中的靜音位置和長度。有時在語音中間會有較長的靜音。如果您不希望這樣,可以傳遞 --remove-long-sil 來移除生成語音中間的長時間靜音(邊緣靜音預設會被移除)。

#### 3.8 模型下載

如果您在下載預訓練模型時連接 HuggingFace 有困難,請嘗試將端點切換為鏡像站:export HF_ENDPOINT=https://hf-mirror.com

訓練您自己的模型

請參閱 egs 目錄以獲取訓練、微調和評估的範例。

生產部署

NVIDIA Triton GPU 執行環境

如需具備高效能與可擴展性的生產級部署,請參閱 Triton Inference Server 整合,該方案提供最佳化的 TensorRT 引擎、並發請求處理,以及同時支援 gRPC/HTTP API 以供企業使用。

CPU 部署

請參閱 sherpa-onnx 以獲得基於 CPU 的 C++ 部署解決方案。

討論與交流

您可以直接在 Github Issues 上討論。

您也可以掃描二維碼加入我們的微信群或關注我們的微信公眾號。

| 微信群 | 微信公眾號 | | ------------ | ----------------------- | |wechat |wechat |

引用

@article{zhu2025zipvoice,
      title={ZipVoice: Fast and High-Quality Zero-Shot Text-to-Speech with Flow Matching},
      author={Zhu, Han and Kang, Wei and Yao, Zengwei and Guo, Liyong and Kuang, Fangjun and Li, Zhaoqing and Zhuang, Weiji and Lin, Long and Povey, Daniel},
      journal={arXiv preprint arXiv:2506.13053},
      year={2025}
}

@article{zhu2025zipvoicedialog, title={ZipVoice-Dialog: Non-Autoregressive Spoken Dialogue Generation with Flow Matching}, author={Zhu, Han and Kang, Wei and Guo, Liyong and Yao, Zengwei and Kuang, Fangjun and Zhuang, Weiji and Li, Zhaoqing and Han, Zhifeng and Zhang, Dong and Zhang, Xin and Song, Xingchen and Lin, Long and Povey, Daniel}, journal={arXiv preprint arXiv:2507.09318}, year={2025} }

--- Tranlated By Open Ai Tx | Last indexed: 2025-12-30 ---