1<!DOCTYPE html><!--LTf_YrxpybIQ72f7sUJBg--><html lang="en" data-scroll-behavior="smooth" class="geist_fb2752c4-module__3bEJhq__variable geist_mono_63e08873-module__ZgT9rW__variable noto_sans_sc_ef9b507d-module__F4wFrG__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.29207c2f.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/feb57b2dc8f29018-s.p.2539f70a.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/b76dcb2ac88cfc0e.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/043ed70efe539461.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/7a0a31b0bb154d05.js"/>
1<script src="/_next/static/chunks/c5f7c061607f3ba6.js" async=""></script>
1<script src="/_next/static/chunks/dd01b8b1cf33c732.js" async=""></script>
1<script src="/_next/static/chunks/a3a9595e87eb0104.js" async=""></script>
1<script src="/_next/static/chunks/54862cfd9e78f8dd.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-2166e46f883cbc43.js" async=""></script>
1<script src="/_next/static/chunks/ff1a16fafef87110.js" async=""></script>
1<script src="/_next/static/chunks/d2be314c3ece3fbe.js" async=""></script>
1<script src="/_next/static/chunks/d81113b1bd70c754.js" async=""></script>
1<script src="/_next/static/chunks/bdd26f6c54b6ec5e.js" async=""></script>
1<script src="/_next/static/chunks/77f0aa342a7e088f.js" async=""></script>
1<script src="/_next/static/chunks/7686b21ba3b9e4b5.js" async=""></script>
1<script src="/_next/static/chunks/8fb0d2179983c151.js" async=""></script>
1<script src="/_next/static/chunks/0802fc8e5014f680.js" async=""></script>
1<script src="/_next/static/chunks/d010b812bac8933c.js" async=""></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-MJCQV1NGK4" as="script"/><meta name="next-size-adjust" content=""/><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#0a0a0a"/><title>TonePerfect - Master Chinese Pronunciation with AI</title><meta name="description" content="Perfect your Mandarin Chinese pronunciation with AI-powered feedback. Master all 4 tones, 21 initials, and 38 finals. Take a free 12-prompt pronunciation test and get instant results. Also English, Spanish, French, German, Russian, Japanese and Korean."/><meta name="application-name" content="TonePerfect"/><link rel="author" href="https://toneperfect.app"/><meta name="author" content="TonePerfect"/><link rel="manifest" href="/manifest.json"/><meta name="generator" content="Next.js"/><meta name="referrer" content="origin-when-cross-origin"/><meta name="creator" content="TonePerfect"/><meta name="publisher" content="TonePerfect"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="education"/><meta name="classification" content="Language Learning"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><meta name="apple-mobile-web-app-title" content="TonePerfect"/><meta name="mobile-web-app-capable" content="yes"/><meta name="msapplication-TileColor" content="#E53935"/><meta name="msapplication-config" content="/browserconfig.xml"/><meta name="apple-itunes-app" content="app-id=6757938528"/><meta name="google-play-app" content="app-id=com.toneperfect.app"/><link rel="canonical" href="https://toneperfect.app"/><link rel="alternate" hrefLang="x-default" href="https://toneperfect.app"/><link rel="alternate" hrefLang="en" href="https://toneperfect.app"/><link rel="alternate" hrefLang="es" href="https://toneperfect.app/es"/><link rel="alternate" hrefLang="fr" href="https://toneperfect.app/fr"/><link rel="alternate" hrefLang="ru" href="https://toneperfect.app/ru"/><link rel="alternate" hrefLang="de" href="https://toneperfect.app/de"/><link rel="alternate" hrefLang="vi" href="https://toneperfect.app/vi"/><link rel="alternate" hrefLang="ko" href="https://toneperfect.app/ko"/><link rel="alternate" hrefLang="zh-Hans" href="https://toneperfect.app/zh"/><link rel="alternate" hrefLang="zh-Hant" href="https://toneperfect.app/zh-hant"/><link rel="alternate" hrefLang="ja" href="https://toneperfect.app/ja"/><meta property="og:title" content="TonePerfect - Master Chinese Pronunciation with AI"/><meta property="og:description" content="Perfect your Mandarin pronunciation with real-time AI feedback. Master tones, initials, and finals. Free 12-prompt pronunciation test available."/><meta property="og:url" content="https://toneperfect.app"/><meta property="og:site_name" content="TonePerfect"/><meta property="og:locale" content="en_US"/><meta property="og:image" content="https://toneperfect.app/opengraph-image"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="TonePerfect - Master Chinese Pronunciation with AI"/><meta property="og:image:type" content="image/png"/><meta property="og:locale:alternate" content="es_ES"/><meta property="og:locale:alternate" content="fr_FR"/><meta property="og:locale:alternate" content="ru_RU"/><meta property="og:locale:alternate" content="de_DE"/><meta property="og:locale:alternate" content="vi_VN"/><meta property="og:locale:alternate" content="ko_KR"/><meta property="og:locale:alternate" content="zh_CN"/><meta property="og:locale:alternate" content="zh_TW"/><meta property="og:locale:alternate" content="ja_JP"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:site" content="@toneperfectapp"/><meta name="twitter:creator" content="@toneperfectapp"/><meta name="twitter:title" content="TonePerfect - Master Chinese Pronunciation with AI"/><meta name="twitter:description" content="Perfect your Mandarin pronunciation with real-time AI feedback. Master tones, initials, and finals. Free 12-prompt pronunciation test available."/><meta name="twitter:image" content="https://toneperfect.app/og-image.png"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/favicon-16x16.png" sizes="16x16" type="image/png"/><link rel="icon" href="/favicon-32x32.png" sizes="32x32" type="image/png"/><link rel="apple-touch-icon" href="/logo192.png" sizes="192x192" type="image/png"/><link rel="mask-icon" href="/favicon.ico" color="#E53935"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","@id":"https://toneperfect.app/#organization","name":"TonePerfect","url":"https://toneperfect.app","logo":"https://toneperfect.app/logo192.png","sameAs":["https://apps.apple.com/app/toneperfect/id6757938528","https://play.google.com/store/apps/details?id=com.toneperfect.app","https://t.me/toneperfectbot"],"contactPoint":{"@type":"ContactPoint","url":"https://toneperfect.app/contact","contactType":"customer support"},"knowsAbout":["Mandarin Chinese pronunciation","Chinese tones","English pronunciation","Spanish pronunciation","French pronunciation","German pronunciation","Russian pronunciation","Japanese pronunciation","Korean pronunciation","speech assessment"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"TonePerfect","url":"https://toneperfect.app","description":"AI pronunciation training. Mandarin tones, initials and finals â plus English, Spanish, French, German, Russian, Japanese and Korean.","publisher":{"@type":"Organization","name":"TonePerfect"}}</script>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="font-sans min-h-screen flex flex-col"><div hidden=""><!--$--><!--/$--></div>
vendor: 67 bytes, line 1
1<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1GTM-M4XFWZC7
vendor: 82 bytes, line 1
1" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1<header class="sticky top-0 z-50 bg-warm-50/80 backdrop-blur-md border-b border-warm-300/50"><nav class="container-wide py-3.5 flex items-center justify-between"><a class="flex shrink-0 items-center gap-2.5 group" href="/"><img alt="TonePerfect" loading="lazy" width="36" height="36" decoding="async" data-nimg="1" class="group-hover:scale-105 transition-transform" style="color:transparent" srcSet="/_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=48&q=75 1x, /_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=96&q=75 2x" src="/_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=96&q=75"/><span class="hidden text-lg font-bold tracking-tight text-warm-700 sm:inline">TonePerfect</span></a><div class="hidden md:flex items-center gap-1"><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/features">Features</a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/practice">Practice</a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/tools">Tools</a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/hsk">HSK</a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/test">Free Test</a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/languages">Languages<span class="ml-1.5 rounded-full bg-gold-100 px-1.5 py-0.5 text-[10px] font-bold uppercase tracking-wide text-gold-900 align-middle">New</span></a><a class="text-sm text-warm-600 hover:text-warm-700 hover:bg-warm-200/60 px-3 py-2 rounded-lg transition-all" href="/blog">Blog</a></div><div class="hidden md:flex items-center gap-3"><div class="relative"><button class="flex items-center gap-1 px-1.5 py-1.5 text-sm text-neutral-600 hover:text-neutral-900 hover:bg-neutral-100 rounded-lg transition-colors sm:gap-1.5 sm:px-2.5" aria-label="Select language"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span class="hidden sm:inline">English</span><span class="sm:hidden uppercase">en</span><svg class="w-3 h-3 transition-transform " fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button></div><div class="inline-block"><a href="/go?c=home" class="inline-flex items-center justify-center gap-3 min-h-[40px] px-4 py-2 text-sm font-bold rounded-xl transition-colors bg-primary-500 text-white hover:bg-primary-600" data-cta="go">Get the app<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div><div class="flex md:hidden items-center gap-1.5"><div class="relative"><button class="flex items-center gap-1 px-1.5 py-1.5 text-sm text-neutral-600 hover:text-neutral-900 hover:bg-neutral-100 rounded-lg transition-colors sm:gap-1.5 sm:px-2.5" aria-label="Select language"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"></path></svg><span class="hidden sm:inline">English</span><span class="sm:hidden uppercase">en</span><svg class="w-3 h-3 transition-transform " fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7"></path></svg></button></div><a href="/go?c=header" class="inline-flex min-h-[36px] items-center gap-1.5 whitespace-nowrap rounded-lg bg-primary-500 px-3 py-1.5 text-xs font-bold text-white hover:bg-primary-600 " data-cta="go">Get app</a><button class="p-2 -mr-2 rounded-lg hover:bg-warm-200/60 transition-colors" aria-label="Toggle menu" aria-expanded="false" aria-controls="mobile-nav"><svg class="w-6 h-6 text-warm-700" fill="none" stroke="currentColor" viewBox="0 0 24 24">
1<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path></svg></button></div></nav></header><main class="flex-1">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"SoftwareApplication","@id":"https://toneperfect.app/#app","name":"TonePerfect","applicationCategory":"EducationalApplication","applicationSubCategory":"Language learning","operatingSystem":"iOS, Android, Web","description":"AI pronunciation coach. Records you speaking and scores every sound. Mandarin Chinese tones, initials and finals, plus courses in English, Spanish, French, German, Russian, Japanese and Korean.","url":"https://toneperfect.app","downloadUrl":"https://apps.apple.com/app/toneperfect/id6757938528","installUrl":"https://play.google.com/store/apps/details?id=com.toneperfect.app","screenshot":"https://toneperfect.app/og-image.png","author":{"@id":"https://toneperfect.app/#organization"},"publisher":{"@id":"https://toneperfect.app/#organization"},"offers":{"@type":"Offer","price":"0","priceCurrency":"USD","description":"Free with 3 AI-scored practice sessions a day. Premium from $9.99/month.","availability":"https://schema.org/InStock"},"featureList":["AI-powered pronunciation analysis","All 4 Mandarin tones training","21 initials and 38 finals practice","Real-time feedback with tone contour visualization","Spaced repetition progress tracking","Personalized learning path","Free 12-prompt pronunciation test","2200+ practice items","Pronunciation coaching in 8 languages: Chinese, English, Spanish, French, German, Russian, Japanese, Korean"],"inLanguage":["en","es","ru"]}</script>
1<section id="try-it" class="relative overflow-hidden"><div class="absolute inset-0 bg-gradient-to-br from-primary-50/50 via-warm-50 to-gold-50/30"></div><div class="absolute inset-0 overflow-hidden pointer-events-none select-none"><div class="absolute -top-20 -right-20 w-72 h-72 rounded-full bg-primary-200/20 blur-3xl reveal-fade reveal-slow"></div><div class="absolute -bottom-16 -left-16 w-56 h-56 rounded-full bg-gold-200/15 blur-3xl reveal-fade reveal-slow reveal-d2"></div></div><div class="container-wide relative z-10 pt-16 pb-12 lg:pt-24 lg:pb-16"><div class="grid lg:grid-cols-2 gap-12 lg:gap-16 items-center"><div class="text-center lg:text-left reveal-up"><p class="text-sm font-semibold text-primary-600 mb-4 tracking-wide">Free Pronunciation Diagnosis · No Signup</p><h1 class="text-4xl sm:text-5xl lg:text-5xl font-bold tracking-tight mb-5 leading-[1.1] text-warm-700">Find out what's holding back your<!-- --> <span class="bg-gradient-to-r from-primary-500 to-primary-400 bg-clip-text text-transparent">Chinese pronunciation</span></h1><p class="text-lg text-warm-600 mb-3 max-w-md mx-auto lg:mx-0 leading-relaxed">Record 5 words. Get an instant breakdown of your tones, initials, and finals â and know exactly what to fix.</p><p class="text-sm text-warm-400 mb-6 max-w-md mx-auto lg:mx-0">Free · No signup · 2 minutes.</p><div class="flex flex-wrap justify-center lg:justify-start gap-x-5 gap-y-2 mb-8"><div class="flex items-center gap-2 text-sm text-warm-600"><span class="flex -space-x-1.5"><span class="w-6 h-6 rounded-full bg-primary-200 border-2 border-white flex items-center justify-center text-[9px] font-bold text-warm-600">æ</span><span class="w-6 h-6 rounded-full bg-gold-200 border-2 border-white flex items-center justify-center text-[9px] font-bold text-warm-600">ç</span><span class="w-6 h-6 rounded-full bg-sky-200 border-2 border-white flex items-center justify-center text-[9px] font-bold text-warm-600">J</span><span class="w-6 h-6 rounded-full bg-emerald-200 border-2 border-white flex items-center justify-center text-[9px] font-bold text-warm-600">S</span></span><span><span class="font-bold text-warm-700">25,000+</span> <!-- -->tests taken</span></div><span class="text-warm-300 hidden sm:inline self-center">·</span><span class="text-sm text-warm-600">Avg score:<!-- --> <span class="font-bold text-warm-700">58/100</span></span></div><div class="flex flex-wrap justify-center lg:justify-start gap-x-5 gap-y-2 text-xs text-warm-400"><span class="flex items-center gap-1"><span class="text-primary-500">â</span> <!-- -->4 tones · 21 initials · 38 finals</span><span class="flex items-center gap-1"><span class="text-primary-500">â</span> <!-- -->Real-time AI scoring</span><span class="flex items-center gap-1"><span class="text-primary-500">â</span> <!-- -->2,200+ practice items</span></div><div class="mt-6 flex justify-center lg:justify-start"><div class="inline-flex items-center gap-2 rounded-full border border-warm-300/60 bg-white/70 px-3.5 py-1.5 shadow-sm backdrop-blur "><span class="flex items-center gap-0.5 text-gold-500"><svg class="w-3.5 h-3.5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M9.05 2.93c.3-.92 1.6-.92 1.9 0l1.34 4.12a1 1 0 00.95.69h4.34c.97 0 1.37 1.24.59 1.81l-3.52 2.56a1 1 0 00-.36 1.12l1.34 4.12c.3.92-.75 1.69-1.54 1.12l-3.5-2.55a1 1 0 00-1.18 0l-3.5 2.55c-.79.57-1.84-.2-1.54-1.12l1.34-4.12a1 1 0 00-.36-1.12L1.83 9.55c-.78-.57-.38-1.81.59-1.81h4.34a1 1 0 00.95-.69l1.34-4.12z"></path></svg><svg class="w-3.5 h-3.5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M9.05 2.93c.3-.92 1.6-.92 1.9 0l1.34 4.12a1 1 0 00.95.69h4.34c.97 0 1.37 1.24.59 1.81l-3.52 2.56a1 1 0 00-.36 1.12l1.34 4.12c.3.92-.75 1.69-1.54 1.12l-3.5-2.55a1 1 0 00-1.18 0l-3.5 2.55c-.79.57-1.84-.2-1.54-1.12l1.34-4.12a1 1 0 00-.36-1.12L1.83 9.55c-.78-.57-.38-1.81.59-1.81h4.34a1 1 0 00.95-.69l1.34-4.12z"></path></svg><svg class="w-3.5 h-3.5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M9.05 2.93c.3-.92 1.6-.92 1.9 0l1.34 4.12a1 1 0 00.95.69h4.34c.97 0 1.37 1.24.59 1.81l-3.52 2.56a1 1 0 00-.36 1.12l1.34 4.12c.3.92-.75 1.69-1.54 1.12l-3.5-2.55a1 1 0 00-1.18
10l-3.5 2.55c-.79.57-1.84-.2-1.54-1.12l1.34-4.12a1 1 0 00-.36-1.12L1.83 9.55c-.78-.57-.38-1.81.59-1.81h4.34a1 1 0 00.95-.69l1.34-4.12z"></path></svg><svg class="w-3.5 h-3.5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M9.05 2.93c.3-.92 1.6-.92 1.9 0l1.34 4.12a1 1 0 00.95.69h4.34c.97 0 1.37 1.24.59 1.81l-3.52 2.56a1 1 0 00-.36 1.12l1.34 4.12c.3.92-.75 1.69-1.54 1.12l-3.5-2.55a1 1 0 00-1.18 0l-3.5 2.55c-.79.57-1.84-.2-1.54-1.12l1.34-4.12a1 1 0 00-.36-1.12L1.83 9.55c-.78-.57-.38-1.81.59-1.81h4.34a1 1 0 00.95-.69l1.34-4.12z"></path></svg><svg class="w-3.5 h-3.5" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M9.05 2.93c.3-.92 1.6-.92 1.9 0l1.34 4.12a1 1 0 00.95.69h4.34c.97 0 1.37 1.24.59 1.81l-3.52 2.56a1 1 0 00-.36 1.12l1.34 4.12c.3.92-.75 1.69-1.54 1.12l-3.5-2.55a1 1 0 00-1.18 0l-3.5 2.55c-.79.57-1.84-.2-1.54-1.12l1.34-4.12a1 1 0 00-.36-1.12L1.83 9.55c-.78-.57-.38-1.81.59-1.81h4.34a1 1 0 00.95-.69l1.34-4.12z"></path></svg></span><span class="text-sm font-bold text-warm-700">4.6</span><span class="text-warm-300" aria-hidden="true">·</span><span class="text-sm font-medium text-warm-600">30K+ learners</span></div></div><div class="mt-4 flex justify-center lg:justify-start"><div class="flex flex-col items-start gap-3"><div class="flex flex-wrap justify-start gap-3"><a href="https://apps.apple.com/app/toneperfect/id6757938528?pt=127743389&ct=web-home&mt=8" class="inline-flex items-center gap-2.5 px-4 py-2 min-h-[44px] rounded-xl bg-warm-900 text-white hover:bg-warm-800 transition-colors" data-cta="store" data-store="ios"><svg class="h-5 w-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.74 1.18 0 2.45-1.64 3.98-1.64 1.29.05 2.55.59 3.32 1.66-3.02 1.68-2.5 5.86.33 7.14-.57 1.76-1.46 3.52-2.71 5.07zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"></path></svg><span class="flex flex-col leading-none text-left"><span class="text-[0.65rem] font-normal opacity-80">Download on</span><span class="text-sm font-semibold">App Store</span></span></a><a href="https://play.google.com/store/apps/details?id=com.toneperfect.app&referrer=utm_source%3Dtoneperfect.app%26utm_medium%3Dweb%26utm_campaign%3Dhome" class="inline-flex items-center gap-2.5 px-4 py-2 min-h-[44px] rounded-xl bg-warm-900 text-white hover:bg-warm-800 transition-colors" data-cta="store" data-store="android"><svg class="h-5 w-5" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 01-.61-.92V2.734a1 1 0 01.609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.198l2.807 1.626a1 1 0 010 1.73l-2.808 1.626-2.6-2.49 2.601-2.492zM5.864 2.658L16.802 8.99l-2.303 2.303-8.635-8.635z"></path></svg><span class="flex flex-col leading-none text-left"><span class="text-[0.65rem] font-normal opacity-80">Download on</span><span class="text-sm font-semibold">Google Play</span></span></a></div><div class="min-h-5"></div></div></div></div><div class="reveal-up reveal-d2"><div class="relative"><div class="relative bg-white rounded-3xl shadow-medium border border-warm-300/50 overflow-hidden"><div class="px-6 py-3 bg-gradient-to-r from-warm-700 to-warm-800 flex items-center justify-between"><span class="text-sm font-bold text-white tracking-wide">Free Pronunciation Diagnosis</span></div><div class="p-6 md:p-8"><div class="text-center py-4"><div class="mb-5 mx-auto max-w-[240px] bg-warm-50 rounded-2xl p-4 border border-warm-200/60"><div class="flex items-center justify-center gap-3 mb-3"><div class="w-12 h-12 rounded-full border-[3px] border-amber-400 flex items-center justify-center bg-white"><span class="text-lg font-bold text-amber-600">?</span></div><div class="text-left"><p class="text-xs text-warm-400">Your score</p><p class="text-sm font-bold text-warm-600">??/100</p></div></div><div class="space-y-1.5"><div class="flex items-center gap-2 text-[10px] text-warm-400"><span class="w-14 text-right">Tones</span><div class="flex-1 h-1 bg-warm-200 rounded-full overflow-hidden"><div class="h-full w-[48%] bg-amber-300 rounded-full"></div></div></div><div class="flex items-center gap-2 text-[10px] text-warm-400"><span class="w-14 text-right">Sounds</span><div class="flex-1 h-1 bg-warm-200 rounded-full overflow-hidden">
1<div class="h-full w-[55%] bg-amber-300 rounded-full"></div></div></div></div></div><p class="text-warm-700 font-bold text-lg mb-1">What's holding back your Chinese?</p><p class="text-sm text-warm-400 mb-5">5 words · free · instant diagnosis</p><button class="px-8 py-4 bg-primary-500 text-white font-bold rounded-2xl hover:bg-primary-600 transition-all shadow-green hover:-translate-y-0.5 hover:shadow-lg text-base">Diagnose My Pronunciation â</button></div></div></div></div></div></div></div></section><section class="bg-white border-y border-warm-300/40"><div class="container-wide py-5"><div class="flex flex-col items-center gap-3 text-center"><p class="text-sm leading-snug"><span class="font-bold text-warm-700">Also in 7 more languages</span><span class="block text-warm-500 sm:inline sm:ml-1.5">The engine that scores your Mandarin listens to these too:</span></p><div class="flex flex-wrap justify-center gap-2"><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/french"><span aria-hidden="true">ð«ð·</span>French</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/spanish"><span aria-hidden="true">ðªð¸</span>Spanish</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/german"><span aria-hidden="true">ð©ðª</span>German</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/russian"><span aria-hidden="true">ð·ðº</span>Russian</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/japanese"><span aria-hidden="true">ð¯ðµ</span>Japanese</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/korean"><span aria-hidden="true">ð°ð·</span>Korean</a><a class="flex items-center gap-1.5 rounded-lg border border-warm-200 bg-warm-50/60 px-2.5 py-1.5 text-xs font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/english"><span aria-hidden="true">ðºð¸</span>English</a></div></div></div></section><section class="py-8 bg-white border-y border-warm-300/40"><div class="container-wide"><div class="flex flex-col md:flex-row items-center justify-center gap-6 md:gap-12"><blockquote class="text-center md:text-left max-w-md"><p class="text-warm-600 text-sm leading-relaxed italic">â<!-- -->I finally understood why native speakers couldn't understand my 3rd tone. The AI feedback showed me exactly what I was doing wrong.<!-- -->â</p><footer class="mt-2 text-xs text-warm-400">â Sarah K., studying Mandarin for 2 years</footer></blockquote><div class="flex gap-8 text-center"><div><p class="text-2xl font-bold text-warm-700">30,000+</p><p class="text-[10px] text-warm-400 uppercase tracking-wider">learners</p></div><div><p class="text-2xl font-bold text-warm-700">2,200+</p><p class="text-[10px] text-warm-400 uppercase tracking-wider">practice items</p></div><div><p class="text-2xl font-bold text-warm-700">4.6</p><p class="text-[10px] text-warm-400 uppercase tracking-wider">app rating</p></div></div></div></div></section><section class="py-24 bg-warm-50"><div class="container-wide"><div class="text-center mb-16"><p class="text-sm font-bold uppercase tracking-wider text-primary-600 mb-3">How It Works</p><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-4">Simple as 1-2-3</h2></div><div class="grid md:grid-cols-3 gap-8 max-w-4xl mx-auto"><div class="relative text-center group"><div class="w-16 h-16 bg-gradient-to-br from-primary-500 to-primary-400 rounded-2xl flex items-center justify-center mx-auto mb-5 shadow-lg group-hover:scale-110 transition-transform"><span class="text-2xl">ð¯</span></div><h3 class="text-lg font-bold text-warm-700 mb-2">Read the text</h3><p class="text-sm text-warm-600 leading-relaxed">See Chinese characters with pinyin pronunciation guide</p><div class="hidden md:block absolute top-8 left-[60%] w-[80%] h-px bg-warm-300"></div></div><div class="relative text-center group"><div class="w-16 h-16 bg-gradient-to-br from-gold-500 to-gold-400 rounded-2xl flex items-center justify-center mx-auto mb-5 shadow-lg group-hover:scale-110 transition-transform"><span class="text-2xl">ðï¸</span></div><h3 class="text-lg font-bold text-warm-700 mb-2">Record yourself</h3><p class="text-sm text-warm-600 leading-relaxed">Speak into your microphoneâwe capture every detail</p><div class="hidden md:block absolute top-8 left-[60%] w-[80%] h-px bg-warm-300"></div></div><div class="relative text-center group"><div class="w-16 h-16 bg-gradient-to-br from-emerald-500 to-emerald-400 rounded-2xl flex items-center justify-center mx-auto mb-5 shadow-lg group-hover:scale-110 transition-transform"><span class="text-2xl">ð</span></div><h3 class="text-lg font-bold text-warm-700 mb-2">Get AI feedback</h3><p class="text-sm text-warm-600 leading-relaxed">Instant analysis of tones, initials, and finals with tips to improve</p></div></div></div></section><section id="features" class="py-24 bg-white"><div class="container-wide"><div class="text-center mb-16"><p class="text-sm font-bold uppercase tracking-wider text-primary-600 mb-3">Features</p><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-4">Master every aspect of Mandarin pronunciation</h2><p class="text-warm-600 max-w-lg mx-auto">Systematic training designed by language experts, powered by cutting-edge AI.</p></div><div class="grid md:grid-cols-2 lg:grid-cols-3 gap-5"><div class="group bg-primary-50 border-primary-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ð</span>
1<h3 class="text-lg font-bold text-warm-700 mb-2">Tone Training</h3><p class="text-warm-600 leading-relaxed text-sm">Master all 4 Mandarin tones plus the neutral tone with instant per-syllable tone scores, native-speaker audio to compare against, and targeted drills.</p></div><div class="group bg-gold-50 border-gold-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ð¤</span><h3 class="text-lg font-bold text-warm-700 mb-2">Initials & Finals</h3><p class="text-warm-600 leading-relaxed text-sm">Train every Mandarin soundâ21 initials and 38 finalsâwith targeted exercises for each sound.</p></div><div class="group bg-sky-50 border-sky-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ð¤</span><h3 class="text-lg font-bold text-warm-700 mb-2">AI Feedback</h3><p class="text-warm-600 leading-relaxed text-sm">Get instant, detailed analysis of your pronunciationâtone accuracy, segment clarity, and overall score.</p></div><div class="group bg-emerald-50 border-emerald-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ð</span><h3 class="text-lg font-bold text-warm-700 mb-2">Spaced Repetition</h3><p class="text-warm-600 leading-relaxed text-sm">Anki-style review system that schedules practice based on your performance. Never forget what you've learned.</p></div><div class="group bg-purple-50 border-purple-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ðºï¸</span><h3 class="text-lg font-bold text-warm-700 mb-2">Learning Path</h3><p class="text-warm-600 leading-relaxed text-sm">Personalized daily workouts that adapt to your level. Focus on your weakest areas first.</p></div><div class="group bg-orange-50 border-orange-200 rounded-2xl p-7 border hover:shadow-medium transition-all duration-300 hover:-translate-y-1"><span class="text-3xl mb-4 block">ð</span><h3 class="text-lg font-bold text-warm-700 mb-2">Placement Test</h3><p class="text-warm-600 leading-relaxed text-sm">Take a 2-minute test to discover your level and get a personalized learning plan.</p></div></div><div class="text-center mt-12"><a class="inline-flex items-center gap-2 text-primary-600 font-bold hover:text-primary-700 transition-colors" href="/features"><span>View all features</span><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></section><section class="py-24 bg-warm-50"><div class="container-wide"><div class="text-center mb-16"><p class="text-sm font-bold uppercase tracking-wider text-primary-600 mb-3">Available On</p><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-4">Practice anywhere, anytime</h2><p class="text-warm-600 max-w-lg mx-auto">Available on every major platform. Your progress syncs seamlessly across all devices.</p></div>
1<div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-5"><a href="/go?c=home-platforms" class="group bg-white rounded-2xl border border-warm-300/50 p-6 transition-all hover:border-primary-300 hover:shadow-medium hover:-translate-y-1" data-cta="go"><span class="text-3xl mb-4 block">ð</span><h3 class="text-lg font-bold text-warm-700 mb-2">Web App</h3><p class="text-sm text-warm-600 mb-4">Practice instantly in your browser. No download needed.</p><span class="text-sm font-bold text-primary-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">Open<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a><a href="https://t.me/toneperfectbot" target="_blank" rel="noopener" class="group bg-white rounded-2xl border border-warm-300/50 p-6 transition-all hover:border-primary-300 hover:shadow-medium hover:-translate-y-1"><span class="text-3xl mb-4 block">ð¬</span><h3 class="text-lg font-bold text-warm-700 mb-2">Telegram Bot</h3><p class="text-sm text-warm-600 mb-4">Quick practice sessions right inside Telegram.</p><span class="text-sm font-bold text-primary-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">Open<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a><a href="https://apps.apple.com/app/toneperfect/id6757938528" target="_blank" rel="noopener" class="group bg-white rounded-2xl border border-warm-300/50 p-6 transition-all hover:border-primary-300 hover:shadow-medium hover:-translate-y-1"><span class="text-3xl mb-4 block">ð</span><h3 class="text-lg font-bold text-warm-700 mb-2">iOS App</h3><p class="text-sm text-warm-600 mb-4">Native iPhone and iPad experience.</p><span class="text-sm font-bold text-primary-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">Open<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a><a href="https://play.google.com/store/apps/details?id=com.toneperfect.app" target="_blank" rel="noopener" class="group bg-white rounded-2xl border border-warm-300/50 p-6 transition-all hover:border-primary-300 hover:shadow-medium hover:-translate-y-1"><span class="text-3xl mb-4 block">ð¤</span><h3 class="text-lg font-bold text-warm-700 mb-2">Android App</h3><p class="text-sm text-warm-600 mb-4">Full-featured Android experience.</p><span class="text-sm font-bold text-primary-600 inline-flex items-center gap-1 group-hover:gap-2 transition-all">Open<svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></span></a></div></div></section><section class="py-24 bg-white"><div class="container-wide"><div class="text-center mb-16"><p class="text-sm font-bold uppercase tracking-wider text-primary-600 mb-3">Pricing</p><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-4">Simple, transparent pricing</h2><p class="text-warm-600 max-w-lg mx-auto">Start free and upgrade when you're ready. No surprises.</p></div><div class="grid md:grid-cols-2 gap-6 max-w-3xl mx-auto"><div class="bg-warm-50 rounded-2xl border border-warm-300/50 p-8 hover:shadow-soft transition-shadow"><h3 class="text-xl font-bold text-warm-700 mb-2">Free</h3><div class="flex items-baseline gap-1 mb-6"><span class="text-4xl font-bold text-warm-700">$0</span><span class="text-warm-500">forever</span></div><ul class="space-y-3 mb-8"><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>3 practice sessions a day</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Daily workout</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Placement test</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Progress tracking</li></ul><div class="w-full"><a href="/go?c=home" class="inline-flex items-center justify-center gap-3 min-h-[48px] px-6 py-2.5 text-sm font-bold rounded-xl transition-colors w-full bg-warm-200/60 text-warm-700 hover:bg-warm-300/60" data-cta="go">Get Started Free<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div><div class="relative bg-white rounded-2xl border-2 border-primary-500 p-8 shadow-green/50 hover:shadow-green transition-shadow"><span class="absolute -top-3 left-1/2 -translate-x-1/2 px-4 py-1 bg-gradient-to-r from-primary-500 to-primary-400 text-white text-xs font-bold rounded-full shadow-sm">Most Popular</span>
1<h3 class="text-xl font-bold text-warm-700 mb-2">Premium</h3><div class="flex items-baseline gap-1 mb-6"><span class="text-4xl font-bold text-warm-700">$9.99</span><span class="text-warm-500">/month</span></div><ul class="space-y-3 mb-8"><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Unlimited assessments</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Spaced repetition reviews</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Custom text practice</li><li class="flex items-center gap-2 text-sm text-warm-700"><span class="w-5 h-5 rounded-full bg-primary-100 text-primary-600 flex items-center justify-center flex-shrink-0"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12L10 17L19 8" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></span>Advanced analytics</li></ul><div class="w-full"><a href="/go?c=home" class="inline-flex items-center justify-center gap-3 min-h-[48px] px-6 py-2.5 text-sm font-bold rounded-xl transition-colors w-full bg-primary-500 text-white hover:bg-primary-600" data-cta="go">Start Premium<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M9 6L15 12L9 18" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></div><div class="text-center mt-8"><a class="inline-flex items-center gap-2 text-primary-600 font-bold hover:text-primary-700 transition-colors" href="/pricing"><span>View all pricing options</span><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></section><section class="py-24 bg-warm-50"><div class="container-wide"><div class="max-w-3xl mx-auto"><div class="text-center mb-16"><p class="text-sm font-bold uppercase tracking-wider text-primary-600 mb-3">FAQ</p><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-4">Frequently asked questions</h2><p class="text-warm-600">Everything you need to know about TonePerfect.</p></div><div class="bg-white rounded-2xl p-6 md:p-8 border border-warm-300/50 shadow-soft"><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">What makes TonePerfect different from other Chinese learning apps?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">TonePerfect is focused entirely on pronunciation â Chinese tones, initials and finals â not vocabulary drills or grammar tables. We use advanced AI to analyze your pronunciation in real-time, giving you precise feedback that generic language apps canât provide.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">Do I need to download an app?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">No! You can start practicing immediately in your browser at toneperfect.app/learn. We also have native iOS and Android apps available on the App Store and Google Play.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">
1How does the AI feedback work?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">When you record yourself speaking, our AI analyzes your pronunciation in real-time. It scores your tone accuracy, initial and final clarity, and overall pronunciation qualityâthen gives specific tips to improve.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">Is the placement test really free?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">See your results first. Create a free account if you want to keep your report and web progress. This checks pronunciation, not your vocabulary or HSK level. You can finish after eight prompts for an initial report.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">What content does TonePerfect cover?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">Over 2,200 practice items covering all 4 tones, 21 initials, 38 finals, tone pairs, tone sandhi rules, and contrast pairs. From beginner to advanced.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">Can I cancel my subscription anytime?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">Yes. You can cancel anytime through your app store settings. You'll keep access to premium features until the end of your billing period.</p></div></div><div class="border-b border-warm-300/50 last:border-0"><button class="w-full flex items-center justify-between py-5 text-left gap-4"><span class="font-semibold text-warm-700">Is TonePerfect only for Chinese?</span><svg class="w-5 h-5 transition-transform duration-200 " viewBox="0 0 24 24" fill="none"><path d="M6 9L12 15L18 9" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><div class="overflow-hidden transition-all duration-300 max-h-0"><p class="text-warm-600 leading-relaxed">Chinese is where TonePerfect started and it is still the deepest course â tones, initials, finals and tone sandhi. But the same engine now coaches pronunciation in English, Spanish, French, German, Russian, Japanese and Korean: eight languages in one app, each with a free browser test.</p></div></div></div></div></div></section>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What makes TonePerfect different from other Chinese learning apps?","acceptedAnswer":{"@type":"Answer","text":"TonePerfect is focused entirely on pronunciation â Chinese tones, initials and finals â not vocabulary drills or grammar tables. We use advanced AI to analyze your pronunciation in real-time, giving you precise feedback that generic language apps canât provide."}},{"@type":"Question","name":"Do I need to download an app?","acceptedAnswer":{"@type":"Answer","text":"No! You can start practicing immediately in your browser at toneperfect.app/learn. We also have native iOS and Android apps available on the App Store and Google Play."}},{"@type":"Question","name":"How does the AI feedback work?","acceptedAnswer":{"@type":"Answer","text":"When you record yourself speaking, our AI analyzes your pronunciation in real-time. It scores your tone accuracy, initial and final clarity, and overall pronunciation qualityâthen gives specific tips to improve."}},{"@type":"Question","name":"Is the placement test really free?","acceptedA
1nswer":{"@type":"Answer","text":"See your results first. Create a free account if you want to keep your report and web progress. This checks pronunciation, not your vocabulary or HSK level. You can finish after eight prompts for an initial report."}},{"@type":"Question","name":"What content does TonePerfect cover?","acceptedAnswer":{"@type":"Answer","text":"Over 2,200 practice items covering all 4 tones, 21 initials, 38 finals, tone pairs, tone sandhi rules, and contrast pairs. From beginner to advanced."}},{"@type":"Question","name":"Can I cancel my subscription anytime?","acceptedAnswer":{"@type":"Answer","text":"Yes. You can cancel anytime through your app store settings. You'll keep access to premium features until the end of your billing period."}},{"@type":"Question","name":"Is TonePerfect only for Chinese?","acceptedAnswer":{"@type":"Answer","text":"Chinese is where TonePerfect started and it is still the deepest course â tones, initials, finals and tone sandhi. But the same engine now coaches pronunciation in English, Spanish, French, German, Russian, Japanese and Korean: eight languages in one app, each with a free browser test."}}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebApplication","name":"TonePerfect Web App","url":"https://toneperfect.app/learn","applicationCategory":"EducationalApplication","browserRequirements":"Requires JavaScript. Requires a modern browser with microphone support.","operatingSystem":"Any","description":"Free online Chinese pronunciation checker. Record yourself speaking Mandarin and get instant AI feedback on tones, initials, and finals.","offers":{"@type":"Offer","name":"Free practice","price":"0","priceCurrency":"USD"},"author":{"@type":"Organization","name":"TonePerfect","url":"https://toneperfect.app"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"HowTo","name":"How to Check Your Chinese Pronunciation with AI","description":"Use TonePerfect's free online demo to check your Mandarin pronunciation in seconds.","totalTime":"PT1M","tool":{"@type":"HowToTool","name":"Microphone (built into your device)"},"step":[{"@type":"HowToStep","position":1,"name":"Choose a phrase","text":"Select a Chinese phrase like ä½ å¥½ (nÇ hÇo) from the demo on the homepage."},{"@type":"HowToStep","position":2,"name":"Record yourself","text":"Click the microphone button and say the phrase aloud."},{"@type":"HowToStep","position":3,"name":"Get your score","text":"See your AI-powered pronunciation score with tone and syllable breakdown."}]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://toneperfect.app"}]}</script>
1<section class="py-24 md:py-32 bg-gradient-to-b from-warm-50 via-primary-50/30 to-warm-50"><div class="container-wide"><div class="max-w-3xl mx-auto text-center"><span class="text-5xl mb-4 block">ð</span><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-6">Ready to perfect your pronunciation?</h2><p class="text-warm-600 mb-10 max-w-md mx-auto">Join thousands of learners mastering Mandarin pronunciation with TonePerfect. Start free today.</p><div class="flex flex-wrap justify-center gap-3 mb-4"><div class="flex flex-col items-start gap-3"><div class="flex flex-wrap justify-start gap-3"><a href="https://apps.apple.com/app/toneperfect/id6757938528?pt=127743389&ct=web-home&mt=8" class="inline-flex items-center gap-2.5 px-5 py-2.5 min-h-[52px] rounded-xl bg-warm-900 text-white hover:bg-warm-800 transition-colors" data-cta="store" data-store="ios"><svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.74 1.18 0 2.45-1.64 3.98-1.64 1.29.05 2.55.59 3.32 1.66-3.02 1.68-2.5 5.86.33 7.14-.57 1.76-1.46 3.52-2.71 5.07zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z"></path></svg><span class="flex flex-col leading-none text-left"><span class="text-[0.65rem] font-normal opacity-80">Download on</span><span class="text-sm font-semibold">App Store</span></span></a><a href="https://play.google.com/store/apps/details?id=com.toneperfect.app&referrer=utm_source%3Dtoneperfect.app%26utm_medium%3Dweb%26utm_campaign%3Dhome" class="inline-flex items-center gap-2.5 px-5 py-2.5 min-h-[52px] rounded-xl bg-warm-900 text-white hover:bg-warm-800 transition-colors" data-cta="store" data-store="android"><svg class="h-6 w-6" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M3.609 1.814L13.792 12 3.61 22.186a.996.996 0 01-.61-.92V2.734a1 1 0 01.609-.92zm10.89 10.893l2.302 2.302-10.937 6.333 8.635-8.635zm3.199-3.198l2.807 1.626a1 1 0 010 1.73l-2.808 1.626-2.6-2.49 2.601-2.492zM5.864 2.658L16.802 8.99l-2.303 2.303-8.635-8.635z"></path></svg><span class="flex flex-col leading-none text-left"><span class="text-[0.65rem] font-normal opacity-80">Download on</span><span class="text-sm font-semibold">Google Play</span></span></a></div><div class="min-h-5"></div></div><a class="inline-flex items-center justify-center gap-2 px-6 py-3 bg-primary-500 text-white font-bold rounded-xl hover:bg-primary-600 transition-all shadow-green hover:-translate-y-0.5 text-sm" href="/test"><span>Take Level Test</span></a></div><a href="/go?c=home-footer" class="inline-flex items-center gap-1.5 text-sm text-warm-500 hover:text-primary-600 transition-colors" data-cta="go"><span>Open Web App</span><svg class="w-3.5 h-3.5" viewBox="0 0 24 24" fill="none"><path d="M5 12H19M19 12L12 5M19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></div></div></section><section class="py-20 md:py-24 bg-white border-t border-warm-200/60"><div class="container-wide"><div class="max-w-5xl mx-auto"><h2 class="text-3xl md:text-4xl font-bold tracking-tight text-warm-700 mb-3 text-center">Start with a free tool</h2><p class="text-warm-600 mb-10 text-center">Everything below is free, works in the browser, and needs no account.</p><div class="grid gap-4 sm:grid-cols-2 lg:grid-cols-3"><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/test"><span class="text-3xl">ð¯</span><span><span class="block font-bold text-warm-700">Chinese pronunciation test</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">Read 12 short Mandarin prompts, with pinyin and audio to help. Get a pronunciation score, see your next focus, and start practising.</span></span></a><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/pinyin-chart"><span class="text-3xl">ð¤</span><span><span class="block font-bold text-warm-700">Pinyin chart with audio</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">Hear all 410 Mandarin syllables in every tone, and compare the sounds that confuse learners.</span></span></a><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/practice"><span class="text-3xl">ðï¸</span><span><span class="block font-bold text-warm-700">Practice any Chinese text</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">Paste any text, read it aloud, and get feedback on every syllable you say.</span></span></a><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/hsk"><span class="text-3xl">ð</span><span><span class="block font-bold text-warm-700">HSK vocabulary lists</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">Every HSK level with hanzi, pinyin, meanings and audio.</span></span></a><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/tools"><span class="text-3xl">ð§°</span><span><span class="block font-bold text-warm-700">Free Chinese tools</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">Tone-mark converter, text-to-speech, stroke order, Chinese name generator and more.</span></span></a><a class="flex items-start gap-3 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-5 transition-all hover:border-primary-300 hover:bg-white hover:shadow-medium hover:-translate-y-0.5" href="/blog"><span class="text-3xl">âï¸</span><span><span class="block font-bold text-warm-700">Pronunciation guides</span><span class="mt-1 block text-sm text-warm-500 leading-relaxed">How to fix tones, the hardest sounds for English speakers, and drills that work.</span></span></a></div><div class="mt-10 rounded-2xl border border-warm-300/50 bg-warm-50/60 p-6"><h3 class="mb-1 text-center font-bold text-warm-700">AI pronunciation coaching in 8 languages</h3><p class="mx-auto mb-5 max-w-2xl text-center text-sm leading-relaxed text-warm-500">TonePerfect started with Mandarin tones. The same engine now listens to seven more languages, sound by sound. Pick yours, record a few words, and see which sounds let you down.</p><div class="flex flex-wrap justify-center gap-2.5"><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/french"><span aria-hidden="true">ð«ð·</span>French</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/spanish"><span aria-hidden="true">ðªð¸</span>Spanish</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/german"><span aria-hidden="true">ð©ðª</span>German</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/russian"><span aria-hidden="true">ð·ðº</span>Russian</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/japanese"><span aria-hidden="true">ð¯ðµ</span>Japanese</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/korean"><span aria-hidden="true">ð°ð·</span>Korean</a><a class="flex items-center gap-2 rounded-xl border border-warm-200 bg-white px-4 py-2.5 text-sm font-semibold text-warm-700 transition-colors hover:border-primary-300 hover:bg-primary-50" href="/english"><span aria-hidden="true">ðºð¸</span>English</a></div></div></div></div></section><!--$--><!--/$--></main><footer class="bg-warm-900 text-white [overflow-wrap:anywhere]"><div class="container-wide py-16"><div class="grid grid-cols-2 gap-10 md:grid-cols-4 lg:grid-cols-[minmax(17rem,1.65fr)_repeat(4,minmax(0,1fr))] lg:gap-12"><div class="col-span-2 md:col-span-4 lg:col-span-1"><a class="flex items-center gap-2.5 mb-4" href="/"><img alt="TonePerfect" loading="lazy" width="32" height="32" decoding="async" data-nimg="1" style="color:transparent" srcSet="/_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=32&q=75 1x, /_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=64&q=75 2x" src="/_next/image?url=%2Fpress%2Ftoneperfect-icon-192.png&w=64&q=75"/><span class="text-lg font-bold tracking-tight">TonePerfect</span></a><p class="text-sm text-warm-500 leading-relaxed mb-4 max-w-xs">AI-powered Chinese pronunciation training. Master Mandarin tones, initials, and finals with real-time feedback. Now also English, Spanish, French, German, Russian, Japanese and Korean.</p><a href="https://t.me/toneperfectbot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 text-sm text-[#54a9eb] hover:text-[#7fc1f7] transition-colors"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.9
162 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"></path></svg><span>Try our Telegram Bot</span></a><form class="mt-5 w-full max-w-sm space-y-2"><p class="text-sm text-warm-500">Get tips and updates</p><div class="flex gap-2"><input type="email" placeholder="Your email" class="min-w-0 flex-1 rounded-xl border border-warm-700 bg-warm-800 px-3.5 py-2.5 text-sm text-white placeholder-warm-500 focus:border-primary-500 focus:outline-none focus:ring-1 focus:ring-primary-500 disabled:opacity-60" required="" value=""/><button type="submit" class="shrink-0 rounded-xl bg-primary-500 px-4 py-2.5 text-sm font-bold text-white transition-colors hover:bg-primary-600 disabled:opacity-60">Subscribe</button></div></form></div><div><h4 class="text-sm font-bold uppercase tracking-wider text-warm-400 mb-4">Product</h4><ul class="space-y-3"><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/features">Features</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/pricing">Pricing</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/test">Free Test</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/practice">Practice</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/pinyin-chart">Pinyin Chart</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/pronounce">Pronunciation guides</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/pinyin">Pinyin syllables</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/tools">Tools</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/hsk">HSK</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/name">Names</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/compare">Compare</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/blog">Blog</a></li><li><a href="https://readnative.org" target="_blank" rel="noopener noreferrer" class="text-sm text-warm-500 hover:text-white transition-colors">ReadNative â Read Chinese</a></li></ul></div><div><h4 class="text-sm font-bold uppercase tracking-wider text-warm-400 mb-4">Languages</h4><ul class="space-y-3"><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/french">French</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/french/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/spanish">Spanish</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/spanish/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/german">German</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/german/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/russian">Russian</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/russian/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/japanese">Japanese</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/japanese/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/korean">Korean</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/korean/pronunciation-test">Free Test</a></li><li class="flex items-baseline gap-2"><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/english">English</a><a class="text-xs text-warm-600 hover:text-white transition-colors" href="/english/pronunciation-test">Free Test</a></li></ul></div><div><h4 class="text-sm font-bold uppercase tracking-wider text-warm-400 mb-4">Platforms</h4><ul class="space-y-3"><li><a href="/go?c=footer" class="text-sm text-warm-500 hover:text-white transition-colors" data-cta="go">Web App</a></li><li><a href="https://t.me/toneperfectbot" target="_blank" rel="noopener noreferrer" class="text-sm text-warm-500 hover:text-white transition-colors">Telegram Bot</a></li><li><a href="https://apps.apple.com/app/toneperfect/id6757938528?pt=127743389&ct=web-footer&mt=8" class="text-sm text-warm-500 hover:text-white transition-colors">iOS App</a></li><li><a href="https://play.google.com/store/apps/details?id=com.toneperfect.app&referrer=utm_source%3Dtoneperfect.app%26utm_medium%3Dweb%26utm_campaign%3Dfooter" class="text-sm text-warm-500 hover:text-white transition-colors">Android App</a></li><li><a href="https://api.toneperfect.app" class="text-sm text-warm-500 hover:text-white transition-colors">API for developers</a></li></ul></div><div><h4 class="text-sm font-bold uppercase tracking-wider text-warm-400 mb-4">Legal</h4><ul class="space-y-3"><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/terms">Terms of Use</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/privacy">Privacy Policy</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/contact">Contact</a></li><li><a class="text-sm text-warm-500 hover:text-white transition-colors" href="/press">Press</a></li></ul></div></div></div><div class="border-t border-warm-800"><div class="container-wide py-6 flex flex-col sm:flex-row items-center justify-between gap-4"><p class="text-sm text-warm-600">© <!-- -->2026<!-- --> <!-- -->TonePerfect<!-- -->. <!-- -->All rights reserved<!-- -->.</p><div class="flex flex-wrap items-center justify-center gap-x-6 gap-y-3"><nav aria-label="Select language" class="flex items-center gap-3"><a href="/" hrefLang="en" lang="en" aria-current="true" class="text-xs text-warm-400">English</a><a href="/es" hrefLang="es" lang="es" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">Español</a><a href="/fr" hrefLang="fr" lang="fr" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">Français</a><a href="/ru" hrefLang="ru" lang="ru" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">Ð ÑÑÑкий</a><a href="/de" hrefLang="de" lang="de" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">Deutsch</a><a href="/vi" hrefLang="vi" lang="vi" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">Tiếng Viá»t</a><a href="/ko" hrefLang="ko" lang="ko" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">íêµì´</a><a href="/zh" hrefLang="zh-Hans" lang="zh-Hans" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">ç®ä½ä¸æ</a><a href="/zh-hant" hrefLang="zh-Hant" lang="zh-Hant" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">ç¹é«ä¸æ</a><a href="/ja" hrefLang="ja" lang="ja" class="text-xs text-warm-600 hover:text-warm-400 transition-colors">æ¥æ¬èª</a></nav><a class="text-xs text-warm-600 hover:text-warm-400 transition-colors" href="/terms">Terms of Use</a><a class="text-xs text-warm-600 hover:text-warm-400 transition-colors" href="/privacy">Privacy Policy</a></div></div></div></footer>
1<script src="/_next/static/chunks/7a0a31b0bb154d05.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[39756,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"default\"]\n3:I[37457,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"default\"]\n6:I[35150,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\",\"/_next/static/chunks/0802fc8e5014f680.js\",\"/_next/static/chunks/d010b812bac8933c.js\"],\"default\"]\na:I[68027,[],\"default\"]\n:HL[\"/_next/static/chunks/b76dcb2ac88cfc0e.css\",\"style\"]\n:HL[\"/_next/static/chunks/043ed70efe539461.css\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.29207c2f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.3b6cae6d.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/feb57b2dc8f29018-s.p.2539f70a.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n5:T5a5,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",\"@id\":\"https://toneperfect.app/#app\",\"name\":\"TonePerfect\",\"applicationCategory\":\"EducationalApplication\",\"applicationSubCategory\":\"Language learning\",\"operatingSystem\":\"iOS, Android, Web\",\"description\":\"AI pronunciation coach. Records you speaking and scores every sound. Mandarin Chinese tones, initials and finals, plus courses in English, Spanish, French, German, Russian, Japanese and Korean.\",\"url\":\"https://toneperfect.app\",\"downloadUrl\":\"https://apps.apple.com/app/toneperfect/id6757938528\",\"installUrl\":\"https://play.google.com/store/apps/details?id=com.toneperfect.app\",\"screenshot\":\"https://toneperfect.app/og-image.png\",\"author\":{\"@id\":\"https://toneperfect.app/#organization\"},\"publisher\":{\"@id\":\"https://toneperfect.app/#organization\"},\"offers\":{\"@type\":\"Offer\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"description\":\"Free with 3 AI-scored practice sessions a day. Premium from $9.99/month.\",\"availability\":\"https://schema.org/InStock\"},\"featureList\":[\"AI-powered pronunciation analysis\",\"All 4 Mandarin tones training\",\"21 initials and 38 finals practice\",\"Real-time feedback with tone contour visualization\",\"Spaced repetition progress tracking\",\"Personalized learning path\",\"Free 12-prompt pronunciation test\",\"2200+ practice items\",\"Pronunciation coaching in 8 languages: Chinese, English, Spanish, French, German, Russian, Japanese, Korean\"],\"inLanguage\":[\"en\",\"es\",\"ru\"]}"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"LTf-YrxpybIQ72f7sUJBg\",\"c\":[\"\",\"en\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true]}],[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/b76dcb2ac88cfc0e.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/043ed70efe539461.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/d81113b1bd70c754.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/77f0aa342a7e088f.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/8fb0d2179983c151.js\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L4\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$5\"}}],[\"$\",\"$L6\",null,{}]],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0802fc8e5014f680.js\",\"async\":true,\"nonce\":\"$undefined\"}],\"$L7\"],\"$L8\"]}],{},null,false,false]},null,false,false]},null,false,false],\"$L9\",false]],\"m\":\"$undefined\",\"G\":[\"$a\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"b:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"OutletBoundary\"]\nc:\"$Sreact.suspense\"\ne:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"ViewportBoundary\"]\n10:I[97367,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"MetadataBoundary\"]\n7:[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/d010b812bac8933c.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n8:[\"$\",\"$Lb\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@d\"}]}]\n9:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$c\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L11\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"12:I[79520,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"\"]\n14:I[9039,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"LanguageProvider\"]\n15:I[75909,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n16:I[77604,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n17:I[83575,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n18:I[67199,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n19:I[70119,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n1a:I[56691,[\"/_next/static/chunks/d81113b1bd70c754.js\",\"/_next/static/chunks/bdd26f6c54b6ec5e.js\",\"/_next/static/chunks/77f0aa342a7e088f.js\",\"/_next/static/chunks/7686b21ba3b9e4b5.js\",\"/_next/static/chunks/8fb0d2179983c151.js\"],\"default\"]\n13:[\"$\",\"iframe\",null,{\"src\":\"https://www.googletagmanager.com/ns.html?id=GTM-M4XFWZC7\",\"height\":\"0\",\"width\":\"0\",\"style\":{\"display\":\"none\",\"visibility\":\"hidden\"}}]\n"])</script>
1<script>self.__next_f.push([1,"4:[\"$\",\"html\",null,{\"lang\":\"en\",\"data-scroll-behavior\":\"smooth\",\"className\":\"geist_fb2752c4-module__3bEJhq__variable geist_mono_63e08873-module__ZgT9rW__variable noto_sans_sc_ef9b507d-module__F4wFrG__variable\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"$L12\",null,{\"id\":\"gtm\",\"strategy\":\"afterInteractive\",\"children\":\"(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'\u0026l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-M4XFWZC7');\"}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"@id\\\":\\\"https://toneperfect.app/#organization\\\",\\\"name\\\":\\\"TonePerfect\\\",\\\"url\\\":\\\"https://toneperfect.app\\\",\\\"logo\\\":\\\"https://toneperfect.app/logo192.png\\\",\\\"sameAs\\\":[\\\"https://apps.apple.com/app/toneperfect/id6757938528\\\",\\\"https://play.google.com/store/apps/details?id=com.toneperfect.app\\\",\\\"https://t.me/toneperfectbot\\\"],\\\"contactPoint\\\":{\\\"@type\\\":\\\"ContactPoint\\\",\\\"url\\\":\\\"https://toneperfect.app/contact\\\",\\\"contactType\\\":\\\"customer support\\\"},\\\"knowsAbout\\\":[\\\"Mandarin Chinese pronunciation\\\",\\\"Chinese tones\\\",\\\"English pronunciation\\\",\\\"Spanish pronunciation\\\",\\\"French pronunciation\\\",\\\"German pronunciation\\\",\\\"Russian pronunciation\\\",\\\"Japanese pronunciation\\\",\\\"Korean pronunciation\\\",\\\"speech assessment\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"TonePerfect\\\",\\\"url\\\":\\\"https://toneperfect.app\\\",\\\"description\\\":\\\"AI pronunciation training. Mandarin tones, initials and finals â plus English, Spanish, French, German, Russian, Japanese and Korean.\\\",\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"TonePerfect\\\"}}\"}}]]}],[\"$\",\"$L12\",null,{\"src\":\"https://www.googletagmanager.com/gtag/js?id=G-MJCQV1NGK4\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$L12\",null,{\"id\":\"google-analytics\",\"strategy\":\"afterInteractive\",\"children\":\"\\n window.dataLayer = window.dataLayer || [];\\n function gtag(){dataLayer.push(arguments);}\\n gtag('js', new Date());\\n gtag('config', 'G-MJCQV1NGK4');\\n \"}],[\"$\",\"body\",null,{\"className\":\"font-sans min-h-screen flex flex-col\",\"children\":[[\"$\",\"noscript\",null,{\"children\":\"$13\"}],[\"$\",\"$L14\",null,{\"initialLanguage\":\"en\",\"children\":[[\"$\",\"$L15\",null,{}],[\"$\",\"$L16\",null,{}],[\"$\",\"$L17\",null,{}],[\"$\",\"$L18\",null,{}],[[\"$\",\"$L19\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"$L1a\",null,{}]]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#ffffff\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#0a0a0a\"}]]\n"])</script>
1<script>self.__next_f.push([1,"d:null\n"])</script>
1<script>self.__next_f.push([1,"11:[[\"$\",\"title\",\"0\",{\"children\":\"TonePerfect - Master Chinese Pronunciation with AI\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Perfect your Mandarin Chinese pronunciation with AI-powered feedback. Master all 4 tones, 21 initials, and 38 finals. Take a free 12-prompt pronunciation test and get instant results. Also English, Spanish, French, German, Russian, Japanese and Korean.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"TonePerfect\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://toneperfect.app\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"TonePerfect\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.json\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"6\",{\"name\":\"generator\",\"content\":\"Next.js\"}],[\"$\",\"meta\",\"7\",{\"name\":\"referrer\",\"content\":\"origin-when-cross-origin\"}],[\"$\",\"meta\",\"8\",{\"name\":\"creator\",\"content\":\"TonePerfect\"}],[\"$\",\"meta\",\"9\",{\"name\":\"publisher\",\"content\":\"TonePerfect\"}],[\"$\",\"meta\",\"10\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"11\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"12\",{\"name\":\"category\",\"content\":\"education\"}],[\"$\",\"meta\",\"13\",{\"name\":\"classification\",\"content\":\"Language Learning\"}],[\"$\",\"meta\",\"14\",{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"15\",{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"meta\",\"16\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"TonePerfect\"}],[\"$\",\"meta\",\"17\",{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",\"18\",{\"name\":\"msapplication-TileColor\",\"content\":\"#E53935\"}],[\"$\",\"meta\",\"19\",{\"name\":\"msapplication-config\",\"content\":\"/browserconfig.xml\"}],[\"$\",\"meta\",\"20\",{\"name\":\"apple-itunes-app\",\"content\":\"app-id=6757938528\"}],[\"$\",\"meta\",\"21\",{\"name\":\"google-play-app\",\"content\":\"app-id=com.toneperfect.app\"}],[\"$\",\"link\",\"22\",{\"rel\":\"canonical\",\"href\":\"https://toneperfect.app\"}],[\"$\",\"link\",\"23\",{\"rel\":\"alternate\",\"hrefLang\":\"x-default\",\"href\":\"https://toneperfect.app\"}],[\"$\",\"link\",\"24\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://toneperfect.app\"}],[\"$\",\"link\",\"25\",{\"rel\":\"alternate\",\"hrefLang\":\"es\",\"href\":\"https://toneperfect.app/es\"}],[\"$\",\"link\",\"26\",{\"rel\":\"alternate\",\"hrefLang\":\"fr\",\"href\":\"https://toneperfect.app/fr\"}],[\"$\",\"link\",\"27\",{\"rel\":\"alternate\",\"hrefLang\":\"ru\",\"href\":\"https://toneperfect.app/ru\"}],[\"$\",\"link\",\"28\",{\"rel\":\"alternate\",\"hrefLang\":\"de\",\"href\":\"https://toneperfect.app/de\"}],[\"$\",\"link\",\"29\",{\"rel\":\"alternate\",\"hrefLang\":\"vi\",\"href\":\"https://toneperfect.app/vi\"}],[\"$\",\"link\",\"30\",{\"rel\":\"alternate\",\"hrefLang\":\"ko\",\"href\":\"https://toneperfect.app/ko\"}],[\"$\",\"link\",\"31\",{\"rel\":\"alternate\",\"hrefLang\":\"zh-Hans\",\"href\":\"https://toneperfect.app/zh\"}],[\"$\",\"link\",\"32\",{\"rel\":\"alternate\",\"hrefLang\":\"zh-Hant\",\"href\":\"https://toneperfect.app/zh-hant\"}],[\"$\",\"link\",\"33\",{\"rel\":\"alternate\",\"hrefLang\":\"ja\",\"href\":\"https://toneperfect.app/ja\"}],[\"$\",\"meta\",\"34\",{\"property\":\"og:title\",\"content\":\"TonePerfect - Master Chinese Pronunciation with AI\"}],[\"$\",\"meta\",\"35\",{\"property\":\"og:description\",\"content\":\"Perfect your Mandarin pronunciation with real-time AI feedback. Master tones, initials, and finals. Free 12-prompt pronunciation test available.\"}],[\"$\",\"meta\",\"36\",{\"property\":\"og:url\",\"content\":\"https://toneperfect.app\"}],[\"$\",\"meta\",\"37\",{\"property\":\"og:site_name\",\"content\":\"TonePerfect\"}],[\"$\",\"meta\",\"38\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"39\",{\"property\":\"og:image\",\"content\":\"https://toneperfect.app/opengraph-image\"}],[\"$\",\"meta\",\"40\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"41\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"42\",{\"property\":\"og:image:alt\",\"content\":\"TonePerfect - Master Chinese Pronunciation with AI\"}],[\"$\",\"meta\",\"43\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"44\",{\"property\":\"og:locale:alternate\",\"content\":\"es_ES\"}],[\"$\",\"meta\",\"45\",{\"property\":\"og:locale:alternate\",\"content\":\"fr_FR\"}],[\"$\",\"meta\",\"46\",{\"property\":\"og:locale:alternate\",\"content\":\"ru_RU\"}],[\"$\",\"meta\",\"47\",{\"property\":\"og:locale:alternate\",\"content\":\"de_DE\"}],[\"$\",\"meta\",\"48\",{\"property\":\"og:locale:alternate\",\"content\":\"vi_VN\"}],[\"$\",\"meta\",\"49\",{\"property\":\"og:locale:alternate\",\"content\":\"ko_KR\"}],\"$L1b\",\"$L1c\",\"$L1d\",\"$L1e\",\"$L1f\",\"$L20\",\"$L21\",\"$L22\",\"$L23\",\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\",\"$L2a\"]\n"])</script>
1<script>self.__next_f.push([1,"2b:I[27201,[\"/_next/static/chunks/ff1a16fafef87110.js\",\"/_next/static/chunks/d2be314c3ece3fbe.js\"],\"IconMark\"]\n1b:[\"$\",\"meta\",\"50\",{\"property\":\"og:locale:alternate\",\"content\":\"zh_CN\"}]\n1c:[\"$\",\"meta\",\"51\",{\"property\":\"og:locale:alternate\",\"content\":\"zh_TW\"}]\n1d:[\"$\",\"meta\",\"52\",{\"property\":\"og:locale:alternate\",\"content\":\"ja_JP\"}]\n1e:[\"$\",\"meta\",\"53\",{\"property\":\"og:type\",\"content\":\"website\"}]\n1f:[\"$\",\"meta\",\"54\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}]\n20:[\"$\",\"meta\",\"55\",{\"name\":\"twitter:site\",\"content\":\"@toneperfectapp\"}]\n21:[\"$\",\"meta\",\"56\",{\"name\":\"twitter:creator\",\"content\":\"@toneperfectapp\"}]\n22:[\"$\",\"meta\",\"57\",{\"name\":\"twitter:title\",\"content\":\"TonePerfect - Master Chinese Pronunciation with AI\"}]\n23:[\"$\",\"meta\",\"58\",{\"name\":\"twitter:description\",\"content\":\"Perfect your Mandarin pronunciation with real-time AI feedback. Master tones, initials, and finals. Free 12-prompt pronunciation test available.\"}]\n24:[\"$\",\"meta\",\"59\",{\"name\":\"twitter:image\",\"content\":\"https://toneperfect.app/og-image.png\"}]\n25:[\"$\",\"link\",\"60\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}]\n26:[\"$\",\"link\",\"61\",{\"rel\":\"icon\",\"href\":\"/favicon-16x16.png\",\"sizes\":\"16x16\",\"type\":\"image/png\"}]\n27:[\"$\",\"link\",\"62\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.png\",\"sizes\":\"32x32\",\"type\":\"image/png\"}]\n28:[\"$\",\"link\",\"63\",{\"rel\":\"apple-touch-icon\",\"href\":\"/logo192.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"}]\n29:[\"$\",\"link\",\"64\",{\"rel\":\"mask-icon\",\"href\":\"/favicon.ico\",\"color\":\"#E53935\"}]\n2a:[\"$\",\"$L2b\",\"65\",{}]\n"])</script>
1</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.