Blog

Korean voice typing on a Mac

What makes Korean harder for a speech model than English, and why filler removal works differently in a language without spaces between clauses.

Every speech recogniser has languages it handles well and languages that expose it, and the split is not really about how a language sounds. What separates them is how much meaning lives in pieces that are short, unstressed and easy to confuse — and how much of that sits at the end of a word, where it is easiest to clip.

Korean puts a great deal there. That affects recognition, and it separately affects the cleanup stage that removes hesitations, in ways that do not resemble the English version of the same problem.

What follows describes the rules that actually ship, including several that were deliberately not written.

What makes Korean harder than English for a recogniser

These are not abstractions here. In the comparison that chose the shipped model, a smaller model rendered 견적서 — a price quotation — as 현척서, which is not a word. That measurement is one of the two that set the model size for every language, and it is a Korean one rather than an English one.

  • Agglutinative morphology. A verb form stacks stem, aspect, honorific level and mood: 보내요, 보냅니다 and 보내 are the same act at three registers, and the distinguishing material is a syllable or two at the very end.
  • Particles that change shape with what precedes them. The topic marker is after a consonant and after a vowel, the subject marker or on the same rule. They attach to the noun with no space, so noun and ending have to come out right as one unit.
  • A homophone-dense formal vocabulary. Much of the professional register is Sino-Korean, and many of those words share a pronunciation while differing in meaning — 수도 is both a capital city and a water supply, 경기 is a match, the economy and a province.
  • Honorific endings that change the tail of every sentence. An error there leaves the content intact and changes how the sentence reads socially, which is not the kind of mistake a spellcheck-shaped review catches.

The failure that costs more than a wrong noun

The same smaller model did something worse than mangling a noun: it collapsed a repeated word, turning into . The speaker said two tokens and the recogniser returned one.

A wrong noun is visible and you fix it, while a deleted token is not visible at all and arrives before any of the product’s own code runs. Verbatim mode cannot hand back a hesitation the recogniser already removed, and cleanup can only remove what it was given, so the promise that distinguishes the two modes quietly stops being true with nothing reporting a problem.

Where Korean spaces are and where they are not

The cleanup engine is built on whitespace tokens, which is safe in English because a whitespace token is a word. Korean has spaces, so it takes the same path — but Korean spaces mark 어절, phrase-sized chunks rather than words. 금요일에 is a noun with its particle attached in one token; 보내주세요 is a stem, an auxiliary and an honorific ending in one token.

The consequence for filler removal is precise: a whole-token rule fires when the filler stands as its own 어절, as usually does at the start of a sentence, and does not fire when a hesitation is fused into the token beside it. That limit is accepted rather than worked around.

The alternative would be substring deletion, which does exist in the codebase — for Japanese and Chinese, which have no spaces at all and leave no other option. It is the only operation here that can carve the middle out of a word someone said, and Korean is not routed through it. The risk is not theoretical: in Spanish, adding este to the filler list was measured deleting the demonstrative inside "este documento".

The rule the codebase follows is that the strength of a deletion rule is set by whether a wrong deletion would be observable — leaving something in is visible and fixable, while removing something is a loss the user may never learn about.

The contents of the Korean filler list

The entire list is two entries: and 으음.

Two obvious candidates are deliberately absent, and the rule file marks them as excluded for polysemy rather than forgotten. is a hesitation sound and also an answer, the everyday spoken "yeah", so removing it unconditionally deletes replies. is a hesitation marker and also a determiner, the in 사람 and PR.

One word is kept on purpose, with a test guarding it: . In 이거 빨리 보내주세요 it softens a request, and the sentence without it reads differently even though the content matches. A filler list is a list of sounds that are never words, which is why the English list stops at um, umm, uh, uhh, uhm, erm and hmm — and why Korean’s is shorter still.

Repeats that are not stutters

Reduplication is ordinary Korean rather than a disfluency. 하나 하나 means one by one, 빨리 빨리 is an intensified hurry-up, 곳곳 means all over the place. A repeat-collapsing rule written for English stutters would flatten all of them.

So the two-in-a-row collapse for Korean runs off an allowlist of exactly two tokens, and , chosen because neither has a legitimate doubled reading. Three candidates were rejected: , which collides with the word for tooth and with the number two; 이거 and 그거, since 이거 이거 큰일났네 is real emphasis; and , since 있어? is an enumeration.

The English allowlist does not leak across either, so the the 파일 주세요 comes back unchanged. Runs of three or more are read as emphasis everywhere and preserved: 정말 정말 정말 정말 survives intact.

The transform that is switched off

Self-correction handling — recognising that 목요일에 보내요, 아니 아니, 금요일에 보내요 contains a correction and keeping only the corrected version — is not shipped, in any language. It needs prosody to be safe, since the pause and pitch reset that mark a real correction are in the audio rather than in the text.

Korean is where the text-only version was most clearly unfixable, because bounding what such a rule may delete means knowing which spans are proper nouns, and part-of-speech information is not available at that stage. Without that bound the rule is free to remove a name or a negation. So 저는 돈이 없어요, 아니 아니, 저는 돈이 필요해요 comes through whole, and 아니 as a discourse marker in 아니 근데 이거 금요일에 보내야 돼요 survives, because there it introduces a clause rather than retracting one.

Two smaller absences follow the same logic. There is no trailing-phrase list for Korean, where English has one entry removed only in a narrow comma-bracketed position, and Korean spacing normalisation exists as a named, permitted transform without being applied. The engine’s Korean changes today are whitespace collapse, the two listed fillers, and that two-token hesitation collapse.

The bias is stated in the engine itself: when uncertain, preserve. A missed cleanup costs one deletion by hand, and an unauthorised deletion may never be noticed at all.

Lines whisper produces that nobody spoke

Speech models trained on subtitles emit subtitle annotations. The ones observed in Korean include (음악), (박수) and (), and the shape measured on a real device was two stuck together as ()().

Those are rejected in both modes, Verbatim included, because Verbatim promises not to alter what you said rather than to pass along what the recogniser invented. The match is deliberately strict: a whole line, after stripping exactly one bracket pair, against a fixed list. 음악 소리가 컸어요 and 이걸로 끝입니다 survive untouched, since 음악 and are words people say and (음악) is not — the same boundary described in what the cleanup stage removes.

Practical setup for Korean dictation

The language setting defaults to automatic, which detects per utterance and holds onto the last confident answer so an English product name in a Korean sentence does not flip the next one. Setting it to Korean explicitly is worth doing if you dictate almost entirely in Korean, particularly for short utterances where any detector has less to go on — the mechanics are here.

The personal dictionary is stored per language and is worth filling with the words a general model has no reason to know: company names, colleagues' surnames, product terms, the Sino-Korean vocabulary of your field. It reaches the decoder as a hint rather than a constraint, improving the odds on those words without limiting anything else.

Related

  • One model, five languagesHow a single multilingual speech model handles English, Korean, Spanish, Japanese and Chinese — including a sentence that switches language halfway through.
  • What "cleaned, never rewritten" removesThe exact list: fillers, accidental repeats, trailing filler phrases and orphaned commas. And the list of things deliberately left alone, including self-corrections.

All articles