The runtime tone transformations

Here's a detail every beginner runs into and most textbooks whisper instead of announce: the tones you see in pinyin aren't always the tones you say. Chinese has a small set of mandatory transformations — tone sandhi — that rewrite the pitch of certain syllables based on their neighbors. Pinyin is usually printed in citation form (the "source code" tones); the speaker applies the sandhi rules at runtime.

Think of it as a compiler pass. The tokens on the page are one thing; what the runtime emits after a peephole optimization is another. The three rules below cover ninety percent of daily speech.

// The three mandatory passes, in order.
function speak(syllables) {
    syllables = thirdToneSandhi(syllables);   // 3+3 → 2+3
    syllables = buSandhi(syllables);           // 不 before 4th → 2nd
    syllables = yiSandhi(syllables);           // 一 shifts by context
    return syllables.map(halfThirdSmooth).join(" ");
}

A quick refresher on the four citation tones before we start rewriting them: 1st is high and flat (), 2nd rises (), 3rd dips then rises (), 4th falls sharply (). A fifth "neutral" tone exists — unstressed, short, pitch borrowed from its neighbor. If any of that is still fuzzy, Module 0 has the full intro.

1. Third-tone sandhi — two 3rds can't sit together

When two third tones land next to each other, the first one shifts up to a second tone. Always. It's the single most common sandhi in the language because 3rd tones are common and the collision happens constantly.

// The canonical example.
written:  nǐ hǎo     // 3rd + 3rd — what you see in the book
spoken:   ní hǎo     // 2nd + 3rd — what leaves your mouth

// Rule, stated formally:
if (syllable[i].tone === 3 && syllable[i+1].tone === 3) {
    syllable[i].tone = 2;
}

A handful of everyday words where this fires every time you speak them:

WordCitation pinyinSpoken pinyinMeaning
你好 nǐ hǎo ní hǎo hello
很好 hěn hǎo hén hǎo very good
可以 kě yǐ ké yǐ may; can
水果 shuǐ guǒ shuí guǒ fruit
手表 shǒu biǎo shóu biǎo wristwatch

When three or more 3rd tones chain, the grouping matters. The rule applies left-to-right within a phrase, but speakers usually group by meaning:

// Three 3rds in a row — grouped by meaning.
written:  wǒ hěn hǎo            // 3 + 3 + 3
grouped:  wǒ [hěn hǎo]          // "I'm very good"
spoken:   wǒ hén hǎo            // first 3 survives (pause-adjacent); 2nd pair sandhis

// But in fast speech, often:
spoken:   wó hén hǎo            // all upstream 3rds shift to 2nd except the last

Writing convention: you'll almost never see the shifted tones printed. Textbooks, dictionaries, pinyin inputs, and this course all keep citation form. That's the source code. You — the speaker — are the compiler.

2. 不 (bù) — the negation that hates two 4ths

is the universal "not." Its citation tone is 4th — — and that's how it sits in the dictionary. But when the very next syllable is also 4th tone, 不 shifts up to 2nd () to avoid the double-fall.

// Rule: 不 does not like two 4ths in a row.
if (syllable === "bù" && next.tone === 4) {
    syllable.tone = 2;   // bù → bú
}
WordCitationSpokenNext tone
不去 bù qù bú qù 4th → shift
不要 bù yào bú yào 4th → shift
不对 bù duì bú duì 4th → shift
不是 bù shì bú shì 4th → shift
不吃 bù chī bù chī 1st → stays
不来 bù lái bù lái 2nd → stays
不好 bù hǎo bù hǎo 3rd → stays

The mnemonic is one sentence: 不 doesn't like two 4ths in a row. Everything else stays 4th. The rule is local — it only looks at the immediate next syllable, not the whole phrase.

3. 一 (yī) — the number with three moods

is the trickiest sandhi in the language, because its shift depends on what follows and whether the character is being used as a number or as part of a compound.

ContextRuleExampleSpoken
Before 4th tone 一 → 2nd (yí) 一定 (definitely) yí dìng
Before 4th tone 一 → 2nd (yí) 一样 (same) yí yàng
Before 1st / 2nd / 3rd 一 → 4th (yì) 一天 (one day) yì tiān
Before 1st / 2nd / 3rd 一 → 4th (yì) 一年 (one year) yì nián
Before 1st / 2nd / 3rd 一 → 4th (yì) 一起 (together) yì qǐ
Ordinal / counted alone 一 stays 1st (yī) 第一 (first) dì yī
Reciting digits 一 stays 1st (yī) 一, 二, 三 yī, èr, sān
// The full rule set for 一:
function yiSandhi(one, next) {
    if (isOrdinal(one) || isStandalone(one)) return "yī";   // 1st
    if (next.tone === 4)                     return "yí";   // 2nd
    return "yì";                                           // 4th — everything else
}
Best practice: don't try to re-derive the 一 tone from first principles every time you open your mouth. Learn the compounds with the applied tone already baked in. 一起 lives in your head as yìqǐ, not as "一 + 起 → apply rule → yì qǐ." Same for 一定 (yídìng), 一样 (yíyàng).

4. Summary — the whole rule set on one page

RuleTriggerEffectExample
3rd-tone sandhi 3rd followed by 3rd first 3rd → 2nd nǐ hǎo → ní hǎo
不 sandhi 不 (4th) followed by 4th 不 → 2nd (bú) bù qù → bú qù
一 before 4th 一 + 4th-tone syllable 一 → 2nd (yí) yī dìng → yí dìng
一 before 1/2/3 一 + non-4th syllable 一 → 4th (yì) yī tiān → yì tiān
一 standalone ordinal or counted solo 一 stays 1st (yī) dì yī

5. The half-third tone — a 3rd that never rises

Textbooks teach the 3rd tone as "dip and rise" — down, then back up. In isolation, that's true. In connected speech, a 3rd tone followed by any non-3rd tone usually only pronounces the low half of the contour. The rise is skipped because the next syllable is already starting.

// 3rd tone contour in isolation:// ˨˩˦  — dip all the way down, then rise

// 3rd tone before a non-3rd neighbor:
mǎ + chī  // ˨˩  + ˥  — just the dip; no rise

This isn't technically a separate rule — it's automatic phonetic smoothing. But it trips up learners who try to ram a full "dip-and-rise" into every 3rd tone they speak. Your ear will calibrate after enough listening. Until then: when a 3rd tone is mid-phrase, just stay low. Skip the rise.

6. Neutral tone — the unstressed syllable

Not strictly sandhi, but in the same family of runtime rewrites. Certain syllables drop their lexical tone entirely and become short, unstressed, and low. Their pitch is borrowed from whatever came before.

// Reduplicated nouns — the second copy goes neutral.
妈妈     māma       // not mā mā
爸爸     bàba       // not bà bà
哥哥     gēge       // not gē gē

// Grammar particles are almost always neutral.
   le   // aspect
   de   // possessive / attributive
   me   // in 什么, 这么, 那么
   zi   // noun suffix: 桌子, 椅子, 筷子
   ma   // question marker
   ba   // suggestion marker

In pinyin, neutral-tone syllables are written with no diacritic: māma, le, zi. If you see a bare vowel like that, shorten the syllable and let the pitch float.

7. Sample drills

Citation form on the left, what you actually say on the right. Read each pair aloud. Notice the gap.

// Third-tone sandhi drills
你好         nǐ hǎo        →  ní hǎo
很好         hěn hǎo       →  hén hǎo
可以         kě yǐ         →  ké yǐ
水果         shuǐ guǒ      →  shuí guǒ
手表         shǒu biǎo     →  shóu biǎo
友好         yǒu hǎo       →  yóu hǎo

// 不 drills
不去         bù qù         →  bú qù       // shift
不是         bù shì        →  bú shì      // shift
不要         bù yào        →  bú yào      // shift
不吃         bù chī        →  bù chī      // stays
不来         bù lái        →  bù lái      // stays
不好         bù hǎo        →  bù hǎo      // stays

// 一 drills
一定         yī dìng       →  yí dìng     // before 4th
一样         yī yàng       →  yí yàng     // before 4th
一天         yī tiān       →  yì tiān     // before 1st
一年         yī nián       →  yì nián     // before 2nd
一起         yī qǐ         →  yì qǐ       // before 3rd
第一         dì yī         →  dì yī       // ordinal — stays

One full sentence to pull it all together:

// 我 也 不 想 一起 去。
// "I also don't want to go together."

citation:   wǒ yě  bù xiǎng yī qǐ  qù
applied:    wó yě  bù xiǎng yì qǐ  qù
            │  │   │        │   │   │
            │  │   │        │   │   └─ 4th (no change)
            │  │   │        │   └─── 3rd, half-third
            │  │   │        └──────── 一 → yì (before 3rd)
            │  │   └───────────────── 不 + 3rd (想) → stays bù
            │  └───────────────────── 3rd + 3rd (yě xiǎng runs through 也)
            └──────────────────────── 3rd + 3rd (wǒ yě) → wó

8. Common mistakes

Over-applying 3rd-tone sandhi across a pause. The rule only fires within a single phrasal group. If there's a comma, a pause, or a clause boundary between two 3rd tones, they don't collide and neither shifts. 我很好,你好吗? does not rewrite the second 你 as 2nd.
Saying 不 as 4th before another 4th. This is the most audible beginner tell. bù qù sounds stilted and half-swallowed; bú qù is what native speakers hear as correct. Train the pair not the rule: -去, -要, -是, -对.
Saying 一 with the same tone everywhere. Reading aloud in every compound is a dead giveaway. Memorize each compound with its applied tone: yídìng, yíyàng, yìqǐ, yìtiān. Your brain shouldn't be running the rule at conversation speed.
Missing the neutral tone. māma with two full 1st tones sounds like you're naming two different mothers. Grammar particles — 了, 的, 吗, 吧 — must be short and unstressed. Length matters as much as pitch here.

9. Next steps

Sandhi is one of those rules that's faster to internalize than to recite. The drills above are worth reading aloud until the shifts feel automatic; after that, the pattern-matching happens on its own.

Next up in the reference series: the three de's (, , ) — same sound, same neutral tone, three completely different grammar roles.