Armenian SpeechT5 β€” HyVoxPopuli (speecht5_finetuned_voxpopuli_hy)

Primary production checkpoint for Eastern Armenian text-to-speech. Fine-tuned SpeechT5 on HyVoxPopuli and related Armenian speech data.

Task Text-to-speech (TTS)
Language Armenian (hy-AM)
Architecture SpeechT5ForTextToSpeech
Tokenizer Custom SentencePiece (spm_char.model, vocab 113)
Audio 16 kHz mel β†’ HiFi-GAN vocoder required
Speakers 2 (use speaker embeddings at inference)

Model lineage

microsoft/speecht5_tts
  β†’ Edmon02/speecht5_finetuned_hy (Common Voice 11)
  β†’ Edmon02/speecht5_finetuned_voxpopuli_nl (intermediate)
  β†’ Edmon02/speecht5_finetuned_voxpopuli_hy  ← you are here

For continued training with a larger vocabulary, use Edmon02/TTS_NB_2.

Quick start

import torch
import soundfile as sf
from datasets import load_dataset
from transformers import SpeechT5Processor, SpeechT5ForTextToSpeech, SpeechT5HifiGan

device = "cuda" if torch.cuda.is_available() else "cpu"
model_id = "Edmon02/speecht5_finetuned_voxpopuli_hy"

processor = SpeechT5Processor.from_pretrained(model_id)
model = SpeechT5ForTextToSpeech.from_pretrained(model_id).to(device)
vocoder = SpeechT5HifiGan.from_pretrained("microsoft/speecht5_hifigan").to(device)

# Example speaker embedding from dataset (pick one speaker_id)
ds = load_dataset("Edmon02/hyvoxpopuli", split="train")
sample = ds[0]
speaker_embedding = torch.tensor(sample["speaker_embeddings"]).unsqueeze(0).to(device)  # if stored
# Or compute with SpeechBrain ECAPA β€” see project notebooks

inputs = processor(text="Υ’Υ‘Φ€Φ‡, Υ½Υ‘ Υ°Υ‘Υ΅Υ₯Φ€Υ₯ΥΆ Υ­ΥΈΥ½Φ„Υ« Υ½Υ«ΥΆΥ©Υ₯Υ¦Υ« ΦƒΥΈΦ€Υ± Υ§Φ‰", return_tensors="pt")
inputs = {k: v.to(device) for k, v in inputs.items()}

with torch.no_grad():
    spectrogram = model.generate_speech(inputs["input_ids"], speaker_embedding, vocoder=vocoder)

sf.write("out.wav", spectrogram.cpu().numpy(), samplerate=16000)

Note: You must supply a speaker embedding (512-d) matching training. See projects/armenian-tts/notebooks/04_speecht5_hy.ipynb for the full inference pipeline.

Intended uses

  • Armenian TTS inference and demos
  • Fine-tuning starting point (prefer TTS_NB_2 for new tokenizer/vocab work)
  • Research on low-resource TTS

Out of scope

  • Real-time voice cloning without proper speaker embeddings
  • Languages other than Armenian without retraining
  • Production SLA without latency/quality benchmarking

Training data

  • Edmon02/hyvoxpopuli β€” literary Armenian narration (~6 h, 623 segments)
  • Common Voice hy-AM (notebooks) for augmentation
  • Filter empty normalized_text rows before training (82 rows unlabeled in v1)

Training (summary)

Hyperparameter Value
Learning rate 1e-5
Batch size (effective) 32 (4 Γ— 8 grad accum)
Steps ~1000
Optimizer Adam
Scheduler Linear warmup (125 steps)
Framework Transformers 4.38, PyTorch 2.1

Full logs were in local runs/ (removed from Hub for cleanliness).

Limitations

  • Small domain: audiobook / literary style, 2 speakers
  • 13% of HyVoxPopuli clips have no text β€” filter at train time
  • Requires external vocoder (microsoft/speecht5_hifigan)
  • Misleading repo name (voxpopuli_*) β€” data is not EU parliament VoxPopuli audio

Related assets

Asset Link
Dataset Edmon02/hyvoxpopuli
Training checkpoint Edmon02/TTS_NB_2
ONNX export Edmon02/TTS_NB_ONNX
Vocoder microsoft/speecht5_hifigan

Citation

@misc{armenian_speecht5_hy2024,
  author = {Avetisyan, Edmon},
  title = {Armenian SpeechT5 (HyVoxPopuli fine-tune)},
  year = {2024},
  publisher = {Hugging Face},
  howpublished = {\url{https://huggingface.co/Edmon02/speecht5_finetuned_voxpopuli_hy}}
}

License

MIT (model card). Dataset: CC-BY-4.0. Microsoft SpeechT5 weights subject to original license.

Downloads last month
123
Safetensors
Model size
0.1B params
Tensor type
F32
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for Edmon02/speecht5_finetuned_voxpopuli_hy

Finetuned
(1)
this model

Datasets used to train Edmon02/speecht5_finetuned_voxpopuli_hy

Space using Edmon02/speecht5_finetuned_voxpopuli_hy 1