Skip to main content

vyonica-report

Objective voice-clone evaluation — CLI + Python SDK.

Computes ~50 objective metrics across acoustic quality, prosody, speaker identity, linguistic accuracy, and perceptual approximation. Emits:

  • CSV (wide format) — stackable across many runs
  • PNG graphs — waveform, pitch, energy, spectrogram, band energy
  • PDF report — closeness score, verdict, all charts, metric evidence table

No LLM commentary. No database. No web server. Just metrics.

Install

pip install vyonica-report
# or, from a local checkout:
pip install /path/to/trainer/voice-cloning-result-comp/vyonica_report

Python 3.11+ required. The first run downloads ~2 GB of ML model weights (Whisper, ECAPA, NISQA, DNSMOS); subsequent runs are cached. Use --no-heavy to skip those models and keep the run pure-DSP (~5 s).

CLI

vyonica-report \
  --original ref.wav \
  --clone synth.wav \
  --transcript "The quick brown fox jumps over the lazy dog." \
  --language en \
  --output metrics.csv \
  --graphs graphs/ \
  --pdf report.pdf
Flag Default Purpose
--language en ISO 639-1 transcript language
--output / -o metrics.csv Wide-format CSV (one row per run)
--graphs DIR — Write diagnostic PNGs here
--pdf PATH — Write a PDF evaluation report here
--run-id ID ISO timestamp Label this row in the CSV
--append off Append a row instead of overwriting
--no-heavy off Skip Whisper / ECAPA / NISQA / DNSMOS / Praat
--whisper-model small Whisper size when heavy models are on

Python SDK

from vyonica_report import (
    analyze,
    to_csv,
    plot_graphs,
    generate_pdf,
    closeness_score,
)

metrics, summary = analyze(
    original_path="ref.wav",
    clone_path="synth.wav",
    transcript="The quick brown fox jumps over the lazy dog.",
    language="en",
    enable_heavy_models=True,
)

print(f"Voice closeness: {closeness_score(metrics):.1f}%")

to_csv(metrics, "metrics.csv", run_id="experiment_42")
plot_graphs(summary, "graphs/")
generate_pdf(metrics, summary, "report.pdf", run_label="experiment_42")

Each Metric has domain, name, value, unit, direction (higher / lower / near_1 / neutral), status, and note fields.

CSV format (wide)

One row per run; columns are {domain_slug}__{metric_slug}:

run_id,timestamp,acoustic_quality__log_spectral_distance,prosody__f0_contour_correlation,speaker_identity__mfcc_timbre_similarity,...
experiment_42,2026-05-23T11:22:33,2.31,0.87,0.91,...

Use --append to stack many runs into the same CSV.

Building & publishing

From the package directory:

# build wheel + sdist into dist/
uv build                   # or: python -m build

# install the built wheel into another local repo for testing
pip install dist/vyonica_report-0.1.0-py3-none-any.whl

# publish to PyPI (requires a token from https://pypi.org/manage/account/token/)
pip install twine
twine upload dist/*

Metadata

Release files for vyonica-report 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vyonica-report 0.0.1
File Size Uploaded
vyonica_report-0.0.1.tar.gz 27.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vyonica-report 0.0.1
File Interpreter ABI Platform
vyonica_report-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 54.0 kB

Release files / vyonica_report-0.0.1.tar.gz

Download URL vyonica_report-0.0.1.tar.gz
Size 27.4 kB
Tags Source
SHA-256 checksum
How to use checksums
489d170bdaec59e6abdba905fad019d26a4696d6b890c160bd607dd597daf73d
BLAKE2b-256 checksum
How to use checksums
013ef4a542187672c86a1eeaa71b1d7cc262e72db7798b0a857dd8c4c059c144
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release files / vyonica_report-0.0.1-py3-none-any.whl

Download URL vyonica_report-0.0.1-py3-none-any.whl
Size 26.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f5238412ed5b6e5f14fa67c233c0005a1f36db30745c653060d1a062c73ff526
BLAKE2b-256 checksum
How to use checksums
e5721074e1261320da7d20d5abe3764bf86687d34e910227d7940cae0ba02be6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page