armenian-video-dubbing

Evaluation Guide

Overview

The evaluation framework measures dubbing quality across 6 dimensions with automated metrics, human evaluation protocols, and regression testing.

Quick Start

# Run full evaluation
python scripts/evaluation/evaluate_full.py

# Run specific metric
python scripts/evaluation/metrics/wer_metrics.py

Metrics

1. Word Error Rate (WER)

Measures ASR transcription accuracy.

2. Mean Opinion Score (MOS) Proxy

Automated proxy for perceived speech naturalness.

3. Speaker Similarity

Measures voice cloning fidelity between reference and synthesized speech.

4. Lip-Sync Quality

Measures synchronization between audio and lip movements.

5. Translation Quality

Measures translation accuracy from English to Armenian.

6. Performance

Measures inference speed and resource usage.

Human Evaluation

Protocol

python scripts/evaluation/human_eval/protocol.py

Implements:

Setup

  1. Start Label Studio: docker compose --profile dev up label-studio
  2. Run protocol setup: python scripts/evaluation/human_eval/protocol.py --setup
  3. Import evaluation samples
  4. Collect annotations
  5. Compute inter-annotator agreement

Regression Testing

python scripts/evaluation/regression/regression_test.py

Features:

Configuration

Evaluation thresholds in configs/config.yaml:

evaluation:
  wer_threshold: 0.08
  mos_threshold: 4.6
  speaker_similarity_threshold: 0.85
  lse_c_threshold: 1.8
  lse_d_threshold: 1.8
  comet_threshold: 0.85

Evaluation-specific settings in scripts/evaluation/eval_config.yaml.

Directory Structure

scripts/evaluation/
├── evaluate_full.py          # Orchestrator
├── eval_config.yaml          # Evaluation config
├── metrics/
│   ├── wer_metrics.py        # WER computation
│   ├── mos_proxy_metrics.py  # MOS proxy
│   ├── speaker_similarity.py # Voice similarity
│   ├── lipsync_metrics.py    # Lip-sync error
│   ├── translation_metrics.py# COMET/BLEU
│   └── performance_metrics.py# Speed/memory
├── human_eval/
│   └── protocol.py           # Human eval framework
├── regression/
│   └── regression_test.py    # Regression testing
├── reporting/
└── test_data/