Code-switching is mixing two languages inside one sentence — in Hong Kong, Cantonese and English. Most engines fail because a language detector lags when the language flips, routing audio to the wrong model. Oak uses a single bilingual model with no detector: it treats both as one space and keeps English words spelled correctly, producing a clean transcript first time.
Code-switching is not a quirk of Hong Kong meetings — it is the default mode. A product manager will say 個 dashboard 嘅 latency 而家高咗 in a single breath and expect you to keep up. For most transcription engines, this single sentence is three failure modes stacked: a Cantonese particle, an English noun, and a Cantonese verb structure. The model has to make tonal, lexical, and orthographic decisions in real time — and most can’t.
Key takeaways
- Code-switching is the norm in HK. English nouns and verbs land inside Cantonese grammar constantly, especially in product, sales, finance, and tech meetings.
- The detector is the weak link. Stitched-together engines rely on a language-detection layer that lags when the language switches, mis-routing the audio and corrupting the output.
- One model beats two. A single bilingual model with a shared acoustic frontend has no hand-off point to fail at, so it stays in flow across the switch.
- English stays English. A good engine keeps English tokens in their original spelling (dashboard, not 大薯波) instead of phonetically mangling them.
- Real audio matters. Training on actual Hong Kong workplace recordings — not clean studio audio — is what teaches a model how professionals really talk.
What is Cantonese–English code-switching?
Code-switching is the practice of alternating between two or more languages within a single conversation — and often within a single sentence. In Hong Kong, the dominant pattern is a Cantonese grammatical frame with English content words dropped in: nouns, verbs, and technical terms borrowed from English while particles, pronouns, and sentence structure stay Cantonese. It is not “bad” Cantonese or “broken” English; it is a stable, fluent register that professionals use without thinking. Any tool that wants to transcribe Hong Kong meetings has to treat it as the baseline, not the edge case.
What goes wrong with most engines
Most general-purpose models are trained on monolingual corpora and stitched together with a language-detection layer. When the language switches mid-sentence, the detector lags by half a second and the wrong sub-model gets the audio. The result is a transcript where English nouns become phonetic Cantonese (dashboard becomes 大薯波) or Cantonese particles get romanised into nonsense. Either way, the transcript is unusable without a manual pass — which defeats the point of automating it.
What Oak does differently
Oak uses a single bilingual model with a shared acoustic frontend trained on Hong Kong workplace audio specifically. There is no separate language detector to lag or mis-fire — the model treats Cantonese and English as a single space and tokenises at the level of meaning rather than language. Because the acoustic frontend is shared, there is no hand-off point between two sub-models where the transcript can break. When a speaker code-switches, the model simply continues in flow. And because it trains on real meeting recordings (with consent), not just clean studio audio, it has heard the way Hong Kong professionals actually talk — half-swallowed particles, fast English nouns, and all.
Worked examples
These are the kinds of sentences that fill a normal Hong Kong workday. For each, a monolingual model fails in a predictable way, and a single bilingual model keeps the meaning intact.
Product meeting
我哋下個 sprint 要 prioritise 邊個 feature?
A monolingual Cantonese model misses the three English tokens entirely or hallucinates Cantonese substitutes. A monolingual English model returns gibberish. Oak keeps sprint, prioritise, and feature in their original spelling and produces clean Cantonese around them, timestamped to the second.
Customer success call
個 client 話佢個 account 嘅 renewal 想 hold 住先,等佢哋 budget approve 咗。
The English business nouns (client, account, renewal, budget) and the verb hold are the load-bearing words — they carry the entire meaning of the ticket. A detector-based engine that mis-routes even one of them turns “the renewal is on hold pending budget approval” into noise. The single-model approach preserves every English term so the next agent on shift reads exactly what happened.
Finance discussion
個 cap table 要 update,因為 round 嘅 valuation 仲未 finalise。
Cap table, valuation, and finalise are exactly the terms a generic model flattens or mishears — and in finance, getting one wrong changes the record. Combined with your team’s Jargon Library (see business jargon), the model locks these terms in so they transcribe correctly every time, not just when the audio is clean.
Each example looks like a small win until you realise it is the structure of nearly every working meeting in the city. Get code-switching right and the rest of the pipeline — minutes and downstream AI summaries — has something solid to build on.
Single bilingual model vs detector-based pipeline
| Behaviour | Single bilingual model (Oak) | Detector-based pipeline |
|---|---|---|
| Mid-sentence switch | Continues in flow; no hand-off to fail | Detector lags; wrong sub-model gets the audio |
| English nouns | Kept in original spelling | Phonetically mangled (dashboard → 大薯波) |
| Cantonese particles | Rendered as colloquial Cantonese | Romanised into nonsense |
| Training data | Real HK workplace audio, with consent | Clean monolingual studio corpora |
| Manual clean-up | Rare; review not rewrite | Required on most sentences |
Where this shows up in our product
This work powers the Cantonese transcription you see across Broadcasting, TV Channels, and the everyday Sales & Client Meetings workflow. The same engine, with template overlays per use case.
Oak for Broadcasting Service
The customer-facing deployment that uses the workflow described in this article.
Frequently asked questions
What is code-switching in a Hong Kong meeting?
It is mixing Cantonese and English inside one sentence — typically a Cantonese grammatical frame with English nouns, verbs, and technical terms dropped in. In Hong Kong it is the default professional register, not an exception, so transcription has to handle it as the baseline case.
Why do most transcription tools fail on mixed Cantonese-English speech?
Because they combine a separate Cantonese model and English model behind a language detector. When the speaker switches language mid-sentence, the detector lags by a fraction of a second and routes the audio to the wrong model, so English nouns become phonetic Cantonese and Cantonese particles become nonsense. The transcript then needs a manual pass to be usable.
How does Oak transcribe code-switched sentences accurately?
It uses a single bilingual model with a shared acoustic frontend and no language detector, trained on real Hong Kong workplace audio. With one model there is no hand-off point to fail at, so it stays in flow across the switch, keeps English tokens in their original spelling, and renders the Cantonese around them colloquially — timestamped to the second.
Will English technical terms stay in English in the transcript?
Yes. Words like dashboard, sprint, cap table, or renewal are kept in their original English spelling rather than converted into phonetic Cantonese. Pairing this with your team's Jargon Library locks in your team's specific terms so they transcribe correctly every time.
Does Cantonese-English code-switching affect Mandarin too?
Hong Kong meetings often add Mandarin as a third language, especially with regional partners. The same single-model approach that handles Cantonese-English switching extends to Mandarin segments, which is why all-hands and bilingual sessions can be captured in one transcript. See bilingual HK meetings.