mozilla-foundation/common_voice_17_0
Updated • 5.16k • 33
How to use Edmon02/speecht5_finetuned_voxpopuli_hy with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("text-to-speech", model="Edmon02/speecht5_finetuned_voxpopuli_hy") # Load model directly
from transformers import AutoProcessor, AutoModelForTextToSpectrogram
processor = AutoProcessor.from_pretrained("Edmon02/speecht5_finetuned_voxpopuli_hy")
model = AutoModelForTextToSpectrogram.from_pretrained("Edmon02/speecht5_finetuned_voxpopuli_hy", device_map="auto")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) |
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.
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.ipynbfor the full inference pipeline.
TTS_NB_2 for new tokenizer/vocab work)normalized_text rows before training (82 rows unlabeled in v1)| 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).
microsoft/speecht5_hifigan)voxpopuli_*) — data is not EU parliament VoxPopuli audio| Asset | Link |
|---|---|
| Dataset | Edmon02/hyvoxpopuli |
| Training checkpoint | Edmon02/TTS_NB_2 |
| ONNX export | Edmon02/TTS_NB_ONNX |
| Vocoder | microsoft/speecht5_hifigan |
@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}}
}
MIT (model card). Dataset: CC-BY-4.0. Microsoft SpeechT5 weights subject to original license.
Base model
Edmon02/speecht5_finetuned_voxpopuli_nl