LREC 2026 · Interactive explainer

Catching the English words in Vietnamese medical speech

Vietnamese doctors and lecturers drop English terms into their sentences all the time: drug names, compounds, procedures. Speech recognition systems often get the Vietnamese right and those terms wrong. We built a 34.6-hour benchmark to measure this, then tested ways to fix it.

Tung X. Nguyen, Nhu Vo, Giang-Son Nguyen, Duy Mai Hoang, Chien Dinh Huynh, Iñigo Jauregi Unanue, Massimo Piccardi, Wray Buntine, Dung D. Le
VinUniversity · University of Technology Sydney

What does a speech recognizer get wrong in this sentence?

A real utterance from the corpus, with three English medical terms. Switch views to see two typical ways a model can fail.

English medical term (code-switched) Recognition error Waveform is schematic

The English terms are where the errors cluster. This sentence follows us through the whole page.

Switching between languages inside one sentence is called . In Vietnamese medicine it is routine. A lecturer speaks Vietnamese, then says quercetin or leukotriene in English, because that is the name of the thing.

Think of it asSpeech recognition is a typist writing down what they hear. A typist who only knows Vietnamese will spell quercetin the way it sounds.

For (ASR), these English islands are exactly where errors pile up. A model trained mostly on Vietnamese tends to spell an English drug name the way it sounds in Vietnamese. A model trained on many languages catches the English term but may slip on the Vietnamese around it. In a clinical record, a misspelled drug name is a real problem.

34.6 hof Vietnamese medical speech
16,576utterances, each with at least one English medical term
889distinct code-switched terms
5medical topics
658utterances in a Hard split of rare terms
1 · Keeping score

Why one error rate isn’t enough

The standard ASR score is , or WER: the share of words the model got wrong. Lower is better: a WER of 20% means 2 wrong words in every 10. In a 29-word sentence with three English terms, a model can miss every drug name and still post a respectable WER. So the benchmark also scores the two parts separately.

How can a 10% error rate hide a 100% miss?

Try it: tap any word in our example to mark it as misrecognized. The three scores update. Lower is better.

Presets
WER0%all words
0%only the English terms
0%only the words outside them
WER = (substitutions + deletions + insertions) ÷ words in the reference

Missing the 3 terms costs only 3 of 29 words, about 10% WER, yet CS-WER is 100%. In this game every error is a substitution, one wrong word for one right word. Real scoring also counts dropped and extra words. applies the same formula to characters. The wrong spellings are illustrative.

For researchers: how the four metrics are defined
  • WER is computed over the full, normalized output sequence.
  • CS-WER is the word error rate computed only on tokens inside code-switched regions.
  • N-WER is the word error rate restricted to tokens that do not require normalization, i.e. outside the code-switched spans.
  • CER is the character error rate. Metric choice follows prior work on Vietnamese code-switching ASR (Chu et al., 2025). All metrics are computed on the mixed Test set; the Hard set is reported separately.

Missing all three terms gives a WER of about 10%, which sounds good. The CS-WER of 100% tells you the model got none of the medical vocabulary. Missing four Vietnamese words looks worse on WER, yet every term is right. A single number hides which kind of model you have. Every result below reports both.

2 · Building the dataset

From a dictionary to 16,576 clips

No one records hospital conversations for public datasets, for good reason. We started instead from a bilingual medical dictionary and searched public Vietnamese medical videos for the English terms in it.

How do you find English medical terms in Vietnamese speech?

Pick a step, or use the buttons below.

Each step narrows the pool: 3,203 terms searched, 13,000+ videos, 700+ hours transcribed, 16,576 clips kept.

For researchers: the transcription prompt

Gemini 2.5 Pro was given this instruction (from the paper):

Transcription Task: You are an advanced transcription assistant for Vietnamese medical audio. Do the following:
1) Transcribe the Vietnamese speech.
2) Segment into sentences of approximately 5–15 seconds.
3) For each segment, output start_time, end_time, and text.
4) Detect segments that contain any non-Vietnamese terms (e.g., English, Chinese, technical product/brand names).
5) Return the complete set of segments, and separately the subset of code-switch segments. For each code-switch segment, list the non-Vietnamese terms that appear.
All output must be a single valid JSON object with keys:
• "segments": an array of all segment objects {start_time, end_time, text}.
• "code_switch_segments": an array of code-switch segment objects {start_time, end_time, text, cs_term: [...]}.
Return only JSON; do not include any additional prose.

Because spans returned by the LLM may not exactly match dictionary entries, the Levenshtein distance between each dictionary item and each sentence is computed, and the closest canonical entry is assigned to the detected span. Surface forms are normalized (orthography, hyphenation, casing, common variants) to keep term identity consistent.

How much of the audio made it into the dataset?

Each square is one hour of audio. Over 700 hours were transcribed; about 5% survived the filters as valid code-switched medical speech.

Transcribed, then filtered out Kept in ViMedCSS

About 5%: 34.6 of the 700+ hours transcribed.

Every clip contains at least one code-switched term. Some contain several:

1 termTiếp theo số ba đó là cái dạng peptide mà nó ức chế dẫn truyền thần kinh.
2 termsCác loại protit có nguồn gốc động vật có giá trị dinh dưỡng cao, còn các protit thực vật có giá trị dinh dưỡng thấp.
3 termsCác nghiên cứu cho thấy quercetin có thể hoạt động bằng cách ngăn chặn hoạt động của các hóa chất gây viêm trong cơ thể như prostan và leukotriene.

To check quality, two annotators independently reviewed 500 utterances, about one hour sampled across all five topics. They agreed substantially ( = 0.65). Most disagreements came from clip boundaries that started or ended a little early, so we added an automatic boundary-refinement step to the pipeline.

A long tail of rare terms

Medical vocabulary is lopsided. A few terms come up constantly, and many appear only once. The dataset keeps that shape on purpose.

How often does each medical term come up?

Each dot is one distinct term. Pick a group.

889 distinct terms. Almost half appear five times or fewer; that long tail is what the Hard split tests.

The rarest terms get their own test. The holds only terms that occur once or twice in the whole collection, and every occurrence of them is kept out of training. A model can only get them right by generalizing, not by memorizing.

Which topics and splits does the audio cover?

Hours of audio by topic and by split.

Five topics
Four splits

Medical Sciences is nearly half of all audio. Right-hand column: utterances. For splits, the count of distinct code-switched terms is shown after the bar label. The Hard split shares no terms with Train, Dev or Test.

3 · Off-the-shelf models

Who hears the English best?

We first tested seven ready-made systems , without any training on our data. Some are built for Vietnamese: wav2vec2-base-vi, PhoWhisper and VietASR. Others are : MMS and OpenAI’s Whisper, trained on dozens to over a thousand languages.

Make a guess. Which model makes the fewest errors on the English medical terms?

Scored by CS-WER on the test set, before any fine-tuning.

The model that is best on English terms is not the best overall. VietASR, trained for Vietnamese, has the lowest WER of all seven at 27.56, but a CS-WER of 58.38. On the test set, in each matched pair, the Vietnamese version lowers overall WER and the multilingual version does as well or better on the terms. The gap is widest for the largest models: Whisper-Large-v3 beats PhoWhisper-Large on terms by more than 8 points.

Can one model get both the sentence and the terms right?

Lower is better on both axes. Dashed lines join each multilingual model to its Vietnamese counterpart.

Multilingual Vietnamese-optimized Zero-shot + LoRA + Attention Guide

Out of the box, no: Vietnamese models sit further left, the best multilingual one lower. Fine-tuning moves both small models down and to the left on the test set.

For researchers: all zero-shot scores (Table 4)
4 · Fixing it

Hints at decoding time, or teach the model?

There are two broad ways to help a model with specialist words. You can hand it a list of terms while it transcribes, which is called . Or you can it on code-switched speech. We tried both on one backbone, PhoWhisper-Small, using four families of methods.

Think of it asContextual biasing is handing the typist a list of tricky words before they start. Fine-tuning is sending the typist on a course in medical vocabulary.

Which fix works best: a term list or fine-tuning?

Eight methods on PhoWhisper-Small. Pick a metric and a split. Lower is better. Dashed line: the frozen model with no adaptation.

Fine-tuning wins. Attention Guide drops test CS-WER from 62.55 to 19.50; term lists at decoding time barely move it.

For researchers: how the methods were set up
  • Backbone: PhoWhisper-small, chosen because Whisper-style models are the prevailing substrate for recent code-switching ASR and PhoWhisper is a Vietnamese-optimized one of practical size.
  • For DV, RS and AdaCS, the bias list is built from the code-switched medical terms present in the split being decoded (train, test or hard).
  • Attention Guide uses bilingual Vietnamese–English prompts to reflect the code-switching setting.
  • Because AdaCS runs after decoding, it is also tested as a hybrid on top of LoRA and AG.
  • The Whisper-Small vs PhoWhisper-Small comparison (Table 6) is in the chart above under “Add fine-tuned models”.

Handing the decoder a term list barely moved anything: Dynamic Vocabulary and Rank & Selection stay within 2.5 points of the frozen model on test CS-WER. AdaCS, which corrects terms after decoding, nearly halves CS-WER on the test set but pushes overall WER up from 36.31 to 39.40.

Fine-tuning with adapters such as improves every metric. does best. It finds the attention heads that track which language is being spoken and steers them during training. It brings test CS-WER from 62.55 to 19.50, and WER from 36.31 to 23.67. In our example sentence, CS-WER looks only at quercetin, prostan and leukotriene; at 19.50, roughly one term word in five is still wrong.

Turn on the fine-tuned models in the chart above to see the backbone question. Both Whisper-Small and PhoWhisper-Small improve sharply, and the Vietnamese-optimized PhoWhisper ends up ahead overall. Starting from Vietnamese and teaching the English terms works better than the reverse.

The rare terms are still hard

Switch either chart to the Hard set. The gains mostly disappear. Terms the model never heard in training stay difficult for every method.

62.55Frozen model, CS-WER on test
19.50With Attention Guide, test
57.29With Attention Guide, Hard set

No method in the study gets Hard-set CS-WER below 56. Recognizing a medical term the model has never heard remains an open problem, and the Hard split is there to measure progress on it.

Some topics are harder than others

Before adaptation, Treatments is the most error-prone topic. After it, the gap narrows. Nutrition is easiest throughout. Diagnostics barely moves with LoRA and stays the worst topic after adaptation.

Which medical topics stay hard after fine-tuning?

PhoWhisper-Small. Lower is better.

Frozen LoRA Attention Guide

Diagnostics barely moves with LoRA and is the hardest topic after Attention Guide (44.40); Nutrition is easiest throughout.

What we learned

Four takeaways

  1. A first benchmark for Vietnamese medical code-switching. 34.6 hours and 16,576 utterances, each with at least one English medical term, plus a Hard split of rare terms.
  2. A clear trade-off out of the box. Vietnamese-optimized models get the sentence right; multilingual models get the English terms right. Whisper-Large-v3 has the lowest zero-shot CS-WER, VietASR the lowest WER.
  3. Adapters beat term lists. Attention Guide on PhoWhisper-Small gives the best balance: test WER 23.67 and CS-WER 19.50, down from 36.31 and 62.55.
  4. Unseen terms are the open problem. On the Hard split, CS-WER stays above 56 for every method tested.
Notes and limitations
  • Audio comes from public YouTube medical videos, is used for research only, and contains no private patient information.
  • Transcripts were produced with Gemini 2.5 Pro and checked by people on a 500-utterance sample (κ = 0.65).
  • Recordings come from public videos rather than clinical consultations.
  • The misrecognized spellings in the opening figure and the WER game are illustrative; every score comes from the paper.
Nguyen, T. X., Vo, N., Nguyen, G.-S., Hoang, D. M., Huynh, C. D., Jauregi Unanue, I., Piccardi, M., Buntine, W., & Le, D. D. (2026). ViMedCSS: A Vietnamese Medical Code-Switching Speech Dataset & Benchmark. In Proceedings of LREC 2026, pages 5657–5665.
Contact: tung.nx@vinuni.edu.vn · nhu.vd@vinuni.edu.vn

Read next

All publications · Get in touch about this research