Web Analytics

ZipVoice

⭐ 748 stars Korean by k2-fsa

🌐 언어

ZipVoice⚡

플로우 매칭을 통한 빠르고 고품질의 제로샷 텍스트-음성 변환

개요

ZipVoice는 flow matching 기반의 빠르고 고품질의 zero-shot TTS 모델 시리즈입니다.

1. 주요 특징

2. 모델 변형

모델 이름 설명 논문 데모
ZipVoice 중국어와 영어 모두에서 zero-shot 단일 화자 TTS를 지원하는 기본 모델입니다.
ZipVoice-Distill ZipVoice의 속도를 개선한 distilled 버전으로, 성능 저하를 최소화했습니다.
ZipVoice-Dialog ZipVoice 기반의 대화 생성 모델로, 단일 채널의 양방향 음성 대화를 생성할 수 있습니다.
ZipVoice-Dialog-Stereo ZipVoice-Dialog의 스테레오 버전으로, 각 화자가 개별 채널에 할당되어 2채널 대화 생성을 지원합니다.

소식

2025/07/14: 두 개의 음성 대화 생성 모델인 ZipVoice-DialogZipVoice-Dialog-Stereo가 출시되었습니다. arXiv demo page

2025/07/14: 6.8k시간 분량의 음성 대화 데이터셋인 OpenDialog가 공개되었습니다. 다운로드: hf, ms. 자세한 내용은 arXiv 참고.

2025/06/16: ZipVoiceZipVoice-Distill이 출시되었습니다. arXiv demo page

설치

1. ZipVoice 저장소 클론하기

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

2. (선택 사항) 파이썬 가상 환경 만들기

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 "Raw" 평가

기본적으로 효율적인 추론과 더 나은 성능을 위해 입력(프롬프트 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 배포

CPU에서의 C++ 배포 솔루션은 sherpa-onnx를 참고하세요.

토론 및 소통

Github Issues에서 직접 토론할 수 있습니다.

QR 코드를 스캔하여 위챗 그룹에 참여하거나 공식 위챗 계정을 팔로우할 수도 있습니다.

| 위챗 그룹 | 공식 위챗 계정 | | ------------ | ----------------------- | |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 ---