Gooya RizehPizeh v2

Persian (Farsi) single-speaker Piper/VITS2 voice fine-tuned on approved Gemini TTS Wikipedia audio. The model uses a case-sensitive Negara-style phonetic/Finglish frontend and produces 22,050 Hz mono audio.

Selected checkpoint

This release selects the checkpoint at global step 50,000 (val_mel = 0.3951). Training continued to 100,000 global steps, but later validation was worse, so the terminal state is intentionally not promoted.

  • Generator parameters: approximately 23.7M
  • Full trainable checkpoint: checkpoint/gooya-rizehpizeh-v2-step50000-val_mel0.3951.ckpt
  • Checkpoint SHA-256: 0c2d22718894e20fb6361c7bf2d75ee54d61db3a167983ce5d843ff6ed438938
  • Browser/Piper model: gooya-rizehpizeh-v2.onnx
  • Browser/Piper model SHA-256: 675c557524a325cc014e27acb7bb9f7eab584d3247216f934e8a378b709a2d3b
  • Sample rate: 22,050 Hz
  • Speakers: 1
  • Phoneme type: text
  • Symbol inventory: 256 IDs

Model lineage

The original v1.5 production ONNX did not have a matching resumable checkpoint. A trainable hybrid checkpoint was reconstructed by copying all 350 inference-time generator tensors from the production ONNX into a compatible Mana Piper training checkpoint. Training-only branches absent from ONNX came from that Mana template.

Before fine-tuning, a fresh ONNX round-trip matched the production model on 19/19 deterministic test rows:

  • Worst maximum absolute error: 1.0348856449127197e-05
  • Minimum SNR: 110.0768 dB
  • Minimum correlation: 0.999999999995

The complete recovery and parity receipts are under training/.

Fine-tuning data

The parent corpus came from approved rows in Reza2kn/Wikipedia-FA-EN-DeepSeek-V4-Flash-0731.

  • Requested parent clips: 4,186 (3,517 train, 669 sealed eval)
  • Successfully aligned parents: 4,116
  • Rejected during alignment: 70
  • Materialized segments: 30,965
  • Training segments consumed: 26,053
  • Sealed eval segments, not consumed by training: 4,912
  • Total materialized duration: 68.9853 hours
  • Segment duration: mean 8.0203s, min 0.6307s, max 21.6656s

Audio timing came from AvaSanj v1 CTC forced alignment. Training phoneme labels came from Negara v7.1. Parent-level train/eval boundaries were preserved.

Training

  • Precision: BF16 mixed precision
  • Generator learning rate: 1e-5
  • Discriminator learning rate: 5e-6
  • Batch size: 1
  • Selected validation metric: val_mel
  • Selected checkpoint: global step 50,000, val_mel = 0.3951

The 100K run was resumed from a successful 2K signal checkpoint. The sealed 669-parent eval split was not used for checkpoint selection.

ONNX and browser validation

The selected checkpoint was exported twice with Piper's ONNX exporter. Both exports were byte-identical. The published ONNX is self-contained and has no external tensor-data file.

  • File size: 63,516,051 bytes
  • Inputs: input (int64, [batch, phonemes]), input_lengths (int64, [batch]), scales (float32, [3])
  • Output: output (float32, dynamic audio length)
  • ONNX Runtime CPU probes: 19/19 finite, positive-length outputs
  • Gouya.app onnxruntime-web@1.27.0 WASM smoke test: passed using the application's real rizehPhoneTextToIds mapping

Machine-readable receipts are in browser/.

Inference and long-form use

Input must already be case-sensitive Negara-compatible phonetic text. Example:

echo "zurxAneye vahdat yek makAne varzeSi dar Sahre borujerd ast." | \
  piper --model gooya-rizehpizeh-v2.onnx \
        --config gooya-rizehpizeh-v2.onnx.json \
        --output_file output.wav

For long-form narration, do not send an article as one model input. Split at semantic sentence/clause boundaries into substantial spans, synthesize each span independently, trim quiet waveform edges, and join with boundary-aware pauses. The final output duration can be arbitrarily long even though each model invocation remains bounded.

Limitations

  • Lower validation mel loss did not guarantee universally better pronunciation. Human listening found some words, including proper nouns, better at the earlier 2K checkpoint or the original v1.5 model.
  • G2P/Finglish quality remains the dominant source of pronunciation errors.
  • Very long single-pass phoneme sequences can collapse or omit content; use chunked synthesis.
  • Overly small chunks sound breathy and robotic. Prefer substantial semantic spans instead of fixed tiny fragments.
  • Browser export validation does not by itself constitute live Gouya.app promotion; the deployed consumer path must still be tested after rollout.

License

MIT. See LICENSE.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Reza2kn/Gooya-RizehPizeh-v2

Quantized
(1)
this model