Downloads · 30 days
17
18% of all-time downloads
RobotsMali/bam-vits-fintech
bam-vits-fintech is a text-to-audio model from RobotsMali. Use it for the text-to-audio task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as cc-by-4.0.
RobotsMali/bam-vits-fintech continues training RobotsMali/bam-vits on RobotsMali/finBamSpeech, a higher-quality single-speaker corpus of 800 read Bambara sentences about finance, banking, and financial technology.
Downloads · 30 days
17
18% of all-time downloads
All-time downloads
93
Public
Parameters
39.6M
159 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors159 MB · 100%
From the Hugging Face model README
RobotsMali/bam-vits-fintech continues training RobotsMali/bam-vits on RobotsMali/finBamSpeech, a higher-quality single-speaker corpus of 800 read Bambara sentences about finance, banking, and financial technology.
Research checkpoint — substantially undertrained. The already undertrained base received only 150 additional epochs (750 training examples, batch size 80). This is still far below the hundreds of thousands of optimizer steps commonly used for VITS; approximately 200,000 steps is our reference budget. No objective or human evaluation is available.
transformers.VitsModel; discriminator removedafvoices-notag base → finBamSpeech domain adaptationimport soundfile as sf
import torch
from transformers import AutoTokenizer, VitsModel
repo_id = "RobotsMali/bam-vits-fintech"
text = "Juru sarali waati sera."
tokenizer = AutoTokenizer.from_pretrained(repo_id)
model = VitsModel.from_pretrained(repo_id)
inputs = tokenizer(text.lower(), return_tensors="pt")
with torch.no_grad():
# Single-speaker adaptation omitted speaker conditioning during training.
waveform = model(**inputs).waveform[0]
sf.write("fintech-bambara.wav", waveform.cpu().numpy(), model.config.sampling_rate)
num_speakers is still 20The configuration retains the base model's 20-speaker table because the training script deliberately does not resize or reinitialize speaker embeddings when it detects exactly one target speaker. More importantly, preprocessing adds speaker_id only when more than one speaker is present. FinBamSpeech batches therefore used speaker_id=None, and VITS bypassed the embedding table during this adaptation.
The checkpoint was thus adapted as an effectively unconditioned single-speaker model while retaining multi-speaker architecture metadata. Its 20 embedding rows do not represent 20 FinTech-adapted voices. Direct inspection of the published checkpoint shows that the rows are not bit-identical, although their variance is small and they provide very similar conditioning. For inference that matches the training path, omit speaker_id as shown above.
The base checkpoint used 21,253 train and 1,128 test examples from the top 20 speakers in afvoices-notag, a noisy spontaneous-speech selection intended only for experimentation. This variant was then trained for 150 more epochs with per-device batch size 80 on FinBamSpeech's 750-train/50-test split. Its read, domain-specific recordings are higher quality than the base data, but 800 samples remain very small for VITS.
Text is lowercased plain Bambara; audio is processed at 22.05 kHz. The base hyperparameters and training code are documented in config/bam-vits.yaml.
No MOS, intelligibility, domain-term accuracy, speaker-similarity, or automated TTS metrics are reported. Domain adaptation should not be interpreted as proven improvement. In informal comparison, plain-orthography checkpoints often sounded slightly more natural than pseudo-IPA variants, with no remarkable pseudo-IPA improvement in convergence or quality.
This model is for research on low-resource and domain-adapted Bambara TTS. It may be useful for qualitative experiments with finance-related text, but it is not validated for financial advice, customer communication, accessibility, or production banking systems. Never treat synthesized speech as accurate financial information.
Short training and narrow data can cause noise, poor prosody, incorrect numbers or financial terms, speaker leakage, memorization, and failures on conversational, code-switched, long, or out-of-domain text. No systematic safety, bias, privacy, or memorization testing was performed. Do not impersonate speakers or create deceptive audio; disclose that output is synthetic.
bam-vits: plain-orthography basebam-vits-pseudo-ipa-fintech: pseudo-IPA counterpartQuestions are welcome in the project repository or this model's Community tab.