The lab is a listening-first practice room for Mandarin beginners. It writes short, level-graded clips and reads them in natural voices; it drills the four tones by ear and by voice; it lets you take dictation, write characters, hold simple conversations with an AI partner, and bring your own texts. Readings can be shown in pinyin, in 注音 (zhuyin, bopomofo) or both, and the lab can follow Mainland Putonghua or, provisionally, Taiwan Guoyu. It is not a course and not a flashcard app: use it alongside whatever you use for characters and vocabulary. Everything runs in your browser; there is nothing to install.
Getting started
Open the lab (mandarin.lexlovers.com) in Chrome or Safari, on a phone or a computer, and sign in with your username or (since v0.30.1) the email address confirmed on your account, or make a free account on the sign-in screen (see Accounts). If we made your account, the first time you choose your own password (see Your account). iPhones work (tested in Chrome, which runs on Safari's engine).
No account? Try it without an account on the sign-in screen opens a trial: every drill, a few clips, and one conversation of five partner turns on each browser. Recordings are never kept, and what you do on the trial stays in the browser, which clears it (all but the voices' audio it has played) when you leave the trial, or when the trial is opened in a new tab, so the next person starts clean.
The trial has a small budget for the AI and the voices, shared out day by day (each day's in four parts, since v0.29) and between visitors, so as many people as possible can try it; everyone on one internet connection, such as a school's, shares one visitor's share. The banner says what your visit has left today (about so many clips, or a conversation of so many turns); tone practice starts on any syllable; tone practice, dictation and writing don't count against your share (the voices and speech recognition have daily limits of their own, 3,000 characters and 3 minutes a visit, and the banner says what's left of them, with a hide link if you'd rather not see it). When the part of the day's budget released so far, or your share, is used up, new clips and conversations stop until the next part or the next day (the lab says when), and a conversation already going can usually finish. Once your first line in the trial's conversation has been answered, this browser is offered a free account instead of another conversation. The lab can also pause the trial for a while; a conversation already going may finish. The lab counts trial visits and notes the country and the site that linked here: see Trial visits in the privacy statement.
Prefer no account at all? The free tone lab at tinglilab.org has tone practice with the judge, dictation on the HSK 1–3 words and writing, with no limits, and keeps everything on your device (since v0.27).
On a phone, use the browser's menu → Add to Home screen. It then opens like an app and works offline for anything already cached.
First time in, the word bank is filled with the HSK 1 words so every tab has something to work with. Add your own words in Settings whenever you like.
If you read zhuyin, or learn Taiwanese Mandarin, set that up first: see Readings and standard.
The header shows who is signed in (tap the name for your account), ? opens this page, and the version comes last. If something looks odd after an update, reload the page once.
Readings and standard
Two settings in Settings → Clips shape the whole lab.
Readings: pinyin, 注音 zhuyin, or pinyin + 注音. Whatever you choose is used everywhere a reading appears: under the words of a clip, in the tone drills' reveal and four-tones row, in the dictation reveal, in the word editor and in the Log. The reveal button in Listen is labelled to match (拼音, 注音 or 拼音·注音). Zhuyin follows Taiwanese conventions: first tone unmarked, the neutral-tone dot ˙ before the syllable.
Standard: Putonghua (Mainland) or Guoyu (Taiwan) · provisional. Guoyu switches listening to Taiwanese voices (曉臻 HsiaoChen, 雲哲 YunJhe), uses Taiwan readings in new clips for common words whose tones differ (星期 xīngqí, 垃圾 lèsè, 研究 yánjiù …), and, for what a Taiwan voice says, accepts the full tone wherever Putonghua uses a neutral one (谢谢 as 4·4 as well as 4·轻) in the tone quiz and in dictation. Switching sets your three voices to match; you can still choose any voice afterwards. Since v0.26 the Taiwan readings of the HSK 1–3 words were checked against Taiwan's Ministry of Education dictionary, and Tones, Dictation and Write rotate the Taiwan voices (Settings → Voices).
Each word is marked by the standard of the voice that says it (in Tones, and for words in Dictation and Write). When a Taiwan voice says 星期, the answer is xīngqí, whatever the Standard is set to; when a Mainland voice says it, xīngqī: the reading you're marked on is the one the voice's clip says. A clip's lines in Dictation keep the readings the clip was made with.
What Guoyu does not change yet: the tone judge compares you with Mainland voices (a Taiwan voice's syllables are judged against the Mainland voice of the same sex). A properly calibrated Guoyu judge needs Taiwanese reference recordings and is planned. Characters are shown in simplified form for now; traditional display is planned too.
Readings already stored with a clip were set when it was made, so a change of standard applies to clips made afterwards.
听 Listen
New clip writes a short dialogue or story built around ten words from your bank, reads it aloud and hides the text. Listen first. Then reveal in steps: 汉字 shows the characters (the word being spoken is highlighted), the readings button (拼音, 注音 or 拼音·注音, depending on your setting) adds the readings, and English adds the translation. Tap any word to replay from it. 🐢 Slower re-reads the same clip at the slower rate.
Length 1–5 sets how long the clip is; Difficulty 1–5 sets how simple the sentences are and which of your words it reaches for (easy = short, familiar words; hard = the ones you have met least, and a few beyond your level).
Words with a dotted underline are outside your bank: new to you. They appear in the Log as "new" and can be copied from there, one per line, for a flashcard or writing app.
Answer the questions, then Log this clip: the words you heard get their seen-counts, which is what "familiar" means above.
Once a clip is logged, ✍ Write some of its words offers up to ten of its words to write: words from your bank, or from the HSK lists up to the clip's level, with the clip's own target words and the words you've never written first. Tick the ones you want; they're written as after Dictation (see Write).
Prepare 5 makes clips in advance; ▶ Next prepared plays them later, including offline. Making clips needs a connection; playing cached ones does not.
Long-press a word (half a second) to open it: edit its meaning, add a note or mnemonic, give it a colour, add or remove it from your bank. 🔊 Hear it beside the word says it (since v0.30.1): the voice library's clip where there is one, at the speed set in Settings → Voices.
Meanings are the HSK list's in full (since v0.29; they used to stop at 70 characters). In Write, Tones and Dictation a long one takes up to two lines and ends at a whole sense with "…" (hover over it for the rest); a word's sheet shows all of it, and tables and tips its first senses. A meaning you wrote yourself stays as you wrote it. Students' accounts, the trial and tinglilab.org leave out a few slang and vulgar senses, and notes that only point to another way of writing a character are left out for everyone.
⚑ flags a clip that sounds wrong or unnatural; a short note helps.
On the trial, free accounts and students' accounts the voices come from the lab's server (v0.28), and the highlighting follows estimated word timings, so it can run a little ahead or behind; a note says so once a session. A learner's or teacher's timings follow the voice exactly.
声调 Tones
Three modes, chosen from the first drop-down.
single syllables: hear one syllable, tap its tone. tone pairs: hear a two-syllable word, tap both tones on the grid (the fifth column, 轻, is the neutral tone).
repeat back: hear it, then ● Record and say it back. Recording stops by itself after about two seconds. You then see a graph and, for a single syllable, a verdict (below).
The second drop-down chooses where items come from: your bank, HSK 1, HSK 1–3 or any syllable (a random syllable in one of the tones Mandarin words actually use). Combinations that no Mandarin word uses, such as ché or kěng, are never drilled. Words ending in 儿 (哪儿, 一点儿 …) are left out of the tone drills: erhua is one syllable, and it sounds unnatural spoken alone. With "library voices for single syllables" ticked, a one-syllable word from your bank or HSK is played as its syllable from the tone library; unticked, as the voice reads the word. The voices take turns (Settings → Voices), because hearing many voices is what makes the skill transfer.
The voice library (v0.26). Every syllable the tab drills, in all four tones, is a stored clip in four Microsoft neural voices (Xiaoxiao, Xiaoyi and Xiaohan for Mainland, and 曉臻 HsiaoChen for Taiwan), and every HSK 1–3 word in seven (with Yunxi, Yunyang and Yunjian), made once: tone practice, four tones, the judge, the pair quiz, and dictation and writing on HSK words play them straight away and cost nothing. Every tone clip was measured before it was published. The male voices didn't keep their tones reliably, so for now they read words only, and the few syllables whose clip in one voice didn't keep its tone are played in another voice. The Mainland voices' third tones were shallow, so on 23 October 2026 those that didn't dip clearly were made again, deeper (730 syllable clips and 759 word clips), and zhao and lian, with 找 and 脸, play in their own voices again; a device that kept the old clips takes the new ones as it plays them. Settings → Voices → Prepare this voice keeps all of one voice on the device (up to about 34 MB), and then they work offline.
After you answer, the item is revealed with its characters, its readings in your chosen form, and its meaning.
Show meaning (since v0.32.1), beside 🔊 Hear it, is a hint before you answer: a word's meaning, or for a syllable on its own (any syllable, and the review's Due today and Misses) up to three words with that sound and tone, your bank's first, then HSK 1–3's, a character alone before one inside a longer word (码, as in 号码), without their readings until you answer. A tone that no word in your bank or HSK 1–3 has shows a word for it from the whole HSK list instead, with its level and not a tap (since v0.32.2: 颠, as in 颠覆 (HSK 7–9)), or says it has none; a tap on any other character or word opens it. A right answer after it counts in your stats, but doesn't move the item up the review schedule. In repeat back the meaning comes with the item, as its reading does.
四声 four tones plays the syllable in each of its tones by the same voice, only the tones Mandarin words use (for se that is just sè), labelled in your chosen readings. Use it after a wrong answer. Since v0.32.1 a tone's words show below the four when you point at it (or move to it with Tab); tap it (or press Enter) to hear it again.
⚑ flags an item whose audio sounds wrong or unnatural; add a short note if you like. Flags reach the maintainer, and poor recordings are taken out of rotation.
manual next / auto next: whether the next item comes by itself 1.5 s after a right answer. Pressing "Hear it" cancels an automatic advance.
🐢 slower (ticked at first, since v0.30.1): every syllable and word, and four tones, is played a little slower, at 0.8× of the voice's speed, the pitch kept; Settings → Voices → Speed sets how much (0.5× to 0.95×). Untick it to hear the voices at their own speed.
Prepare 40 caches items so rounds work offline. For a whole voice, use Settings → Voices → Prepare this voice.
Due today and Misses (accounts, since v0.32), the source's first two entries, come from the review schedule: in single syllables, the tones due today, 20 a round, the longest overdue first, each in a voice drawn as rounds draw them; in tone pairs, the two-syllable words of your bank that hold one (a pair's other syllable is answered too, and counts as an answer to its own item); in repeat back, the tones you said that are due (Misses: those that didn't match). The line under Start says what a round holds, or why there's none. Your own lists are sources too: see My lists.
✍ then trace the characters: after a round from your bank or the HSK lists, a writing sheet opens with the round's characters, the ones you got wrong first, to trace once each, then offers Once more from memory. See 写 Write.
Repeat back: the graph and the verdict
Grey is the voice's pitch; teal is yours. Both are drawn relative to each speaker's own voice, so a low male voice and a high female one compare fairly.
Single syllables.heard as is the app's judgement of which tone you produced. Each of the voice's four tones of that syllable gets a score from your contour and its pitch level, and (since v0.28) from your syllable's length and creakiness compared with what native speakers do in each tone: creak counts only where the tone wouldn't have it, and length only outside the tone's usual range, measured against your own average once you've recorded a few. The tone that scores best is heard, but the tone you were asked for is heard if its score is near enough the best (since v0.33.1), except that a contour rising like a second tone without dipping first isn't taken for a third. If the recording lost your pitch before the syllable ended, you're compared with the same first part of the voice's. similarity says how close your shape was to the target (for a third, the nearest of its forms: the voice's own, its low part, or a full fall-and-rise): 100 is identical, 80 is about half a semitone off on average, 50 a semitone and a half, and 0 three semitones or more (since v0.33.1; it used to reach 0 only at six, so the Log's earlier rounds show higher figures). A ✓ with a low similarity means "right tone, rough shape"; a ✗ with a high one, a shape near the target's but nearer another tone's, or said in a way the tone isn't (too high or low for you, too long or short, or creaky): the reason says which. After a ✗ the verdict says why: the tone your shape was nearest, or, when another tone was heard, what tipped it, compared with the tone your shape was nearest ("shape: nearest a fourth tone (72%), but longer and higher than a fourth tone for you, as a first tone is").
Words. A two-syllable word gets a guide instead of a verdict: your contour for the whole word drawn over the voice's, and how similar they are. Tones inside words, especially the last syllable, which is often short and creaky, can't be judged reliably by pitch alone from a phone recording, so the app doesn't pretend to.
The third tone. Said alone, a full third falls and rises again. Since v0.33.1 the judge compares a third with the voice's own third and with a full fall-and-rise (the typical shape of six native speakers' thirds), so a full third counts even where the voice's own barely rises. In speech the third tone is usually just low (often creaky) without the final rise, and in Taiwan it is usually said that way even alone: the judge accepts that as a third tone when it's low for you or creaky, with its lowest point within its first 70% (or later, where the voice's own third is lowest later too), and says "low third"; when a contour shaped like one isn't low for you or creaky, the verdict says that's what it lacks. A contour that falls all the way to its end is a fall, not a third, unless the voice's own third does too, as many of Xiaohan's do.
How reliable is it? Measured on 30 October 2026 (v0.33.1) against the library's three Mainland voices, the ones the judge compares you with. On three native speakers' recordings made on their own phones, the judge accepted 37 to 40 of 43 correct single syllables, depending on which voice it compared with (28 to 31 of the 32 from the two Mainland speakers; before v0.33.1, 32 to 33, and 24 to 26). It let through none of their 33 deliberately wrong tones (a fourth tone said for a first, second or third, and a first for a fourth), but that's a small sample, and a mistake can pass: checked against a tone they weren't, their correct tones were accepted about 1 time in 10, most often a second as a third (9 times in 15) and a fourth as a third (4 times in 27). On a published collection recorded by six native speakers (2,733 to 2,847 syllables, depending on the voice) it heard the right tone 86 to 88% of the time when it wasn't told which tone was meant, up from 82 to 83%, and accepted 90 to 92% when it was told, as it is when you practise; third tones were the hardest (74 to 86% of them accepted), and their thirds were accepted as seconds 4 times in 10 when a second was asked for. Neither test is independent: the six speakers' recordings set the judge's allowances for creak and length and its full third, and the three speakers' were used to choose its other settings, so on other people's voices expect it to do a little worse. The samples of phone recordings are small, so treat these figures as indicative, and a single ✗ as a prompt to listen again rather than a ruling. If a recording is very quiet, the verdict says so: hold the phone a little closer, in a quiet room.
Spoken tones and written tones
Dictionaries write 你好 as 3·3, but everyone says 2·3: when two third tones meet, the first becomes second. 一 and 不 change too (一起 is said 4·3, 一定 2·4, 不是 2·4), but 一 keeps its first tone in 第一 and in dates (一月). Readings show the dictionary form; the pair quiz and repeat-back expect the spoken form. Where they differ, both show the word as it's said first (since v0.30.1: 不但 búdàn), then as it's written and why (written bùdàn: 不 before a fourth tone is said in the second tone).
Six words the word list gives both ways are accepted both ways (since v0.31): 里面 lǐmiàn or lǐmian, with a light 面, and 前面, 上面, 外面 and 下面 the same; 知道 zhīdào or zhīdao. The pair quiz and Dictation accept either; the pair quiz's reveal and repeat-back show both.
Putonghua and Guoyu. Taiwan Guoyu uses the same four tones as Putonghua but differs in places: fewer neutral tones (东西 dōngxī, 谢谢 xièxiè), the low third described above, a second tone that often starts with a slight dip, and a few words with other tones (星期 xīngqí, 垃圾 lèsè). Both are correct Mandarin; choose yours under Standard.
Speaker box and recordings
Leave the speaker box empty for yourself. If a friend has a go on your phone, type their first name first and clear it afterwards; their results and recordings are labelled separately. Recordings you keep are uploaded to the lab's server under your username, used only to test and improve the tone judge, and never shared, each labelled with the speaker name (the line above the box says so too, since v0.30.1); untick keep my recordings to keep nothing.
听写 Dictation
A line from one of your clips (or a word from your bank) plays; type what you hear, in pinyin or in 注音 (choose type pinyin or type 注音). Press Enter (or check ↵ on the keypad) to check, and again for the next.
Pinyin, Skritter style: tone numbers, ni3 hao3; nv3 or nu:3 for nǚ; 5 (or 0) for the neutral tone. Spaces are optional; erhua can be dian3r or dianr3.
注音: on a phone, a zhuyin keypad replaces the keyboard; on a computer the keys type zhuyin in the standard Taiwanese 大千 layout (1 = ㄅ, q = ㄆ, a = ㄇ …; 6 3 4 7 for ˊ ˇ ˋ ˙; space or ˉ for first tone); a zhuyin input method works too. A tone mark ends each syllable, ˙ may go before or after, and an untoned ㄦ after a syllable is erhua.
Green: right sound and tone. Amber: right sound, wrong tone (the expected tone is shown). Red: wrong sound. Grey: a syllable you missed. Feedback is shown in the system you typed in.
🐢 Slower, 汉字 and English are hints you can use before checking (since v0.32.1 a word read right after its English or 汉字 counts as read, but doesn't move it up the review schedule); the reveal shows readings in your chosen form. A round of words starts slower while 🐢 syllables and words slower is ticked (since v0.30.1, at the speed Settings → Voices sets, the pitch kept); 🐇 Normal plays them at the voice's own speed. A round of clip lines starts at the normal speed, and its 🐢 makes a slower version once.
Starts with (since v0.32.2) is a hint too: each syllable's start, without its tone, on a line under the box: its first letter or two in pinyin (朋友: p· y·; 吃饭: ch· f·), or its first symbol when you type 注音 (朋友: ㄆ· ㄧ·). Like English and 汉字 it's a hint for the word, which a right answer then doesn't move up the review schedule; it shows no tones, so the tones you hear count as they always do.
Lines from your clips on another device (since v0.31): a clip comes to each device you sign in on without its audio, which stays where it was made (Listen makes it again when you open the clip). When fewer than 30 of your clips' lines can play on a device, ▶ Start round first makes the audio for up to three more clips there, the ones you heard most recently first (on a free account or a student's, from the voices it may use in a day); offline, a round takes the lines the device has.
Dictation expects dictionary tones (3·3 for 你好), because that is what you type into Skritter. Under Guoyu, a full tone is also accepted where Putonghua has a neutral one.
Due today and Misses (accounts, since v0.32): the words due on the review schedule, as a round of ten, the longest overdue first, or those you last got wrong. A word is read right when you typed every syllable right, sound and tone. A line from your clips isn't an item, but its words are: each word of a line that's in your bank or the HSK list, and that a round of words can play (one reading, up to three characters), comes back in Due today, and the full tone of each syllable whose sound you typed right comes back in Tones. Your own lists are sources too: see My lists.
✍ then write the words (rounds of words from your bank): at the end of the round, a writing sheet opens with its words, prompted by their sound, then offers Once more from memory. Words you hear wrong also come back in Write today.
写 Write
Learn to write the characters you've been hearing. Each character is written on a square, stroke by stroke, and every stroke is checked as you draw it: its shape, its direction and its place in the order. ▶ Start round gives you about 12 characters, in whole words.
Source: Write today (below), your bank, HSK 1, HSK 1–3, or the words you've given a colour. Cue, what prompts you: the word's sound (the default; 🔊 plays it again), its pinyin (or zhuyin, as you read), its meaning, or a mix of the three in turn. One syllable can be many characters, so under Sound the meaning is shown too for one-character words and for words that sound the same as another word in your bank or HSK 1–3; the meaning button is always there. When a word's sound can't be had just now (offline, or the voices busy), or a word has no meaning saved, you get its pinyin instead.
Mode: Learn plays the strokes once, then you trace them over the outline, then write the character once from memory. Recall is from memory, with no outline. On paper: write it on paper, press Show to watch it played, then mark yourself ✓ or ✗; it suits a computer without a touch screen. Auto (the default) chooses for each word: Learn if one of its characters has never been written here, Recall otherwise.
Hint lights the next stroke; Show plays the whole character, then you trace it; Skip moves on. A stroke refused three times also shows you the next one. A character written with none of these is clean, even if you corrected a slip or two yourself; the mark under each character (✓, hint, shown, skipped) says how it went. Letters and digits in a word (the T of T恤) are shown, not written.
Write today brings back, in this order: the characters due on the review schedule (since v0.32, with an account), the longest overdue first, each in the word you last wrote it in; the words you heard wrong in Dictation; then, with add new characters ticked, new characters from your bank, the most-heard first. A character you write cleanly from memory, or get right on paper, when it's due comes back after a longer wait each time (3, 7, 14, 30, then 60 days); one that needed help (learning it, a hint, Show, Skip or ✗) comes back the next day. On the trial and the free tone lab, a character comes back each day until you write it cleanly on a later day, and then it's settled. At the end of every round, the words you learned or needed help with come back once more, from memory, by sound.
Misses (accounts, since v0.32): the characters you last got wrong from memory or on paper, in their words, the latest first, offered at once (Write today wants them the next day).
Strictness sets how closely a stroke must follow the model: relaxed (the default on phones and tablets), normal (the default elsewhere) or strict. Tracing over the outline is more forgiving than writing from memory, and a stroke drawn out of order or the wrong way round is refused either way. Pen: on auto, once a pen comes near the square the lab ignores fingers and palms there (it says so), so your hand can rest on the screen while you write; pen only does that from the start; any takes fingers too, for writing with a finger. Palm-sized touches are always ignored. Both settings belong to the device, and signing out puts them back.
From the other tabs: tick ✍ then trace the characters in Tones, or ✍ then write the words in Dictation, and a writing sheet opens at the end of the round; after a clip in Listen, ✍ Write some of its words opens one with the words you choose. Each ends with Once more from memory. In a word's sheet, ✍ Write opens the word to watch, trace or write from memory.
Prepare 40 loads the stroke data, and under the Sound cue the voices, for the next 40 characters, so rounds work offline. Offline, a round uses only words whose stroke data is on the device.
⚑ flags a character whose strokes look wrong, or whose order isn't the one you were taught (see the FAQ).
Writing stats: characters written, how often you wrote from memory without help in the last 30 days, what's due today, and the characters you keep missing (tap one to open it). Copy my writing list puts the words you've written on the clipboard, weakest first, one per line, for a flashcard or writing app.
Where a character has a single traditional form that differs, it's shown small beside it once you've written it (學 beside 学).
Your strokes are checked in your browser and never sent or kept: only each character's result is saved (see privacy).
Review: what comes back, and when
With an account (since v0.32), the lab keeps a review schedule for you. Each tone you hear (in Tones, and each syllable in Dictation), each word you read in Dictation, each character you write and each tone you say in repeat back is an item on a ladder of six rungs: it comes back after 1, 3, 7, 14, 30 and 60 days. An item steps on at its first answer, on the first rung, and is due the next day. A right answer when it's due takes it up a rung (at 60 days it stays, coming back every 60 days); a right answer before then keeps it on its rung and starts its wait again; a wrong answer sends it back to the first rung, due the next day. A tone heard right in one voice and wrong in another is one item: a review draws a voice as rounds do. Only what a round can ask again is an item: a full tone a syllable is played with on its own (a light tone, or a tone a syllable takes only beside another, as 所以's suó, isn't one: it comes back in tone pairs as your bank's words bring it), and a word with one reading.
Due today, the first source in Tones, Dictation and Write today, gives you what's due, the longest overdue first. The line under the tabs, Review · due today: 12 syllables · 3 spoken · 5 words · 4 characters · 6 misses, counts it, and each count opens its tab (the misses, the Log's Review card); since v0.32.1 it's worked out again after each answer, so it counts down as you go. It's hidden when nothing is due or missed.
Misses, the next source, gives you what you last got wrong, due or not (in repeat back, the tones that didn't match), the latest first. An item stays a miss until you get it right on a later day. In Write a miss is a character you needed help with, slipped on or got wrong from memory, or got wrong on paper: learning a character, or tracing it, isn't one. Learning a new word puts its new characters on the first rung, and leaves those already on the ladder where they are.
A hint holds an item (since v0.32.1): a right answer after Show meaning in Tones, or after the English, 汉字 or (since v0.32.2) Starts with in Dictation, leaves the item where it was on the ladder, still due if it was due; a wrong one counts as wrong. A right one when it's due still counts as a review, for today's ✓ and your streak.
The first day. The schedule is worked out from all the practice you've done, so your earlier answers may make a backlog on the first day: it's shown as it is, the longest overdue first, and a few rounds a day work through it.
The Log's Review card (Drills) shows what's due now by kind and how much of it is a week overdue, today's reviews right and wrong, your misses, how many items wait on each rung, and your streak: the days in a row on which you answered at least one review (a day with nothing due counts too, and today counts once you've answered one).
New from your teacher (students, since v0.33): at the end of the line, a list your teacher has given the class that you haven't practised yet, on any of your devices: New from your teacher: 第三课, a button that opens Tones with it chosen (Dictation for a list with nothing for Tones, Write for one with nothing for either). The line shows for it even when nothing is due, until you've had a round from it. See Lists from your teacher.
Nothing of the schedule is stored: it's worked out from your practice, which syncs, so it's the same on every device you sign in on, and a fresh browser gets it back. The trial and the free tone lab (tinglilab.org) have no schedule.
My lists
With an account (since v0.32), Settings → My lists keeps your own lists of characters and words (a lesson, a chapter, the week's words): up to 20 lists of up to 200 items each, 500 in all. New list makes one; give it a name (up to 30 characters) with Rename, put its words in the box and press Save; Delete asks once more first.
In the box: characters or words, one a line or several a line separated by spaces; traditional characters are read as simplified. A reading in tone numbers after one chooses among its readings: 长 zhang3, 好 hao4, 银行 yin2 hang2 (v or u: for ü, 5 for the light tone). Without one, the lab reads it as it does elsewhere, and Save says which items it read that way where there was a choice. Anything else, such as a word in Latin letters, is named and left out.
Each list is a source in each tab (List: 第三课), and with two lists or more, All my lists, where an item in two lists is one item. In Tones, single syllables takes its characters, each heard in the list's reading; tone pairs its two-character words; repeat back both. In Dictation, its words of up to three characters with a single reading, as a round of words. In Write, every character of every item. The small edit link beside the source goes to the list.
What you practise from a list goes on the review schedule like anything else, and its due items come back in Due today. Deleting a list changes nothing there. Your lists sync across your devices.
Lists from your teacher (students, since v0.33). Your teacher can give the whole class lists, made on the class's page. Each is a source in Tones, Dictation and Write, above your own lists: Class: 第三课, drawn as your own lists are (an item in a class list and in one of yours is one item). A new one is on the Review line, New from your teacher, until you've had a round from it. You can't change your teacher's list, but copy to my lists, beside the source, makes it one of yours (so does Copy in Settings → My lists, under From your teacher), with your own lists' limits and " (2)" after its name if you have one called that; the class's list stays as it is. When your teacher changes a list, your devices have the change at their next sync (a round already going keeps its words); when they delete one, it goes from your sources, and what you practised from it stays on your schedule. Your teacher sees how many rounds you've had from each list, and how you're doing on its items (met, right at your last answer, due, and missed, and where), from a short summary your page saves with your practice at each sync: What my teacher sees, in Settings → Account, shows you the same.
说 Talk
A conversation with an AI partner playing a role, about an everyday topic, at your level. Choose a topic (or open conversation), a partner and a level, then press Start: your partner speaks first.
Level. HSK 1, HSK 1–2 and HSK 1–3 keep your partner to the HSK 3.0 words of those levels (plus names, numbers and any word you've just used), in short replies that end with one simple question. It expects you to use mostly the same words, but understands you if you don't. No limit is natural everyday Mandarin: longer replies, with reactions and comments rather than one question at a time, and 30 turns instead of 20. The level starts at your Settings level and is remembered for next time.
Microphone, in three modes (you can switch during a conversation, and you can always type instead, in characters or pinyin):
Tap to talk: tap 🎤 Talk and speak. Your line is sent after the pause you set (Pause before sending), or straight away when you tap again or tap Done.
Hands-free: no tapping. The microphone opens by itself once your partner has finished speaking, and your line is sent when you pause. Tap ⏸ to take a break (anything half-said is dropped) and 🎤 Resume to carry on; after a minute of silence it pauses by itself.
Hands-free, interruptions on: the microphone stays on, as in a real conversation. Start talking while your partner is speaking and it stops where it had got to: the rest of its line is shown faded, and it knows you cut in. A quick 嗯 or 对 while it talks doesn't count as cutting in. If you pause and then carry on while it is still thinking, it waits: what you add joins your line and it answers the two together. Use headphones: through speakers the microphone also hears your partner. The lab drops what it recognises as your partner's own words, but headphones make this reliable.
Each reply is spoken and shown listen-first: 汉字, the readings button and English reveal that bubble step by step; 🔊 replays it and 🐢 says it more slowly. Tick show the text straight away if you'd rather read along. Underlined words are beyond your level: tap one to look it up, or long-press any word to open it. While your partner speaks, its words light up as they're said once the text is shown, as in Listen (since v0.29), and again on 🔊 and 🐢.
On the trial, free accounts and students' accounts, speech recognition passes through the lab's server (v0.28) and is counted in minutes a day rather than turns (see Accounts): five people can talk at once on free accounts (since v0.29), one at a time on the trial. When the minutes are used up the microphone says so, and you can type instead.
On a free account the turn count says how the day's conversation stands (since v0.29): Today's conversation: 10 partner turns before it, 7 partner turns left during it, and Today's conversation is done: another tomorrow. after it. Start doesn't use it up; your first reply does, so a mis-tap or a dropped connection costs nothing: you can start up to three times a day, and the conversation you first reply in is the day's. On the trial a conversation is five partner turns, one on each browser.
Your bubble shows what the speech recogniser heard. Like every recogniser trained on native speech, it hears what you meant, so it helps the conversation along but doesn't check your pronunciation; for tones, use repeat back in the Tones tab.
Your partner never corrects you mid-conversation; it just uses the right form in its own reply. When there's a more natural way to say one of your lines, a 💡 appears under it: tap to see it.
After 20 of your turns (30 at No limit, 10 on a free account, 5 on the trial), or whenever you press End & debrief, you get a debrief: the words you were looking for (with Add these to my bank), your best lines, two of your lines said even better, and a word of encouragement. Conversations and their debriefs are kept under Log → Talk, and words your partner used count as seen, as with clips.
Partners: a new friend, a new classmate, a new teacher, a new neighbour, the host-family mother on your first day, a new colleague and a new boss, each meeting you for the first time (since v0.29: they know nothing about you yet, and may ask your name), and a shop assistant, a waiter, a taxi driver, a hotel receptionist and a stranger on the bus. Under the Guoyu standard, partners speak with Taiwanese voices and Taiwan vocabulary, and recognition listens for Taiwanese Mandarin.
What the partner will and won't do
The partner is an AI, and says so if asked. It keeps to everyday subjects suitable for a school classroom: no romance, nothing sexual, no violence, alcohol, drugs or gambling, no political or religious debates, and no medical, legal or financial advice. It never asks for personal details (full name, address, school or workplace, phone, email, social media, photos) and never suggests meeting or moving to another app; if a conversation heads somewhere off-limits, it changes the subject in simple Chinese. If something you say suggests you're in danger or being hurt, the role-play stops and the app shows where to find help. These rules are set on the server, not in the app, so they can't be switched off.
文本 Texts
Paste any Chinese text: a reader page, a song, a chapter. It is split into passages of about 120 characters, each word-spaced, given readings (in your chosen form) and a translation, with questions, and read aloud by your current voices; passages then play in the Listen tab like any clip. If preparing stops part-way (a free account's passages for the day used, say), the text waits in My texts, below the box: Continue, beside it, prepares the rest. Tick classical Chinese for old texts; the poetry reading style suits them. Words met in texts are kept apart from your clip bank so they don't distort the difficulty settings; the Text words list copies them, one per line, for a flashcard or writing app. Students' texts must be mostly Chinese, with no stretch longer than 400 characters without a full stop (。!?) or a blank line, and no links, email addresses or long numbers (write a date as 2026年10月13日, a phone number in Chinese); the lab says so, and quotes what it found, before keeping one that isn't.
A photo of a page (since v0.32). 📷 Take a photo (on a phone) or 🖼 Choose a photo (one taken earlier, or sent to you; on a computer, a file): the page makes it smaller and sends it through the lab's server to Claude, which reads the page's Chinese passage, its punctuation kept and its lines joined into paragraphs, and leaves out pinyin, glosses, exercise numbers and anything else. The text comes into the box: check it against the page (a character is misread now and then), trim it, then Add and prepare. A second photo adds its text after a blank line, for a passage over two pages. A page too long to read in one go comes back without its end, and the lab says so: take the rest in a second photo. Hold the phone square to the page, in good light; handwriting and glossy pages read less well. The photo isn't kept (see privacy). On a free account, a photo doesn't use the day's text passages: they're used as they're prepared, 5 a day since v0.32.1 (about a page). A page's text is often more than one passage, so Add and prepare makes as many as the day has left, and Continue, beside the text in My texts below, the rest another day; a photo taken once the day's passages are used keeps its text there in the same way. Ten photos a day at most (five before v0.32.1), so a blurred page can be taken again. For nothing: a phone's own camera text (Live Text on an iPhone, Google Lens on Android) reads Chinese too, and pastes into the box.
记录 Log
Clips lists what you have heard, replayable from the cache. Drills shows what is prepared for offline use and every tone, dictation, repeat-back and writing round with its score; repeat-back rounds of words show their average similarity, as a guide. Words lists words you have met, with readings in your chosen form and their seen-counts; "new" ones are not yet in your bank. Copy new words puts them on the clipboard, one per line, ready to paste into a flashcard or writing app; Mark new as added then moves them into your bank. With an account, Drills starts with the Review card (since v0.32): see Review.
设置 Settings
Claude and Azure speech: leave the key fields blank; the site's own keys are used through the server. A key entered here is used instead, on this device only (not for the voices on the trial, free accounts and students' accounts, which always come through the server).
Clip model: Sonnet 5.5 writes the clips by default; Haiku 5.5 is faster and cheaper. The conversation partner is Haiku 5.5 unless you choose Sonnet 5.5 in the Talk tab, and Sonnet 5.5 writes the debrief; both are set on the server.
Voices: narrator and the two dialogue speakers, Mainland and Taiwanese; Rate and Slower set the two reading speeds. Since v0.32.2 a new clip's people are written to fit its voices (a man's voice reads a man or a boy, a child's voice a child), and the clip keeps those voices for its slower version and for its audio made again on another device.
Voices (the card after Clips): the voice for Tones, Dictation and Write: Rotate · Mainland voices (the default for Putonghua), Rotate · Taiwan voices (the default for Guoyu), or one voice by name. Prepare this voice keeps all of one voice's tones and HSK words on the device (about 34 MB) for practising offline; a Taiwan voice brings its Mainland partner's tones for the judge (since v0.31, for a syllable the partner lacks, the four tones of the voice that judges it). It can be stopped, and picks up where it stopped. 🐢 syllables and words slower (ticked at first, since v0.30.1) and its Speed (0.8× unless you choose): Tones and Write play everything at that speed, and so does 🔊 Hear it on a word's sheet; Dictation's rounds of words start at it. The voices are Microsoft Azure neural voices, not recordings of people. The tone library and the HSK words were synthesised once and are stored by TingliLab; anything else is synthesised when you ask for it. For the trial, free accounts and students the lab's server does that (v0.28); on a learner's or teacher's account, your own browser.
Clips: HSK level, tone colours, topics for the clips, Readings and Standard (see Readings and standard).
Word pool: paste anything containing Chinese (a Skritter list, a frequency list); only the Chinese words are kept, traditional forms folded into simplified. Gloss missing with Claude fills in glosses. The filter searches characters, pinyin, glosses and notes, so a tag in a note (say #kitchen) becomes a personal list.
My lists (accounts, since v0.32): your own lists of characters and words, each a source in Tones, Dictation and Write. See My lists.
Microphone: a level meter and a record-and-play-back test. Reset audio does what a page refresh does when the mic stops responding.
Tone scorer benchmark: an unattended test of the tone judge on the library's voices, each judged against the others (since v0.33.1 by the judge's rules), for the curious.
Data: your words, clips and results sync to the server a few seconds after each change and come back on any device you sign in on. Download backup saves them as a file; Restore merges one in.
New versions (since v0.33.1): when a new version is out, a bar at the top asks you to reload; your practice is kept. To know, the page asks the server which version is live while it's on your screen: every half hour, when you come back to it, and when the connection returns. It waits for the end of a round, and Reload warns you first about words typed in a box and not yet saved (My lists, a class's list, a text in Texts, words pasted in Settings, new students' names, a message typed in Talk), naming each.
Accounts
Free accounts. Anyone 18 or over can make one on the sign-in screen (since v0.30, from your email address): New here? Create a free account, type your address and press Send me the link. The email's link (it works once, for 24 hours) opens the sign-up form for that address: choose a username (letters, digits, _ or -) and a password, and you're signed in straight away. One free account per address. A free account is yours on every device: your word bank, clips, drills, writing and conversations sync. Each day it can make 3 clips (a rewrite counts), 5 text passages (about a page of a book; one before v0.32.1), and one conversation of up to 10 partner turns with its debrief (since v0.29; your first reply takes the day's conversation, not Start: see Talk); tone practice, dictation and writing don't count against these. A text's passages past the day's 5 wait for another day: press Continue beside the text in My texts, under the box in Texts. The voices have a daily share of their own since v0.25, and since v0.28 so does speech recognition in Talk: 8,000 characters (a short clip is a few hundred) and 10 minutes a day; Listen says what's left of each, with a hide link if you'd rather not see it (Show what's left today brings it back; a share used up is always shown). Its saved file can grow to 4 MB, about half a year of every day's clips; past that, new work stays on the device it was done on. Clips and the partner use the fast AI model under classroom rules, recordings aren't kept, and tone practice starts on any syllable; it can have 10 photos of a page a day read into Texts (since v0.32.1). Listen says what's left today, and so does the turn count in Talk.
Every free account gets its whole allowance every day (since v0.29): there's no shared daily budget to run out on a busy day. Behind the allowances is a monthly ceiling on what all free accounts together may spend. If the month's spending ever reached it, new clips and conversations would stop until the 1st (or until the ceiling is raised), the lab would say so, and tone practice, dictation and writing on the HSK words, and the clips you've made, would still work.
Voices on the trial, free accounts and students' accounts (v0.28) are made by the lab's server, which talks to Microsoft for them, so no speech key or token ever reaches their browser, and Microsoft sees the server's address, not theirs (privacy). Word highlighting in Listen, Texts and Talk follows estimated timings for them, so it can run a little ahead or behind; a note says so once a session in each tab (with a learner's account the timings follow the voice exactly). Speech recognition in Talk passes through the server too, and is counted in minutes a day (the trial 3 a visit, free accounts 10, students 15). Since v0.29 their voices, and free accounts' speech recognition, are on the lab's paid speech plan, with five people talking at once on free accounts; the trial's speech recognition stays on Microsoft's free allowance, where one person at a time can talk to the partner (see the FAQ). Tone practice, dictation and writing on the HSK words use none of this: they play the voice library, and Dictation's 🐢 plays the library's clip slowed down rather than a new one.
Your email address. A free account keeps the one its link was sent to, confirmed. Learners, teachers and admins can keep one too (since v0.30), in Settings → Account: a new or changed address gets a link to confirm it, and until it's used the account keeps the address it had. Settings → Account says which it is: Confirmed (with the date), Not confirmed (with Send the link), a change waiting for its link (Send it again), or none. Changing or removing it asks for your password, so nobody using a device you left signed in can put in an address of their own. An address can belong to one account only (for Gmail addresses, the dots and anything from a + before the @ don't count). Students and the trial have none.
Forgot your password?, under the sign-in form (v0.30): type the email address on your account and press Send the link. The email tells you your username, and its link (it works once, within the hour) lets you choose a new password; you're then signed in, and signed out on every other device. Next time, sign in with the username or the address (v0.30.1). It needs an address confirmed on the account, so confirming yours in Settings → Account is worth it. Without one, ask whoever gave you the account for a new password (students: your teacher); for a free account, write to us with your username.
What the lab emails (v0.30), from lab@tinglilab.com: the links you ask for (to make a free account, to set a new password, to confirm an address), an invitation when a place opens for you on the waitlist, the notice about free accounts when there is one (to every confirmed address), and, if you pressed Tell me when the paid version opens, news of the paid version (its opening, and any offer before it). Nothing else. Replies reach us at hello@tinglilab.com. The notice and the paid version's email come from notices@tinglilab.com and end with an unsubscribe link.
Delete my account, in Settings → Account, deletes a free account at once (it asks for your password); its saved file goes from the lab's server 28 days later, and the conversation log keeps your lines for up to 90 days, as it does for everyone (see the privacy statement). Download a backup first (Settings → Data) if you want one.
The trial (Try it without an account) is the quickest look: no account, a few clips a day, one conversation of five partner turns on each browser, and nothing kept beyond the browser (see Getting started). Anything you did on the trial isn't carried over into a free account; its banner has Create a free account (or Join the waitlist, when the places are taken). When the trial stops something, its message says why, how to get more (a free account, or the waitlist), and what still works without limit: tone practice and the tone judge, tone pairs, dictation and writing on the HSK 1–3 words, and the clips you've already made.
The waitlist (v0.29). There are 100 free places to start. When they're taken, Create a free account on the sign-in screen becomes Join the waitlist: leave your email address and tick Email me when a place opens. When a place opens the lab emails you a link that holds it for 48 hours: it opens the sign-up form with your address filled in, and it works once. It comes from lab@tinglilab.com: if it isn't in your inbox, look in the junk/spam folder. Every invitation also has a link that takes your address off the list; or write to us (see the privacy statement). If the waitlist is closed too, the sign-in screen says so.
Free accounts are offered as they are, as part of a test: they may change or pause, and your feedback is gratefully received — write to hello@tinglilab.com.
Notices about free accounts, such as the 30 days' notice before they lose anything they include now, appear on the sign-in screen and in a free account's Settings → Account, as Notice: … (v0.29), and since v0.30 go by email to every account with a confirmed address.
Tell me when the paid version opens, in a free account's Settings → Account (v0.29), records the day you asked to hear if a paid version opens; the lab then emails you news of it (its opening, and any offer before it), if your address is confirmed; Undo takes it back. The lab counts these to see whether a paid version is wanted; nothing available here requires payment at this time.
Students under 18 get their login from a teacher, with a parent's or carer's consent (see the teacher's guide), never from the sign-up form. Accounts we made for testers and teachers carry on as before.
Your account
Settings → Account shows who is signed in, and for adults the email address and whether it's confirmed (see Accounts). Change password asks for the current one; any other device you were signed in on is signed out.
You stay signed in on a device for 60 days after your last visit (students and the trial: one day). Sign out saves your changes to the server first, then clears this device's copy of your data, so the next person starts clean; it all comes back when you sign in again. Sign out everywhere does that on every device, which is the thing to do if you lose a phone. If the lab can't reach its server when you sign out (no connection, say), it still clears the device and says so, then finishes signing you out as soon as it can reach the server again; nobody can use your sign-in there meanwhile. If Sign out everywhere can't reach your other devices (because this device's sign-in had already ended), the sign-in screen says so: sign in and choose it again. If the lab is open in another tab when someone signs out or signs in, that tab starts again by itself. Each time it opens, the lab first checks with its server who is signed in. Offline, it carries on as you for as long as your sign-in would last online (60 days from your last visit; students and the trial: a day).
Forgotten your password? Forgot your password?, under the sign-in form, emails a link to the address confirmed on your account (see Accounts). Without one, ask whoever gave you the account for a new password (students: your teacher).
Students get their login from their teacher, who also looks after the password. Students' recordings are never kept, they get the fast AI model for clips and the partner, under classroom rules (up to 100 AI calls a day between the two), and their teacher can read their conversations with the partner. Their voices and speech recognition go through the lab's server (v0.28), with estimated word timings, up to 12,000 characters and 15 minutes a day; the server keeps no audio and no transcript. What my teacher sees, in Settings → Account, shows a student the numbers their teacher sees about their practice, how they're doing on the class's lists (v0.33), and which of their conversations their teacher may look at.
Teachers see My classes in Settings: make a class, type the students' first names, print their login cards, and give the class lists of characters or words (v0.33), each a source in the students' Tones, Dictation and Write. Progress, in a class, shows how each student is getting on, list by list too, their conversations with the partner and any safety flags. The teacher's guide explains it all, step by step.
Admins also see Accounts · admin in Settings: make accounts (a password is made up and shown once), give a new password, suspend, reactivate or delete an account, change its kind, and set teachers' limits. Their class section shows every teacher, with their limits and their classes' numbers, and can make a class for any teacher with its own limit. Safety flags · admin lists every time the partner changed the subject or stopped a conversation in the last 90 days, for every account, with who reviewed each one. Email · admin (v0.30) says whether the lab is sending and to which address its alerts go; switches each alert on or off (the places, the month's ceiling, a stopped role-play, sign-ups, the daily summary); shows the queue and the day's and month's emails by kind; sends a test email; and emails the notice to every confirmed address, or a message to the accounts that asked to hear of the paid version, each after a confirm box with the count. Invite the next N, on the Free accounts card, now emails the invitations itself.
Admins can act on several accounts or classes at once: tick them (the filter box narrows a long list: a name matches anywhere in it; a kind, a class code or a status such as suspended, class suspended or switched off only as a whole), then Suspend, Reactivate or Delete. A suspension signs people out at once and keeps them out until an admin reactivates them; a teacher sees it on her class or student and can't lift it. Suspending a teacher who has running classes asks whether to suspend her classes too, and names them. Reactivating lifts your suspension only: a student their teacher switched off stays switched off (Switch on on their row overrides that), and the page names anyone who still can't sign in, and why. A class list or class left open while a class is deleted and another made can't reach the wrong one: the page loads the list afresh instead.
Your word bank, clips (text, not audio), results and settings are stored in your browser and in a file on the server under your username. Each account can reach only its own file; the maintainer can see everything on the server, for running it.
Handwriting is checked in your browser: the strokes you draw are never sent or kept, only each character's result (clean, hint, shown and so on).
Repeat-back recordings are kept only while keep my recordings is ticked, never for students, free accounts or the trial. They are uploaded under your username and speaker label, used solely to test and improve the tone judge, and not shared.
Clip text is generated by a language model (Anthropic Claude) and audio by Microsoft Azure Speech; neither trains its models on this data.
A photo of a page you take for Texts (since v0.32) goes through the lab's server to Anthropic, to read its text; the lab keeps no copy of it.
Conversations with the AI partner go through the server, which keeps a log of each exchange for 90 days so that the partner's safety can be reviewed. Email addresses, links and long numbers are blanked out of the log. The conversation and its debrief are also saved with your own data, like clips. A student's teacher sees any exchange where the partner changed the subject or stopped the conversation, and can read the student's conversations; opening one is recorded.
A free account keeps the email address its link was sent to (confirmed), when you signed up, and the link and site that brought you; the day's sign-ups are counted by country (counts only). See Free accounts.
The lab's email goes through Postmark, which keeps each message for 45 days. A link in it is kept on the server only as a one-way hash, until it's used or soon after it expires, and an email waits in the server's queue only until Postmark has it. See Email.
On the trial, free accounts and students' accounts, the voices and speech recognition go through the lab's server (v0.28), so Microsoft sees its address rather than yours. The server keeps no audio and no transcript of what you say; it keeps single words it has made for up to 30 days, to share, with no account attached; and the conversation log notes each synthesis and each minute of recognition (the account or visit, the characters or seconds, their cost) for 90 days. See Voices and speech recognition through the server.
The trial never keeps recordings. Pressing Try it notes the visit for 14 days (the day, the country, the site that linked here and the link's tag, whether this browser had tried before or had its Try it conversation, and a code for the visit rather than its address), and the trial's lines in the conversation log just described carry that code. See Trial visits.
A teacher's lists for their class (since v0.33) are kept on the server, with who saved each and when, until the teacher deletes them or the class goes; the class's students see them. At each sync a student's page saves a short summary of how they're doing on each list (the items met, right at the last answer, due, and missed, and where), which their teacher sees in Progress. See Students.
The waitlist keeps your email address, the day you joined and the tag of the link that brought you, and, once you're invited, when and until when the invitation holds your place (and, if Postmark refuses your address, when: joining again clears it), until you make an account (with the invitation, or with the same email address) or ask to come off it; the account keeps the day you joined. A free account also keeps the day it was last used, and the day you asked to be told when a paid version opens (until you undo it). On the trial, once your conversation has had its first reply, the browser keeps the date, to offer a free account instead of another. See The waitlist. Privacy statement, version 13.
FAQ
Something plays with no sound / the mic stops working. Settings → Microphone → Reset audio, or reload the page.
"Needs a connection". Making clips and slow versions, and fetching the library's clips, need the network once; afterwards they are kept on the device. Use Prepare 5, Prepare 40 and Settings → Voices → Prepare this voice before going offline.
The voices are too fast, or too slow. Since v0.30.1 Tones, Write and Dictation's words play a little slower at first (0.8×). Settings → Voices → Speed sets how much, and 🐢 in Tones turns it off. For clips: 🐢 Slower in Listen, and Rate and Slower in Settings → Azure speech.
How do I hear a word on its own? Long-press it in a clip, or tap it in the Log or in your word pool, then 🔊 Hear it on its sheet (v0.30.1). For a word you haven't met yet, paste it into Settings → Word pool → Import, then tap it there.
The phone's address bar searches instead of opening the site. Type the address with https://, or use the home-screen icon.
I learned with zhuyin, not pinyin. Settings → Clips → Readings → 注音 (or both), and in Dictation choose type 注音.
I'm learning Taiwanese Mandarin. Settings → Clips → Standard → Guoyu. Read what it does and doesn't change yet under Readings and standard.
Can I see traditional characters? Not yet; characters are shown simplified for now. It's planned.
Write refused a stroke I drew right. Order and direction count: a stroke drawn out of turn, or the wrong way round, is refused. The stroke data follows the Mainland standard order, which differs from what Taiwan teaches for a few characters. If you think a character's order is wrong, flag it with ⚑.
Can I write traditional characters? Not yet. Where a character has a single traditional form, Write shows it beside the character once you've written it.
Why does a word get no ✓ or ✗? Because tones inside words can't be judged reliably from a phone recording by pitch alone; see Repeat back. Single syllables are judged.
My third tone keeps being marked wrong. In isolation the Mainland third tone dips low (often creaky) before it rises, and it is the longest tone; a low third without the rise is also accepted. Play four tones on the item and copy the third.
With interruptions on, my partner keeps stopping by itself. It is hearing its own voice through your speakers. Use headphones, turn the volume down, or switch to Hands-free, which keeps the microphone closed while your partner speaks.
"Speech recognition is busy just now", "Five people are talking on free accounts just now", "Only one person can try speaking at a time". For accounts made for you (by us or a teacher) it serves many people at once, so this is rare. Free accounts have five people talking at once (since v0.29), so a sixth waits a moment. The trial stays on Microsoft's free allowance, where one person at a time can talk to the partner. Wait a moment and tap 🎤 again, or type. The other messages: used up for today on this account (your minutes come back tomorrow), Speaking on Try it is used up for this month (the trial's free allowance comes back on the 1st), switched off just now (the lab has paused it for these accounts), Nothing was heard (the microphone sent no sound for 30 seconds: check that the site may use it), That recording ran too long (one stretch of listening lasts at most 10 minutes: tap 🎤 to go on) and Speech recognition stopped; reload the page (the connection did something the lab didn't expect). Tone practice, dictation and writing on the HSK words don't use speech recognition at all.
"That's today's voices on a free account", "That's this connection's share of the voices for today". The trial and free accounts have a daily share of the voices, in characters, and students one of their own; the banner says what's left. On the trial the share is a connection's: everyone on one internet connection, such as a school's, shares it. Tone practice, dictation and writing on the HSK words still work, from the voice library, and the share comes back the next day. Try it is busy means the part of the trial's budget released so far today is spent, and says when the next part begins; Try it is paused just now, that the lab has paused it. Free accounts have used this month's allowance would mean the monthly ceiling was reached: new clips, conversations and voices start again on the 1st (or sooner, if it's raised). The voices are busy just now: trying again in a moment means the lab is waiting its turn (up to two minutes) rather than failing.
"That's today's conversation on a free account", "That's three conversations started today without a reply". A free account has one conversation a day (since v0.29). Your first reply takes it, not Start, and you can start up to three times a day, so a start you don't reply to (a mis-tap, a dropped connection) doesn't cost you the conversation; both come back the next day, at the time the message gives. Tone practice, dictation and writing don't count.
"You've had your Try it conversation on this browser", "That's this connection's share of Try it for today". The trial has one conversation on each browser, and a share of its budget for each internet connection. Every message that stops something on the trial says why, then how to get more (a free account, or the waitlist when the places are taken), then what works without limit meanwhile: tone practice and the tone judge, tone pairs, dictation and writing on the HSK 1–3 words, and the clips you've already made.
I've forgotten my password.Forgot your password?, under the sign-in form, emails a link to the address confirmed on your account, and the email tells you your username too. Students: ask your teacher. Without a confirmed address, ask whoever gave you the account; for a free account, write to hello@tinglilab.com with your username.
I didn't get the email. Look in the junk/spam folder: it's from lab@tinglilab.com. The screen says the same whatever happened, so it can't tell you whether an address already has an account (if it has, the email says so and names the account), or isn't confirmed on one (a reset link goes only to a confirmed address). A mailbox gets at most six of the lab's emails a day (sign-up links and confirmations) and, apart from those, three reset links (since v0.30.1), so after a few tries, wait until tomorrow. If the screen says today's sign-up links are all sent, or that the lab has sent all the email it can today, try again tomorrow (UTC). The notice about free accounts and the paid version's news come from notices@tinglilab.com: if one lands in the junk/spam folder, mark it Not spam, so the next reaches your inbox. A sign-up or reset link used or lapsed (a sign-up link lasts 24 hours, a reset link an hour) opens the box to ask for another; for an address's link (24 hours), save the address again in Settings → Account.
What does a free account cost? Nothing. It's limited so the lab's bills stay small; a paid plan with more may follow if there is demand.
The partner misheard me. Check the bubble with your line: that's what the recogniser heard. Speak a little more slowly and closer to the microphone, or type the line instead.
Why did the partner change the subject? It keeps to everyday, classroom-friendly subjects. Steer back with a question about the topic, or start an open conversation. (A student's teacher can see when it happens.)
Where do new words go? Log → Words → Copy new words, then paste them into your flashcard or writing app and press Mark new as added.
"You've been signed out on this device". Your session ended: you signed out elsewhere, changed your password on another device, or your password was reset. Sign in again; nothing on the device is lost.
Questions or feedback? Email hello@tinglilab.com. For an account, make a free one on the sign-in screen.
Voices: Microsoft Azure neural text to speech (prebuilt voices), used under the Microsoft Product Terms; the stored libraries were made on the paid tier (the record, with the licences of the page's libraries: lib/LICENSES-2.txt). Taiwan readings: checked against the Ministry of Education's Revised Mandarin Dictionary (教育部《重編國語辭典修訂本》). Word lists: HSK 3.0 (2025 revision), from complete-hsk-vocabulary (MIT), with meanings from CC-CEDICT (CC BY-SA 4.0). Since v0.32.2 the whole list, levels 1 to 7–9, gives a word for a sound and tone that HSK 1–3's words don't show. Pinyin: pinyin-pro. Stroke order and checking: Hanzi Writer (MIT), with stroke data from Make Me a Hanzi (Arphic Public License). Traditional forms: OpenCC (Apache 2.0). Clip text: Anthropic Claude. Thanks to our native-speaker testers, whose recordings and feedback shaped v0.14 and v0.15.
Changes
Version
What changed
v0.33.1
The tone judge: the tone you were asked for is heard when its score is near enough the best (not a third, though, for a contour that rises without dipping); a full fall-and-rise counts as a third whatever the voice's own third is like, and a third without its rise only when it's low for you or creaky; a contour that falls to its end is a fall, unless the voice's own third does too; your pitch level counts half as much as before; after a ✗ the verdict says why; similarity is on a stricter scale. When a new version is out, a bar at the top asks you to reload.
v0.33
Lists from your teacher: a teacher gives the whole class lists of characters or words, made on the class's page in Settings → My classes, each a source in the students' Tones, Dictation and Write; the Review line says when a new one comes, and copy to my lists makes it a student's own. The class's Progress has a Lists table, and each list a page: the class's hardest items, and how each student is doing on it, from their own review schedule. The free tone lab no longer fetches the speech SDK, which only this lab uses. Privacy statement, version 13.
v0.32.2
In Tones, a sound and tone with no word in your bank or HSK 1–3 shows one from the whole HSK list, with its level (颠, as in 颠覆 (HSK 7–9)). A new clip's people fit its voices: a woman's voice reads a woman or a girl. Starts with in Dictation, a hint: each syllable's start (its first letter or two, or 注音's first symbol), without tones. When preparing a text stops, the message says where Continue is.
v0.32.1
Show meaning in Tones, a hint before you answer: a word's meaning, or a syllable's words (up to three, your bank's first, then HSK 1–3's); each of the four tones' words on hover or tap. A right answer after it, or after the English in Dictation, doesn't move the item up the review schedule. The Review line counts down as you answer, and counts your misses. Characters such as 三 and 马, which the HSK list also gives as surnames, now come up in Tones and Dictation, and hints leave the surname out. Free accounts: 5 text passages a day and 10 photos. The backup's file takes your own date, and the Log names a deleted list's rounds and a colour tag's.
v0.32
Review, with an account: every tone you hear, word you read, character you write and tone you say comes back on a schedule, after 1, 3, 7, 14, 30 and 60 days, further each time you get it right when it's due and back to the next day when you get it wrong. Due today and Misses in Tones, Dictation and Write, whose Write today now runs on the schedule; the line under the tabs that counts what's due, each count a button; the Log's Review card, with your streak. My lists in Settings, each a source in the three tabs, readings in tone numbers choosing among a character's. Texts: a photo of a page, which Claude reads into the box for you to check. Privacy statement, version 12.
v0.31
Dictation: lines from your clips on a device they came to without their audio (another device, or after signing in again): ▶ Start round makes the audio for up to three clips there first, the ones you heard last first. Six words the word list gives with a light syllable too are accepted both ways: 里面 lǐmian (and 前面, 上面, 外面, 下面), 知道 zhīdao. Tone stats and the Log's repeat-back rounds say matched where they said right. A remade clip slow to come plays the copy on the device after 3 seconds, the new one kept for the next play. Prepare this voice for HsiaoChen also brings the four tones of the voice that judges a syllable her partner lacks. The classes' progress says matched of tones and repeat-back too. "Junk/spam folder" wherever a link is on its way; the lab's icon on the tabs of help, privacy and the teacher's guide.
v0.30.1
Sign in with your username or the email address confirmed on your account. The lab's email has daily limits: a mailbox's reset links are counted apart from its other email, so asking for sign-up links to an address can't use them up; the day's sign-up links have a limit of their own, and the lab's account email a ceiling (the screen says when one is reached: try again tomorrow, UTC). An invitation the lab couldn't email gives its place back at once. Joining the waitlist says where the invitation will come from. Talk: when you give your name, the partner takes what follows as it's heard, even an everyday word (speech recognition can turn a name into one), and may ask once whether to call you that. Tones and Dictation: single syllables and words a little slower at first (0.8×, the pitch kept; Settings → Voices sets the speed, 🐢 in Tones turns it off). A word's sheet has 🔊 Hear it. Tones' reveal and repeat-back show a word as it's said first (不但 búdàn), then as it's written and why, and the recordings line says where kept recordings go. Two syllables whose third tone sounded like a second are played in other voices (zhao from Xiaoxiao and Xiaoyi, lian from Xiaoxiao), and so are the words 找 and 脸, even on a device that kept them. Write: its words at Tones' speed too, and a meaning's Chinese characters a little larger again. Privacy statement, version 11.
v0.30
The lab's own email: a free account starts from your email address (a link, then the sign-up form), one account for each address; Forgot your password?, under the sign-in form, emails a link that sets a new one; learners, teachers and admins can keep a confirmed address in Settings → Account, for that; the waitlist's invitations are emailed by the lab; the notice about free accounts goes by email to every confirmed address, and the paid version's news, if there is any, to those who asked. Admins get Email · admin in Settings: the lab's alerts and its daily summary, each switched on or off, the queue and the counts, a test email and the two mailings. Talk: the partner takes the name you give after 我叫 or 我是, however unusual it looks, and doesn't ask for it again. Try it: the clip limit's message says how long until more, how to get more, and what works without limit. Write: in a word's two-line meaning, its Chinese characters are a step larger. The lab's address is now hello@tinglilab.com. Privacy statement, version 10.
v0.29
Free accounts sure of their allowance: one conversation a day of up to 10 partner turns, taken by your first reply rather than by Start (up to three starts a day), and every account's whole allowance every day, with no shared daily budget to run out; behind it, a monthly ceiling the lab would say it had reached. Their voices and speech recognition are on the paid speech plan, with five people talking at once. Try it: conversations of five partner turns, one on each browser; the day's budget released in four parts; a pause for the lab; and every refusal says why, how to get more and what still works. The waitlist: when the free places are taken, the sign-in screen offers it, and an invitation holds a place for 48 hours. Notices about free accounts on the sign-in screen and in Settings; Tell me when the paid version opens. Talk: the partner's words light up as it speaks; a new conversation no longer plays the previous one's voice; the friend, classmate, teacher, neighbour, host-family mother, colleague and boss are first meetings. Clips keep to one scene, with lines that follow on and the forms people use in speech. Meanings in full (they stopped at 70 characters), on up to two lines in Write, Tones and Dictation, with a few slang senses left out for students, the trial and tinglilab.org. Privacy statement, version 9.
v0.28
Voices without keys for the trial, free accounts and students: their clips, passages and the partner's lines are made by the lab's server, and speech recognition in Talk passes through it, so no speech key or token reaches their browser (Microsoft sees the server's address, not theirs). Their word highlighting follows estimated timings, with a note once a session; speech recognition is counted in minutes a day; the banner says what's left of the voices and the minutes, with a hide link; and the messages when something is busy or used up say what, and when it comes back. For every account, a tone play the item's voice lacks comes from another library voice, a voice withdrawn from the tones keeps its words, and Dictation's 🐢 on a library word plays the stored clip slowed down. The tone judge takes a syllable's length and creakiness from what native speakers do in each tone (the library's voices carry neither), the length against your own average, and compares a syllable whose pitch was lost early with the same first part of the voice's: correct native tones accepted rose from 76–83% to 84–90% on a set of 4,100 syllables, and from 24–29 to 34–38 of the testers' 43, with every wrong tone still caught. Admins see the voices and the minutes on the Trial and Free accounts cards and in the usage report. Privacy statement, version 8.
v0.27
The free tone lab opens at tinglilab.org: tone practice with the judge, dictation on the HSK 1–3 words by level, and writing, with no account and no limits, on the voice library alone; nothing is kept on a server and nothing is synthesised there, and it has its own help and privacy pages. Here the header now says TingliLab.com, with the tagline bolder (on a phone, on a line of its own); the sign-in screen has a line for teachers, and the trial's banner mentions the free tone lab. On both sites, the four-tones play and the judge always use a voice whose four tones of the syllable are in the library: a male voice's word is judged against a Mainland female voice's tones, rather than tones made on the spot. A 了 inside a sentence now shows the reading it has there (le, or liǎo as in 不了), where it always showed liǎo.
v0.26
The tone and word libraries. Every syllable the Tones tab drills, in all four tones, is now a stored clip in four Microsoft neural voices (three Mainland, one Taiwan), and every word on the HSK 1–3 list in seven (with three male Mainland voices, whose tones measured too unreliable for tone practice), made once and served as files: tone practice, the tone judge, the pair quiz, and dictation and writing on HSK words no longer use the speech service, and work offline after Settings → Voices → Prepare this voice. One voice choice for Tones, Dictation and Write. Each item is marked by the standard of the voice that said it, and the Taiwan readings were checked against Taiwan's Ministry of Education dictionary. Tone Perfect has been removed. The voices are synthetic and say so. Privacy statement, version 7: the nightly encrypted backups; the libraries themselves use no learner data.
v0.25
The lab has a name: 听力实验室 TingliLab, Mandarin for tingli (听力) ears. Free accounts: anyone 18 or over can make one on the sign-in screen, with their word bank on every device and daily limits (3 clips, one text passage, 2 conversations with 10 partner turns between them; tone practice, dictation and writing don't count); the trial's banner leads there. Settings → Account keeps an optional email address (changed with your password) and can delete a free account. Admins see sign-ups and use on a Free accounts card. For accounts made for you (by us or a teacher), the voices and speech recognition now run on a paid plan, so the speech service is rarely busy; the trial and free accounts share a small free allowance. Privacy statement, version 6.
v0.24.1
写 Write: your ink is as wide as the character's own strokes, and tracing is more forgiving (writing from memory a little more, on Normal and Strict), so a mouse's overshoots and end flicks pass. Stroke order counts as before, and on Relaxed now as firmly as on Normal, tracing and from memory. 听 Listen: once a clip is logged, ✍ Write some of its words lets you pick up to ten of its words to write. The founding testers are in the credits.
v0.24
写 Write: learn to write the characters you hear. Watch a character's strokes, trace them, then write it from memory, prompted by its sound, pinyin or meaning; every stroke is checked as you draw it, in your browser. Write today brings back the characters that needed help, the next day, and the words you heard wrong in dictation. A pen is noticed and a resting palm ignored. Tones and Dictation can end with a writing sheet, and a word's sheet has ✍ Write. Dictation is now 听写. Writing counts in a teacher's progress numbers, with a "written from memory" figure. Privacy statement, version 5.
v0.23
The trial gets a budget, shared out day by day and between visitors: its banner says what your visit has left today, tone practice starts on the native recordings, clips are at most short, and when the day's budget or your share is used up new clips and conversations stop until the next day (the lab says when) while a conversation already going can usually finish. The lab counts trial visits and notes roughly where they come from (country, linking site, a link's ?from= tag), and the admin sees it on a Trial card. Countries: IP Geolocation by DB-IP. The trial now opens only with Try it, not with a username and password. Privacy statement, version 4.
v0.22
For students and the trial, the lab's server now writes every request for new clips, prepared texts and glosses itself, from the choices the page sends (level, topic, length, difficulty and words, or the passage to prepare); the page no longer sends the AI instructions of its own. A student's text must be mostly Chinese, at most 400 characters between full stops, with no links, email addresses or long numbers; the Texts tab says so before keeping one that isn't, and leaves out characters nobody can see. A page left open from before is asked to reload. Nothing changes for other accounts.
v0.21
Progress for teachers: Progress in a class shows each student (a table on a computer, a card each on a phone): when they last practised; clips, drills and conversations in the last 7 and 30 days; how often they were right; their words; and safety flags from the conversation service's own log. A conversation stopped with the support message is called out until someone marks it reviewed; changes of subject are counted quietly. Each student's page has a four-week trend and their conversations, to read in full. The table saves as a CSV file. For the admin, every flag of the last 90 days. For students, What my teacher sees. Words now record when they were first heard. Privacy statement, version 3.
v0.20.1
Fixes from a review, mostly for shared devices. Signing out without a connection still clears the device, and the server ends the sign-in as soon as it can; nobody can use it meanwhile. Another tab of the lab follows a sign-out or a new sign-in instead of carrying on as the last person. The trial forgets each visitor. Nothing behind the sign-in screen can be reached from the keyboard. The lab checks who's signed in before showing anything, and works offline only as long as the sign-in would last. A sign-out waiting for the connection finishes as soon as it's back, and the Back button can't bring back the last person's page. For the admin: reactivating leaves a teacher's switch-off in place (Switch on overrides it) and says who still can't sign in; the classes a teacher's suspension would take along are named; the filter matches kinds and statuses as whole words; a class list left open can't reach a class made since. Clips' key words and speaker names always show as plain text.
v0.20
For the admin: suspend or reactivate accounts and classes, and act on several at once with tick boxes and a filter; a suspension is a lock teachers can't lift. Suspending a teacher can take her classes with her. The same from the droplet's command line.
v0.19
Teachers and classes: a teacher makes classes, adds students by first name (after confirming a parent's or carer's consent), and prints login cards with easy passwords such as panda-river-42; new passwords in a click; archiving at the end of term. Students get the fast AI model for clips and the partner, under classroom rules, up to 100 calls a day. The admin sees every teacher's classes against their limits. A detailed teacher's guide. Privacy statement, version 2: how students' names and their parents' consent are recorded.
v0.18
Proper accounts: a sign-in screen instead of the browser's password box, choose and change your own password, sign out (which clears the device) and sign out everywhere, Try it without an account, and an admin panel. Groundwork for teachers and students. A privacy statement.
v0.17
说 Talk: four levels (HSK 1, HSK 1–2, HSK 1–3 and No limit), and hands-free conversation, with an option to interrupt your partner and to keep talking while it thinks.
v0.16
说 Talk: conversations with an AI partner in twelve roles and fourteen topics, with tap-to-talk, listen-first replies, 💡 hints and a debrief; its rules, models and limits are set on the server. Clips now written by Sonnet 5.5 by default, with Haiku 5.5 as the fast option.
v0.15
Tone judge rebuilt from the testers' recordings: quiet phone recordings normalised, low rumble filtered out, consonant noise no longer mistaken for creak (correct native tones accepted 86%, up from 63%; wrong tones still all caught). Words get a guide instead of a verdict. Provisional Guoyu standard. Each login's data is now private to that login.
v0.14
Testers' feedback: only real syllable-tone combinations; erhua words out of isolated drills; 注音 readings and zhuyin typing in dictation; the low third tone accepted; ⚑ flag button; repeat-back results now sync across devices.
v0.13
Help page; trial login with limits.
v0.12
Tone judge reworked for real voices: creak, pitch level and length now count, not only shape; benchmark against native speakers.
v0.11
Native recordings (six real speakers) as a source, in four-tones and as repeat-back references.
v0.10
No keys needed: the site's keys are used through the server. Home-screen install.
v0.9
Per-user accounts; guests by speaker name; recordings collected on the server with consent.
v0.7–0.8
Repeat-back with pitch contour and tone judgement; recordings export.
v0.5–0.6
Own texts; sync, backup and offline.
v0.1–0.4
Listening clips, tone drills, word editor, pinyin dictation.