OpenBMB / OpenBMB/VoxCPM

VoxCPM2 Chirp/Click Artifact & Voice Consistency in One-Shot Cloning

Open
#272 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
37.8k
Forks
4.3k
Avg merge
7m
Merged PRs (30d)
1

Description

Thank you for all your hard work on VoxCPM and the recent VoxCPM2 release. So far I am very impressed with the results for a project I am working on. Using with nanovllm-voxcpm on an AWS EC2 g6.xlarge (NVidia L4 24GB) I am achieving streaming responses within 250ms and LoRA training completes 2000 steps in approx. 15min.

Are you able to provide some guidance for a small but annoying issue?

One-shot voice cloning on the base VoxCPM2 model produces a chirp/click at the start of every generated audio segment - this appears to be the tail of the reference audio leaking through the DiT's prefix_feat_cond conditioning. For example if my reference audio ends with "enemy" the generated audio appears to start with "emy".

While I have attempted changes through nanovllm-voxcpm as described below, I can reproduce this issue easily with the default VoxCPM LoRA WebUI.

I do have a mix of audio segments that appear to work fine with these changes for some voices but am unable to work out the main factor could be causing this.

Things attempted:

  1. Blank audio padding on reference clip - Did not help; last audio patch still used as DiT conditioning, silence padding made it worse
  2. Reference mode (send ref_audio_latents_base64 only) - Eliminated chirp but significantly degraded voice quality; reverted
  3. Zero prefix_feat_cond patch (to nanovllm-voxcpm) - Zeroed the DiT conditioning during prefill to match training behaviour; did not completely resolve
  4. Dual mode - ref_audio + prompt latents together - Send both for maximum voice conditioning; did not completely resolve
  5. PCM chirp trim - 100ms (HACK) - Pipeline-level trim of first ~2 patches when cloning is active; addresses residual LM continuation artifact but still does not work completely
  6. Transcript mismatch - Obviously extra words in the reference text cause problems but even when reviewed carefully the Chirp/Click exists

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the chirp in the default VoxCPM LoRA WebUI, then compare the reference-audio, prompt-latent, and prefix_feat_cond paths described in the report. Done means the artifact is removed without the reported voice-quality regression; the issue names no source file or test to begin from.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
audio-video-rtc, machine-learning
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.