Перейти к содержимому

KZ TTS — вердикт от Jean (2026-05-02)

Date: 2026-05-02 (verdict captured from ~/Desktop/oiynup рассуэждения.mp4, таймкод 21:00–24:30) Date captured into doc: 2026-05-04 Status: Closes the three open questions in 2026-05-02-kz-stt-tts-stack.md. Updates ADR-0023 §TTS row.


Jean прослушал MMS adult, MMS pitch-shifted (kid +4/+6/+8 semitones), F5-TTS V1 stock cross-lingual клипы. Вердикт:

Самое крутое — детский голос, ребёнку понятно. Сейчас голос актёра — нейтральный, который есть у этой модели. В смысле, она научилась на голосе актёра, и он перекрылся как у играл.

То есть: pitch-shifted +4/+6 semitones — acceptable как V1 stopgap (ship это сейчас), но child-voice — hard criterion для V2. F5-TTS V1 stock cross-lingual = провал, не разворачиваем (gibberish phonemes, см. round-trip via Uali в основном бенчмарке).


Q1. «Listen to the three TTS clips. Is MMS-TTS-kaz acoustic quality good enough for V1 napарник narration?»

Заголовок раздела «Q1. «Listen to the three TTS clips. Is MMS-TTS-kaz acoustic quality good enough for V1 napарник narration?»»

A: Yes, как V1 ship-это-завтра. MMS-TTS-kaz adult voice интеллигибелен и звучит как «голос актёра, ровный читающий тон». Это не финальное качество, но достаточно для:

  • Narration в обучающих эпизодах
  • Quest/feedback подсказки
  • Любые текстовые сценарии где главное — понятность Kazakh, не персонализация

Pitch-shifted +4 semitones (*_kid.wav) звучит как «teen / older kid», +6 (*_kid_high.wav) — как kid 8-10 лет, +8 (*_small_kid.wav) — слишком chipmunk, не ship. Выбор V1: +4 to +6 semitones для напарника, adult voice для narration.

Q2. «Do we have a transcript of OiynUp_Sound_KAZ.wav from the production team?»

Заголовок раздела «Q2. «Do we have a transcript of OiynUp_Sound_KAZ.wav from the production team?»»

A: Не зафиксировано в этом сеансе. Запросить у Grinvich Technology (cartoon team) исходный VO-script для эпизодов 1-10. Это даст:

  • Real WER против baseline transcript для валидации Uali-STT.
  • Корпус «kid Kazakh + OIYNUP термины» для V2 fine-tune без дополнительной transcription-работы.

Action: Jean (или ассистент) пишет короткий запрос Grinvich на raw VO stems + текстовые скрипты. Owner: Jean, deadline до 2026-05-15.

A: Yes, accepted. Замена в ADR-0023 §TTS:

  • Coqui-XTTS-v2 → MMS-TTS-kaz V1 (pitch-shifted +4 semitones для напарника)
  • Qwen3-TTS → V2 plan: MMS-TTS-kaz LoRA fine-tune на KZ kid corpus (KSC2 ≤13 + Grinvich raw VO)
  • F5-TTS — отложить до публичного cross-lingual checkpoint или собственного fine-tune
  • Soyle ONNX остаётся как STT fallback (per Jean test: enterprise Soyle отвергнут, open ONNX retained)

Этот RESULTS_VERDICT.md = trigger для вписания нового ADR amendment к ADR-0023 (или создания ADR-0029 «KZ TTS V1/V2 implementation order»).


Детский голос — обязательный hard criterion для production napарник voice. Не «nice to have», а блокер для launch (per Jean прямой реплики):

  • Голос актёра pitch-shifted ≠ «настоящий детский голос». Это helium-effect.
  • Real kid timbre имеет другую формантную структуру, прозодию, ритм. Нельзя получить только сдвигом высоты.
  • Source данных для fine-tune: KSC2 age-filtered + Grinvich cartoon VO stems (kids 5-10).
  • Owner V2: AI engineer hire Q2-Q4 2026 (LoRA/QLoRA experience required per ADR-0023).

V2 deliverables:

  1. MMS-TTS-kaz LoRA на 1-3 ч KZ kid speech, target wall-clock 4-8h на 1× RTX PRO 6000 96GB.
  2. A/B blind ear-test Jean: V1 (+4 pitch-shift) vs V2 (LoRA kid). Если V2 не выигрывает blind — повторяем fine-tune с большим корпусом.
  3. Если LoRA плато — F5-TTS full Kazakh fine-tune (5-10 ч data, 1-2 days training, 30 GB disk).

Что не использовать (закрепляем после ear-test)

Заголовок раздела «Что не использовать (закрепляем после ear-test)»
  • F5-TTS V1 stock checkpoint без KZ fine-tune — gibberish phonemes на Kazakh, фактически проверено через Uali round-trip. Переоткрывать только когда выйдет публичный cross-lingual checkpoint от авторов (paper Sep 2025).
  • +8 semitones pitch shift — слишком chipmunk, страдает интеллигибельность. +4 / +6 — допустимо.
  • Coqui XTTS-v2 — компания закрылась Dec 2025, в любом случае нет KZ. Drop.
  • Qwen3-TTS, IndexTTS-2.5, Higgs Audio v2.5, Chatterbox Multilingual — нет KZ. Drop.
  • Soyle enterprise license — Jean уже отверг (worse than open-source per Jean test). Open soyle_onnx остаётся в стеке как STT-fallback only.

PhaseЧто делаемКогдаOwner
V1 (Э4, ship now)MMS-TTS-kaz adult для narration; pitch-shift +4 semitones для напарникаthis sprintJean / dev
V1.5Запросить Grinvich raw VO + scripts для эпизодов 1-10до 2026-05-15Jean
V2 (Э5)MMS-TTS-kaz LoRA fine-tune (KSC2 ≤13 + Grinvich VO); blind A/B testpost-AI-engineer-hire (Q2-Q4 2026)AI engineer
V3Если V2 плато — F5-TTS full KZ fine-tune; KazakhTTS2 evaluation; 3-character × 3-voice canon (ADR-0001)post-launchAI engineer

Owner: Jean, this week (2026-05-04..2026-05-11).

Текст amendment:

2026-05-04 amendment: TTS canon ADR-0023 уточняется по результатам ear-test 2026-05-02 (см. RESULTS_VERDICT.md).

V1 production: MMS-TTS-kaz (Meta, open VITS) для narration + librosa pitch-shift +4 semitones для голоса напарника. RTF 0.10, CPU-only inference, ship-готов на пилот Q3 2026.

V2 production (Э5, post-launch): MMS-TTS-kaz LoRA fine-tune на KZ kid corpus (KSC2 age-filtered + Grinvich Technology raw cartoon VO stems). Hard criterion: real child timbre, не pitch-shifted. Owner: AI engineer (LoRA/QLoRA required).

STT canon без изменений: Uali whisper-turbo-ksc2-kazakh-finetuned primary + issai/soyle_onnx fallback + mlx-whisper large-v3-turbo для non-KZ потоков.

Reject: F5-TTS V1 stock cross-lingual (gibberish KZ phonemes verified), Soyle enterprise (Jean test), Coqui XTTS-v2 (компания закрыта), Qwen3-TTS / IndexTTS / Higgs / Chatterbox (нет KZ).


~/Desktop/oiynup рассуэждения.mp4 (2026-05-02), TTS audition:

  • 21:00 «по озвучке казахски короче несколько разных моделей попробовали сейчас послушаем»
  • 22:30 «Спарк ой на юри… сегодня мы сандарды иренем» — фраза про числа от MMS adult voice (с «Спарк» — internal Figma label)
  • 23:00 «самое крутое редко детский голос детский может что привел ребёнку»
  • 23:30 «нейтральный сейчас голос который есть у этой это голос актера»
  • 24:00 «в смысле не рога взяла научилась сразу на голосе это прям и очень и голос поглядишь перекрылась как у играл» (= модель обучалась на одном голосе актёра, и этот голос проступает в любой реплике)