BIA-SPARKTTS-V2
Model Description
BIA-SPARKTTS-V2 is a fine-tuned version of SparkTTS specifically optimized for Moore language text-to-speech synthesis. This model enables high-quality speech generation in Moore with voice cloning capabilities, supporting the linguistic needs of Burkina Faso and the wider Moore-speaking community.
Our model is built upon the powerful SparkTTS architecture, leveraging state-of-the-art neural vocoding and voice cloning techniques. It has been fine-tuned on curated Moore speech data to ensure natural and contextually appropriate speech synthesis for Moore speakers.
Language Information
- Primary Language: Moore (Mooré)
- Language Code:
moor_Latn - Speech Synthesis: Text-to-Speech (TTS)
- Region: Burkina Faso, West Africa
- Speakers: ~5 million native speakers
- Language Family: Niger-Congo → Gur → Oti-Volta → Moore
Model Performance
The model achieves the following results on the evaluation set:
- Step 1000: Training Loss: 4.158300 | Validation Loss: 4.068496
- Step 2000: Training Loss: 3.816300 | Validation Loss: 3.789840
- Step 3000: Training Loss: 3.655900 | Validation Loss: 3.688933
- Step 4000: Training Loss: 3.609400 | Validation Loss: 3.628450
- Step 5000: Training Loss: 3.528000 | Validation Loss: 3.593397
- Step 6000: Training Loss: 3.463600 | Validation Loss: 3.563343
- Step 7000: Training Loss: 3.404400 | Validation Loss: 3.546153
- Step 8000: Training Loss: 3.395500 | Validation Loss: 3.528718
- Step 9000: Training Loss: 3.367900 | Validation Loss: 3.524420
- Step 10000: Training Loss: 3.359900 | Validation Loss: 3.522905
- Parameters: 0.5B (500M)
- Total Training Steps: 10,680 (8 epochs)
- Sample Rate: 16kHz
- Audio Quality: Natural, clear pronunciation
Features
- Voice Creation: Generate speech with customizable gender, pitch, and speed
- Voice Cloning: Clone voices from audio samples (male/female)
- Custom Voice Cloning: Upload your own reference audio for personalized voice cloning
- Flexible Generation: Adjustable temperature, top-k, and top-p sampling parameters
Usage
Installation
pip install torch transformers gradio soundfile
pip install git+https://github.com/SparkAudio/SparkTTS.git
Basic Usage
import torch
from SparkTTS import SparkTTS
# Initialize model
device = "cuda:0" if torch.cuda.is_available() else "cpu"
model = SparkTTS("burkimbia/BIA-SPARKTTS-V1", device=device)
# Generate speech with voice creation
text = "Yʋʋmd fãa, a ɛlkana rag n yita a tẽngẽ wã"
wav = model.inference(
text,
gender="male",
pitch="moderate",
speed="moderate",
do_sample=True,
temperature=0.8,
top_k=50,
top_p=0.95
)
# Save audio
import soundfile as sf
sf.write("output.wav", wav, 16000)
Voice Cloning with Audio Sample
# Clone voice from reference audio
reference_audio = "path/to/reference/audio.wav"
wav = model.inference(
text,
prompt_speech_path=reference_audio,
prompt_text=None, # Optional: transcript of reference audio
do_sample=True,
temperature=0.8,
top_k=50,
top_p=0.95
)
Advanced Parameters
# Fine-tune generation with custom parameters
wav = model.inference(
text,
gender="female",
pitch="high", # very_low | low | moderate | high | very_high
speed="moderate", # very_low | low | moderate | high | very_high
do_sample=True, # Enable sampling for more natural variation
temperature=0.8, # Higher = more creative (0.1-1.5)
top_k=50, # Number of tokens to consider (1-100)
top_p=0.95, # Nucleus sampling threshold (0.1-1.0)
)
Model Details
Training Configuration
- Base Model: SparkTTS-0.5B
- Model Size: 500M parameters
- Training Steps: 10,680 steps (8 epochs)
- Batch Size: 32 per device
- Gradient Accumulation Steps: 2
- Effective Batch Size: 64
- Learning Rate: 5e-5
- LR Scheduler: Cosine with 500 warmup steps
- Optimizer: AdamW 8-bit with 0.01 weight decay
- Sample Rate: 16kHz
- Max Tokens: 3000
- Hardware: NVIDIA A100-SXM4-40GB (40GB VRAM)
- Framework: PyTorch (FP32)
- Seed: 2025
Training Progress
The model showed consistent improvement during training:
- Rapid initial improvement (4.07 → 3.79 validation loss in first 2000 steps)
- Steady convergence from 3.69 to 3.52 over 10,000 steps
- Best model checkpoint saved at step 10,000 (validation loss: 3.522905)
- Evaluation frequency: Every 1000 steps
- Total training time: ~12-14 hours on A100
Architecture Components
- Audio Tokenizer: BiCodec for high-quality audio encoding
- Language Model: Causal LM for sequential token generation
- Vocoder: Neural vocoder for waveform synthesis
- Voice Encoder: For voice cloning and style transfer
Generation Parameters
do_sample
True: Enables sampling for natural variation (recommended)False: Greedy decoding for deterministic output
temperature
- Range: 0.1 - 1.5
- Default: 0.8
- Lower values (0.3-0.5): More deterministic, consistent pronunciation
- Higher values (0.8-1.2): More natural variation and expressiveness
top_k
- Range: 1 - 100
- Default: 50
- Number of highest probability tokens to consider during sampling
top_p (nucleus sampling)
- Range: 0.1 - 1.0
- Default: 0.95
- Cumulative probability threshold for token selection
Limitations
- The model performs best on standard Moore text with proper orthography
- Extremely long texts may require chunking
- Voice quality depends on reference audio quality for cloning
- Generated speech may vary slightly between runs when sampling is enabled
- Specialized technical terms may require phonetic adjustments
Use Cases
- Education: Moore language learning and pronunciation
- Accessibility: Text-to-speech for visually impaired Moore speakers
- Content Creation: Audiobooks, podcasts, and media in Moore
- Communication: Voice assistants and chatbots for Moore speakers
- Preservation: Digital archiving of Moore language resources
Gradio Demo
A web interface is available for easy testing:
import gradio as gr
from SparkTTS import SparkTTS
model = SparkTTS("burkimbia/BIA-SPARKTTS-V1")
def generate_speech(text, gender, pitch, speed):
wav = model.inference(text, gender=gender, pitch=pitch, speed=speed)
return (16000, wav)
demo = gr.Interface(
fn=generate_speech,
inputs=[
gr.Textbox(label="Moore Text"),
gr.Radio(["male", "female"], label="Gender"),
gr.Slider(1, 5, step=1, value=3, label="Pitch"),
gr.Slider(1, 5, step=1, value=3, label="Speed"),
],
outputs=gr.Audio(label="Generated Speech")
)
demo.launch()
Feedback
We're continuously striving to improve our model's performance and usability. If you have any feedback, suggestions, or encounter any issues, please don't hesitate to reach out to us at BurkimbIA.
Citation
If you use this model in your research, please cite:
@misc{bia-sparktts-v1,
title={BIA-SPARKTTS-V2: A Fine-tuned SparkTTS Model for Moore Language Speech Synthesis},
author={BurkimbIA},
year={2025},
howpublished={\url{https://huggingface.co/burkimbia/BIA-SPARKTTS-V1}}
}
Acknowledgments
- Coqui tts team for the SparkTTS architecture and pretrained models
- Speech data contributors who provided high-quality recordings
- BurkimbIA team for data curation and model development
Framework Versions
- Transformers: 4.57.1
- PyTorch: 2.2.1+cu121
- Python: 3.12+
- Gradio: 5.0+
Developed by BurkimbIA - Advancing African Language Technologies
- Downloads last month
- -