Below: the same person's voice rendered three ways. The original 10-second enrolment, then the same speaker reading sentences they never recorded — in General American, then in Received Pronunciation. Every clip is a real artifact from the pipeline in this repository.
Voice clone
The first clip is the only audio the system has of the speaker. Everything after is generated.
Original enrolmentraw 16 kHz · 13.1 s
unprocessed
"Hello, my name is Alex. The quick brown fox jumps over the lazy dog by the river…"
Why this clip
Recorded once in the browser via MediaRecorder. It is the entire body of evidence the model has about how this person sounds.
What it drives
Both the speaker embedding (timbre fingerprint) and the prompt mel-spectrogram (style anchor) CosyVoice 3 conditions on when generating every clip below.
Same speaker — General AmericanCosyVoice 3 VC · 11.2 s
never recorded by speaker
"The renewable energy transition will define the next half-century, and the engineers who solve the storage problem will reshape every industry from agriculture to artificial intelligence."
Pipeline
Text → Kokoro 82 M renders it in af_heart (American female, 24 kHz) → CosyVoice 3 voice-converts that source to match the original speaker's timbre.
Why VC, not zero-shot
VC mode is deterministic for accent: the Kokoro source already carries the target accent, so the output cannot drift. Zero-shot mode preserves the enrolment accent and is reserved for strategy=natural.
Validation
Whisper re-transcribes the output. This clip passed at coverage 1.0 · char-similarity 1.0 · length-ratio 1.0 — every word landed where it was supposed to.
Same speaker — Received PronunciationCosyVoice 3 VC · 8.7 s
never recorded by speaker
"Yesterday the rain set in well before dawn, and by the time I reached the station the platform was already silver with water. I bought a paper and waited."
Pipeline
Identical to the GA clip — only the Kokoro voice changes (bf_emma, British RP female). The speaker enrolment fed into CosyVoice 3 is the same file.
What this shows
Accent control is a property of the source audio, not the speaker. Swap the Kokoro voice and the output accent follows; the speaker stays recognisably the same person.
The same enrolment audio above, scored as if it were a practice attempt. Real response from POST /api/score — committed verbatim so you can inspect the contract without running the server.
Live scoring of the enrolmentPOST /api/score · 8.5 s pipeline
GA · 12.2 s audio
"Hello, my name is Alex. The quick brown fox jumps over the lazy dog by the river. She sells seashells by the seashore while three thoughtful tourists thought through all new problems."
79.5/100
Overall · fused score
Phoneme accuracy
79.2
Intonation
69.6
Stress & rhythm
100
Vowel quality
70
Top mispronunciations
/er/ low confidence @ 3.94 s · "river"
/θ/ → /t/ substitution @ 10.56 s · "thought"
/v/ → /l/ substitution @ 3.90 s · "over"
Actionable tip
Focus on /er/; your closest detected sound was /er/. Next pass: prioritize pitch movement.
Phrase match
phrase_match_status: ok · Whisper WER 0.062 against the target phrase.
Fusion
0.55 · phoneme + 0.20 · intonation + 0.15 · stress_rhythm + 0.10 · vowel_quality — see score_user_recording.json for the full 113-phoneme tape, pitch contour, and debug block.
Native references
Kokoro 82 M reference audio. Drives the pitch overlay in the scorer and the "hear native" button in the practice UI.
Ship or sheep?
GA
Ship or sheep?
RP
She sells seashells by the seashore.
GA
The quick brown fox jumps over the lazy dog.
GA
Could you show me the fastest route to the station?