Ryan D’Souza
Open model · Mangalorean Konkani

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.

Ryan D’SouzaModelCode
TL;DR

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.
Two real, unedited replies: asking the price of fish, and telling a friend about the week’s rain. Kannada script, a rough Roman reading, and an English subtitle.

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.

Setup
  • 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.

Setup · Stage A
  • 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.

Setup · Stage B, second attempt
  • 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.

ModelPerplexity, in-domain ↓Perplexity, unseen ↓English → Konkani chrF ↑Stays in Konkani ↑
Gemma 3 4B + Konkani LLM (start)85.3470.128.45%
Stage A only (dialect)16.0515.7725.795%
Stage B, first attempt28.5425.8328.050%
BSBA-21-Bantwal v116.0915.8231.790%
Perplexity on six unseen Mangalorean channels: start 70.12, stage B first attempt 25.83, stage A 15.77, BSBA-21-Bantwal v1 15.82. Lower is better.020406080Start: Gemma 3 + Konkani LLM: perplexity 70.12Start: Gemma 3 + Konkani LLM70.12Stage B, first attempt: perplexity 25.83Stage B, first attempt25.83Stage A only: perplexity 15.77Stage A only15.77BSBA-21-Bantwal v1: perplexity 15.82BSBA-21-Bantwal v115.82
Perplexity on 15 videos from 6 Mangalorean channels never used in training. Lower is better.

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.

OKPoor– Not ratedNo answer from any model was rated Good.
Native review, one mark per everyday request: start 0 of 19 OK, stage B first attempt 2 of 18 OK, BSBA-21-Bantwal v1 8 of 19 OK. No answer was rated Good.StartPoor · Start: Greet a neighbour after Sunday MassNot rated · Start: Tell your mother you will be late for dinnerPoor · Start: Ask a shopkeeper the price of fishPoor · Start: Invite a friend home for teaPoor · Start: Ask your grandmother how she made kuswarPoor · Start: Tell a friend about the heavy rainPoor · Start: Ask a child how school wasPoor · Start: Explain how to make pork bafatPoor · Start: Congratulate someone on their daughter’s engagementPoor · Start: Ask someone to call you back laterPoor · Start: Ask for a home remedyPoor · Start: Describe a roce ceremonyPoor · Start: Ask for directions to HampankattaPoor · Start: Tell your brother in Dubai everyone misses himPoor · Start: Apologise for a forgotten birthdayPoor · Start: Ask what time Mass is tomorrowPoor · Start: Explain why you like living in MangalorePoor · Start: Ask a friend to help you move housePoor · Start: Tell someone the bus was late againPoor · Start: Say goodnight and remind the family about church0 of 19Stage B, firstPoor · Stage B, first: Greet a neighbour after Sunday MassNot rated · Stage B, first: Tell your mother you will be late for dinnerPoor · Stage B, first: Ask a shopkeeper the price of fishPoor · Stage B, first: Invite a friend home for teaPoor · Stage B, first: Ask your grandmother how she made kuswarPoor · Stage B, first: Tell a friend about the heavy rainPoor · Stage B, first: Ask a child how school wasOK · Stage B, first: Explain how to make pork bafatPoor · Stage B, first: Congratulate someone on their daughter’s engagementPoor · Stage B, first: Ask someone to call you back laterPoor · Stage B, first: Ask for a home remedyOK · Stage B, first: Describe a roce ceremonyPoor · Stage B, first: Ask for directions to HampankattaPoor · Stage B, first: Tell your brother in Dubai everyone misses himPoor · Stage B, first: Apologise for a forgotten birthdayNot rated · Stage B, first: Ask what time Mass is tomorrowPoor · Stage B, first: Explain why you like living in MangalorePoor · Stage B, first: Ask a friend to help you move housePoor · Stage B, first: Tell someone the bus was late againPoor · Stage B, first: Say goodnight and remind the family about church2 of 18BSBA-21-Bantwal v1OK · BSBA-21-Bantwal v1: Greet a neighbour after Sunday MassNot rated · BSBA-21-Bantwal v1: Tell your mother you will be late for dinnerPoor · BSBA-21-Bantwal v1: Ask a shopkeeper the price of fishPoor · BSBA-21-Bantwal v1: Invite a friend home for teaOK · BSBA-21-Bantwal v1: Ask your grandmother how she made kuswarOK · BSBA-21-Bantwal v1: Tell a friend about the heavy rainPoor · BSBA-21-Bantwal v1: Ask a child how school wasOK · BSBA-21-Bantwal v1: Explain how to make pork bafatPoor · BSBA-21-Bantwal v1: Congratulate someone on their daughter’s engagementOK · BSBA-21-Bantwal v1: Ask someone to call you back laterPoor · BSBA-21-Bantwal v1: Ask for a home remedyOK · BSBA-21-Bantwal v1: Describe a roce ceremonyPoor · BSBA-21-Bantwal v1: Ask for directions to HampankattaPoor · BSBA-21-Bantwal v1: Tell your brother in Dubai everyone misses himPoor · BSBA-21-Bantwal v1: Apologise for a forgotten birthdayPoor · BSBA-21-Bantwal v1: Ask what time Mass is tomorrowOK · BSBA-21-Bantwal v1: Explain why you like living in MangalorePoor · BSBA-21-Bantwal v1: Ask a friend to help you move housePoor · BSBA-21-Bantwal v1: Tell someone the bus was late againOK · BSBA-21-Bantwal v1: Say goodnight and remind the family about church8 of 19
One mark per everyday request, rated by me (a native speaker, not blind). BSBA-21-Bantwal v1: 8 OK, 11 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.

Sounds right
Tell a friend about the heavy rain in Mangalore this week.

ಆಮ್ಗೆಲ್ಯಾ ಮಂಗಳೂರು ಶಹರಾಂತ್ ಹ್ಯಾ ಹಪ್ತ್ಯಾಕ್ ಬಾರೀ ಚಡ್ ಪಾವ್ಸ್ ಆಸಾ. ದೋನ್ ತೀನ್ ದಿಸಾಂ ಥಾವ್ನ್ ಸತತ್ ಪಾವಸ್ ಯೆವ್ನು ಆಸಾ ಆನಿ ಗಾಂವಾಂತ್ ಉದಕ್ ಭಾರಿಚ್ ಚಡ್ ಜಾಲಾ. ತುಕಾ ಕಶೆಂ ಜಾಲೆಂ?

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?

Too formal
Ask a shopkeeper the price of fish today.

ದೇವ್ ಬರೆಂ ಕರುಂ! ಆಜ್ ನಿಸ್ತೆಂ ಕಿತ್ಲೆಂ ಮೊಲಾಕ್ ಮೆಳ್ಟಾ ಗೀ?

dev barem karum! aaj nistem kitlem molaak meltaa gee?

God bless! What price is fish going for today?

Explains instead of asking
Ask for directions to the Hampankatta bus stand.

ಹ್ಯಾ ವಾಕ್ಯಾಂತ್ ತುಮಿ ಹ್ಯಾಂಪ್ಕಟ್ಟಾ ಬಸ್ ಸ್ಟೆಶನಾಕ್ ವಚೊಂಕ್ ವಿಚಾರ್ತಾತ್:

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_M

Ask 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.