Vietnamese Tone Classifier

Identify and count the 6 Vietnamese tones across a text passage

Scans Vietnamese text and reports how many syllables carry each of the 6 tones (ngang, sắc, huyền, hỏi, ngã, nặng), detecting the tone from the diacritic on each vowel. Runs locally in your browser.

What are the six tones of Vietnamese?

Vietnamese has six tones: ngang (level, no mark), sắc (rising, acute accent), huyền (falling, grave accent), hỏi (dipping, hook above), ngã (broken, tilde) and nặng (heavy, dot below). Each is shown by a distinct diacritic over or under the main vowel.

Vietnamese is a tonal language in which the same string of letters can mean completely different things depending on its tone. This tool scans a passage and counts how many syllables carry each of the six tones, giving you a quick profile of the tonal texture of a text.

How it works

Every Vietnamese syllable carries exactly one tone, marked by a diacritic on its main vowel (or, for the level tone, by the absence of any mark). The classifier Unicode-normalises each syllable to decomposed (NFD) form, which splits a character such as into a base a, a circumflex, and an acute combining mark. It then checks only for the five tone combining marks and maps each one:

acute  (U+0301) → sắc    (rising)
grave  (U+0300) → huyền  (falling)
hook   (U+0309) → hỏi    (dipping)
tilde  (U+0303) → ngã    (broken)
dot    (U+0323) → nặng   (heavy)
none           → ngang  (level)

Shape marks like the circumflex on â/ê/ô and the horn on ơ/ư are deliberately ignored, because they change the vowel quality rather than the tone.

Example and tips

The classic minimal set ma má mà mả mã mạ (“ghost, cheek, but, tomb, horse, rice seedling”) contains one syllable of every tone, so it tallies as 1 in each of the six rows. For best results paste plain prose; numbers, Latin loanwords, and tokens without a vowel are skipped so they do not distort the count.