Teaching a small model to speak Mangalorean Konkani
400 hours of public speech, one DGX Spark on my desk, three weeks, and an honest native-speaker review of what came out.
BSBA-21-Bantwal is an open 4-billion-parameter model adapted to Mangalorean Konkani as people actually speak it, in Kannada script. I transcribed about 400 hours of Konkani speech from public Mangalorean YouTube videos, converted it to Mangalorean spelling, and trained on top of Gemma 3 and the existing Konkani LLM. It now answers in Konkani 90% of the time, against 5% for the model it started from, and it predicts real Mangalorean speech far better. My own review as a native speaker is more sobering: usable on 8 of 19 everyday requests, and its Konkani is too formal. It talks like a sermon. Fixing that is version 2.
- 90% vs 5%
- Replies to 20 everyday requests that come back in Kannada-script Konkani.
- 15.8 vs 70.1
- Perplexity on 6 Mangalorean channels kept out of training. Lower is better.
- 8 of 19
- Everyday requests I rated usable as a native speaker. The existing Konkani model: 0 of 19.
01Why Mangalorean Konkani
Konkani is spoken along the west coast of India, but Mangalorean Konkani is its own thing. It has different words and different spellings from the Goan variety, and in Mangalore it is written in Kannada script. My family speaks it at home in Bantwal, a town near Mangalore.
There are already Konkani language models, and good ones. The Konkani LLM project fine-tuned a whole family of open models. They are built around Goan Konkani, though, and the Kannada-script part of their training data was generated by another AI model rather than written or spoken by Mangaloreans. Ask them for Mangalorean Konkani and you mostly get English, or Goan Konkani spelt in Kannada letters.
So the question was simple: if a model learns from Mangaloreans actually talking, does it start to sound like them?
02Finding real speech
Mangalorean Konkani lives on YouTube: podcasts, cooking channels, radio interviews, comedy, and a great many sermons. The catch is that YouTube’s automatic captions do not recognise Konkani. They label it Hindi or Marathi and produce nonsense, so the text had to come from the audio itself.
- Sources20 Mangalorean channels, each sampled first with a 60-second language check that scores distinctively Konkani words, so Kannada, Hindi and English videos are filtered out.
- BatchAbout 500 hours picked for conversation, recipes, radio, comedy and drama, with sermons capped at 150 hours. Prayers, Masses and songs left out.
- DownloadSlow and login-free, one video at a time with long pauses, backing off for hours whenever YouTube asked to confirm I was not a bot.
- Kept1,999 of 2,596 downloaded videos passed the Konkani check: 398.8 hours of speech.
Everything ran on an NVIDIA DGX Spark. It survived two power cuts and an internet outage along the way, which is why every script in the pipeline can stop at any moment and pick up where it left off.
03From audio to Mangalorean text
AI4Bharat’s open Konkani speech recogniser (IndicConformer) did the transcription, on the CPU, at about 43 times real time. It writes Devanagari, the script Goan Konkani uses. Converting that letter by letter to Kannada script gives Goan spellings, which look wrong to a Mangalorean reader, so I added a spelling pass: a handful of rules for Mangalorean print conventions, plus a list of 3,091 real Mangalorean spellings taken from the titles of the channels’ own videos.
ಆಮೀ→ ಆಮಿಕುಟಮಾಂ→ ಕುಟ್ಮಾಂಭುರಗೀಂ→ ಭುರ್ಗಿಂಕೇಲೇಂ→ ಕೆಲೆಂ
After cleaning and removing duplicates, the training text came to 3.16 million words (about 10 million tokens). Six channels were held back entirely, so I could later test the model on speech from sources it had never seen.
04Teaching it the dialect
I started from Gemma 3 4B with the Konkani LLM project’s adapter merged in, so the model already knew some Konkani and only had to shift towards Mangalore. The first stage simply let it read the Mangalorean transcripts.
- MethodLoRA (rank 16) continued pre-training, one full pass over the 3.16 million words.
- Compute3.3 GPU hours on the Spark, in one-hour slots on a shared queue, resuming from a checkpoint each time.
- MeasurePerplexity on Mangalorean speech: how surprised the model is by the next word. Lower is better.
Perplexity on held-out Mangalorean speech dropped from 85 to 16. The gain carried over to the six channels the model never saw (70 to 16), so it learned the dialect rather than memorising particular videos.
05Teaching it to answer, twice
A model that has only read transcripts can continue a sentence but cannot follow a request. The second stage taught it to answer, using the Kannada-script part of Konkani-Instruct-100k.
The first attempt undid half of stage A. The model learned to follow instructions, but its perplexity on Mangalorean speech went back up from 16 to 28, and only half its answers stayed in Konkani. The instruction data is machine-written and formal, and the model drifted towards it. The fix was to keep reminding it how people talk.
- DataThe instruction rows with English boilerplate and markdown removed, mixed with 40% Mangalorean speech text.
- MethodA fresh LoRA on top of stage A, lower learning rate, 1.6 GPU hours.
- KeptThe dialect gains of stage A, and the ability to answer.
06The scorecard
I compared four models on the same tests: the starting point, stage A alone, the failed first instruction run, and the final model.
| Model | Perplexity, in-domain ↓ | Perplexity, unseen ↓ | English → Konkani chrF ↑ | Stays in Konkani ↑ |
|---|---|---|---|---|
| Gemma 3 4B + Konkani LLM (start) | 85.34 | 70.12 | 8.4 | 5% |
| Stage A only (dialect) | 16.05 | 15.77 | 25.7 | 95% |
| Stage B, first attempt | 28.54 | 25.83 | 28.0 | 50% |
| BSBA-21-Bantwal v1 | 16.09 | 15.82 | 31.7 | 90% |
Translation scores use Konkani-Bench, 200 human-checked sentence pairs scored with chrF, an automatic measure of character overlap with the reference. “Stays in Konkani” is the share of 20 everyday English requests, such as greeting a neighbour after Sunday Mass or explaining how to make pork bafat, that come back in Kannada-script Konkani.
07What a native speaker hears
Automatic scores do not tell you whether something sounds right. I had planned a blind review with two other native speakers. That fell through: one person rated four items before stopping. So the review below is mine, and it is not blind, because by then I knew which model wrote which answer. I rated each model’s answers to the everyday requests as Good, OK or Poor.
It is a real step forward and not yet fluent. About half of v1’s Poor answers were decent Konkani followed by an English translation or a grammar note, a habit picked up from the instruction data. The other half were worse in a more interesting way.
It talks like a sermon
Ask someone in Mangalore how to get to the bus stand and they will say “go straight, take the right”. The model opens with greetings and blessings, or explains the question back to you, before it gets to the point. Its answers run to 30 or 50 words where a person would use five. That fits the data: a large share of the speech it learned from is sermons, talks and radio, and the instruction examples are formal too.
ಆಮ್ಗೆಲ್ಯಾ ಮಂಗಳೂರು ಶಹರಾಂತ್ ಹ್ಯಾ ಹಪ್ತ್ಯಾಕ್ ಬಾರೀ ಚಡ್ ಪಾವ್ಸ್ ಆಸಾ. ದೋನ್ ತೀನ್ ದಿಸಾಂ ಥಾವ್ನ್ ಸತತ್ ಪಾವಸ್ ಯೆವ್ನು ಆಸಾ ಆನಿ ಗಾಂವಾಂತ್ ಉದಕ್ ಭಾರಿಚ್ ಚಡ್ ಜಾಲಾ. ತುಕಾ ಕಶೆಂ ಜಾಲೆಂ?
aamgelyaa mangalooru shaharaant hyaa haptyaak baaree chad paavs aasaa. don teen disaam thaavn satat paavas yevnu aasaa aani gaamvaant udak bhaarich chad jaalaa. tukaa kashem jaalem?
There’s been very heavy rain in our Mangalore this week. It’s rained non-stop for two or three days, and the water has risen a lot in the village. How’s it been for you?
ದೇವ್ ಬರೆಂ ಕರುಂ! ಆಜ್ ನಿಸ್ತೆಂ ಕಿತ್ಲೆಂ ಮೊಲಾಕ್ ಮೆಳ್ಟಾ ಗೀ?
dev barem karum! aaj nistem kitlem molaak meltaa gee?
God bless! What price is fish going for today?
ಹ್ಯಾ ವಾಕ್ಯಾಂತ್ ತುಮಿ ಹ್ಯಾಂಪ್ಕಟ್ಟಾ ಬಸ್ ಸ್ಟೆಶನಾಕ್ ವಚೊಂಕ್ ವಿಚಾರ್ತಾತ್:
hyaa vaakyaant tumi hyaampkattaa bas steshanaak vachonk vichaartaat:
In this sentence you are asking to go to the Hampankatta bus stand:
08What else went wrong
- English tails. Even the final model sometimes follows a good Konkani answer with “(Translation: …)” and a note on grammar. The chat app in the repository cuts replies at the first English line.
- It makes things up. It is a 4B model. It will invent prices, dates and names with complete confidence.
- Mostly Catholic Konkani. GSB (Saraswat) Konkani is only a small share of the data, mainly from one radio channel.
- No live demo. I built a free chat page for it, then found that Hugging Face now charges for hosting apps, even on its free CPU tier. It runs on a laptop instead.
- Waiting, mostly. The Spark’s GPU is shared with other projects through a queue. The model work itself took about 12 GPU hours; the rest of the three weeks was queues, downloads and power cuts.
09Try it
The model is open on Hugging Face, with a 2.5 GB version that runs on an ordinary laptop, no GPU needed. With Ollama installed:
ollama run hf.co/decentmakeover/bsba-21-bantwal-konkani-4b:Q4_K_MAsk for “Mangalorean Konkani, written in Kannada script” in your request for the most reliable results. The full pipeline, from finding channels to packaging the model, is on GitHub. The transcripts are not published: they come from creators’ videos, and only the model and the code are open.
10What comes next
- Everyday Konkani over sermon Konkani. More conversation, podcasts and comedy; fewer sermons; short, natural answers in the instruction data, with no English glosses.
- A proper blind review with a handful of Mangalorean speakers, and their own sentences as the start of a real Mangalorean test set.
- More GSB Konkani, so the model is not only Catholic Mangalorean.
- Bigger and spoken. A 12B model, and one day a voice, once a Konkani voice exists that sounds Mangalorean.
If you speak Mangalorean Konkani, I would love your help with v2. Try it, tell me where it sounds wrong, or offer an hour to rate answers. The links below reach me.
·Why the name
Bantwal is my hometown, near Mangalore. BSBA-21 is my batch: the 21st batch of BSBA at St Aloysius College, Mangalore, where I studied.
·Acknowledgements
AI4Bharat for the open Konkani speech recogniser. The Konkani LLM project (Reuben Chagas Fernandes and Gaurang S. Patkar) for the Konkani adapter this model is built on, Konkani-Instruct-100k and Konkani-Bench. Google for Gemma. And the Mangalorean creators who keep Konkani alive online: this model learned to talk from them. I built it with an AI coding agent (Claude Code) running the pipeline on the Spark; the decisions, the Konkani and any mistakes are mine.
·Citation
@misc{dsouza2026bsba21bantwal,
title = {BSBA-21-Bantwal: a Mangalorean Konkani language model},
author = {D'Souza, Ryan},
year = {2026},
url = {https://huggingface.co/decentmakeover/bsba-21-bantwal-konkani-4b}
}Model weights under the Gemma Terms of Use; code under the MIT licence.