Skip to content
Back to skills

Voice Conversion Eval

ASecurity

Evaluates non-parallel voice conversion quality by measuring spectral distortion, pitch accuracy, voicing correctness, duration modification capability, and subjective naturalness/speaker similarity. Use when the user wants to benchmark on VCTK, CMU ARCTIC, or asks about evaluating this task. Reports MCD.

  • 3 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 11, 2026
researchpython

Security analysis

A100/100

Scanned September 11, 2026

npx -y skills add qhjqhj00/research-skills-pool --skill voice-conversion-eval --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Voice Conversion Eval?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Voice Conversion Eval
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/qhjqhj00-voice-conversion-eval/badge)](https://www.skillsdirectory.com/skills/qhjqhj00-voice-conversion-eval)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: voice-conversion-eval
description: Evaluates non-parallel voice conversion quality by measuring spectral distortion, pitch accuracy, voicing correctness, duration modification capability, and subjective naturalness/speaker similarity. Use when the user wants to benchmark on VCTK, CMU ARCTIC, or asks about evaluating this task. Reports MCD.
metadata:
  skill_kind: dataset_eval
  source_arxiv: 1906.10508
  bibtex_key: [REDACTED]
  confidence: high
---

# voice-conversion-eval

> Non-Parallel Sequence-to-Sequence Voice Conversion with Disentangled Linguistic and Speaker Representations — Zhang et al. (2019) (arXiv:1906.10508, 2019)

## What this evaluates

Evaluates non-parallel voice conversion quality by measuring spectral distortion, pitch accuracy, voicing correctness, duration modification capability, and subjective naturalness/speaker similarity.

## Datasets

- **VCTK** — total ?; splits: test (-1)
- **CMU ARCTIC** — total ?; splits: test (-1)

## Metrics

- `MCD` **(primary)** — range: other
  - Mel-cepstrum distortion measures the spectral distance between converted and reference utterances. Lower values indicate better spectral fidelity.
- `F0 RMSE` — range: other
  - Root mean square error of the fundamental frequency (pitch) between converted and reference utterances. Lower is better.
- `VUV` — range: percent
  - Error rate of voicing/unvoicing classification flags between converted and reference. Lower is better.
- `F0 CORR` — range: [0, 1]
  - Pearson correlation coefficient of the fundamental frequency trajectories between converted and reference. Higher is better.
- `DDUR` — range: other
  - Average absolute difference in duration between converted and reference utterances after removing boundary silence. Lower is better.
- `MOS` — range: [1, 5]
  - Mean Opinion Score on a 5-point scale (1: bad to 5: excellent) evaluating naturalness and similarity. Higher is better.

## Input / output format

**Input**: Source speaker acoustic features (e.g., Mel-spectrograms or MCCs/BAPs/F0) and target speaker embedding; optionally phoneme transcriptions for linguistic supervision.

**Output**: Converted acoustic features or waveform matching the target speaker's voice.

## Scoring recipe

```python
# Extract F0 and MCCs from converted waveform using STRAIGHT
conv_f0, conv_mccs = straight_extract(converted_waveform)
ref_f0, ref_mccs = straight_extract(reference_waveform)
# Align converted to reference using DTW on MCCs
aligned_conv_f0, aligned_conv_mccs = dtw_align(conv_f0, conv_mccs, ref_f0, ref_mccs)
# Remove silence at boundaries
aligned_conv_f0, aligned_conv_mccs = trim_silence(aligned_conv_f0, aligned_conv_mccs)
# Compute metrics
mcd = compute_mcd(aligned_conv_mccs, ref_mccs)
f0_rmse = sqrt(mean((aligned_conv_f0 - ref_f0)**2))
vuv = error_rate(voicing_flags(aligned_conv_f0), voicing_flags(ref_f0))
f0_corr = pearson_corr(aligned_conv_f0, ref_f0)
ddur = mean(abs(duration(aligned_conv_mccs) - duration(ref_mccs)))
```

## Common pitfalls

- F0 and MCCs must be extracted from the *converted waveform* using STRAIGHT, not directly from converted Mel-spectrograms, as direct extraction is non-trivial.
- Metrics require dynamic time warping (DTW) alignment of converted and reference utterances using MCCs features before computation.
- Silence segments at the beginning and end of utterances must be removed before calculating DDUR.

## Evidence (verbatim from paper)

> Mel-cepstrum distortion (MCD), root of mean square errors of F0 (F0 RMSE), the error rate of voicing/unvoicing flags (VUV) and the Pearson correlation factor of F0 (F0 CORR) were used as the metrics for objective evaluation. ... Because Mel-spectrograms were adopted as acoustic features in the Seq2seqVC method and our proposed method, it's not straightforward to extract F0 and MCCs features from the converted acoustic features. Therefore, the MCCs and F0 were extracted from the waveform of converted utterances using STRAIGHT [59]. Then, they were aligned to the reference utterances by dynamic time wrapping using MCCs features for calculating the metrics.

## Citation

```bibtex
@misc{zhang2019nonparallel,
  title={Non-Parallel Sequence-to-Sequence Voice Conversion with Disentangled Linguistic and Speaker Representations},
  author={Zhang et al. (2019)},
  year={2019},
  note={arXiv:1906.10508}
}
```

- arXiv: 1906.10508

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.