You need to agree to share your contact information to access this model

This repository is publicly accessible, but you have to accept the conditions to access its files and content.

Log in or Sign Up to review the conditions and access this model content.

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
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support