Downloads · 30 days
39
100% of all-time downloads
aga7on/AuK-ru
AuK-ru is a text-to-speech model from aga7on. Use it when you need text read aloud. It is set up for peft. The card lists the license as mit.
⚠️ Исследовательский проект. Вся работа выполнена в исследовательских и образовательных целях — как практическое изучение адаптации TTS-модели к русскому языку: построение конвейера данных, LoRA-обучение, разработка м…
Downloads · 30 days
39
100% of all-time downloads
All-time downloads
39
Public
Repo size
24.9 GB
Likes
0
Public
Click a slice to open those files.
.safetensors12.2 GB · 97%
From the Hugging Face model README
⚠️ Исследовательский проект. Вся работа выполнена в исследовательских и образовательных целях — как практическое изучение адаптации TTS-модели к русскому языку: построение конвейера данных, LoRA-обучение, разработка метрик качества и методологии оценки. Это не продукт и не готовое решение: релиз публикуется «как есть» с полным перечнем известных дефектов (ниже), чтобы не вводить в заблуждение.
Это LoRA-адаптеры (не полные веса). Русская адаптация модели Tencent AuK (Flux2Edit + Qwen2.5-Omni-3B + BigVGANFlowVAE) через цепочку стадий s0→s7.
| Работает | русская речь по тексту, клонирование голоса, числа/даты/телефоны/единицы, инструменты DSP (громкость/скорость/питч) |
| Работает частично | артикуляция на простом тексте хорошая, на трудном — нестабильна |
| НЕ работает | эмоции (см. ниже — измерено, не подтверждается), шёпот, интенсивность эмоций, code-switching RU/EN |
| Невозможно далее | continued fine-tuning от v1.0 — 5 независимых экспериментов дали деградацию |
Ранее в документации заявлялось «эмоции работают: 48.3% годен по автосудье». Это заявление не подтверждается независимой метрикой и отозвано.
Проверка акустической различимости эмоций (EMOTION_SEPARABILITY.md, 60 файлов,
5 эмоций × 2 голоса × 6, БЕЗ участия автосудьи):
| тест | результат | интерпретация |
|---|---|---|
| η² (доля межгрупповой дисперсии) | < 0.10 у 6 из 7 метрик | связь с эмоцией слабая |
| LOO-классификация эмоции | 0.017 при случайном 0.2 | не лучше случайного |
| перестановочный тест (200 шафлов) | p = 1.0 | сигнала нет |
| Cohen's d, happy vs sad | ≈ 0 по всем метрикам | контраста нет |
Единственная метрика со слабым сигналом — f0 median (η² 0.111 / 0.184 внутри голоса). Фактически модель меняет громкость (Δ до 3.4 дБ), но не эмоциональную подачу.
Согласованность автосудьи с человеческим прослушиванием — 21%, поэтому «48.3% годен» оказалось артефактом судьи, а не свойством модели. Эмоциональный классификатор Aniemore также невалиден на наших генерациях (disgust-коллапс при 99.3% на эталонном RESD).
Практический вывод: инструкции вида «say with a happy tone» модель принимает, но слышимой эмоции не даёт. Не рассчитывайте на эмоциональную речь.
5 файлов, все — один и тот же мужской голос (f0 median 125–182 Гц), всего 2 уникальные
фразы. Исходные имена файлов (01_female_happy, 02_female_excited, 03_male_sad, …)
были ложными и заменены: женского голоса в семплах нет, эмоции не различимы.
<audio controls src="https://huggingface.co/aga7on/AuK-ru/resolve/main/samples/sample_01_male.wav"></audio> sample_01_male.wav — «я не могу найти свои ключи уже целый час» <audio controls src="https://huggingface.co/aga7on/AuK-ru/resolve/main/samples/sample_02_male.wav"></audio> sample_02_male.wav — «завтра мы поедем на дачу и приготовим шашлык» <audio controls src="https://huggingface.co/aga7on/AuK-ru/resolve/main/samples/sample_03_male.wav"></audio> sample_03_male.wav — «я не могу найти свои ключи уже целый час» <audio controls src="https://huggingface.co/aga7on/AuK-ru/resolve/main/samples/sample_04_male.wav"></audio> sample_04_male.wav — «завтра мы поедем на дачу и приготовим шашлык» <audio controls src="https://huggingface.co/aga7on/AuK-ru/resolve/main/samples/sample_05_male.wav"></audio> sample_05_male.wav — «я не могу найти свои ключи уже целый час»
Семплы приводятся как демонстрация качества синтеза русской речи на простом тексте. Они не демонстрируют эмоции и не демонстрируют женский голос. Референс — корпусный (не авторский) голос.
| файл | размер | что это |
|---|---|---|
adapters/auk_ru_v1.0_s7_5750_lora.pt | 196 МБ | основной адаптер v1.0 |
adapters/auk_ru_s5_4500_lora_clone_branch.pt | 196 МБ | адаптер для клонирования |
auk_s7_5750.safetensors | 6.1 ГБ | v1.0, уже слитый с базой (готов к инференсу) |
auk_s5_4500.safetensors | 6.1 ГБ | слитый s5@4500 |
config.yaml | — | конфиг модели |
sha256.json, release_sha256.json | — | контрольные суммы |
Эквивалентность проверена побайтово: merge релизного адаптера даёт sha256 7faf25cf… —
идентично pre-merged файлу.
ckpts/AuK/auk_base.safetensors (апстрим Tencent, MIT)
└─ s0 (транслитерация, r16/α32)
└─ auk_ru_best.safetensors
└─ s1 (русская речь, r32/α64)
└─ auk_ru_10000.safetensors ← БАЗА для адаптеров в этом репо
└─ s7@5750 ← v1.0
Оба адаптера (v1.0 и s5@4500) мержатся с одной базой auk_ru_10000.safetensors (r32/α64).
Самой базы в репо нет — она получается из апстрим-весов цепочкой s0→s1; нужен готовый
результат — берите слитые .safetensors.
python local_train\merge_lora.py --run_dir <run> --ckpt auk_ru_v1.0_s7_5750_lora.pt `
--out auk_ru_v1.0.safetensors --base_ckpt auk_ru_10000.safetensors --lora_r 32 --lora_alpha 64
# TTS: числа/даты/телефоны нормализуются автоматически
python local_train\generate_v1.py --text "Встреча 21.09.2026 в 14:30." --out out_tts
# клонирование голоса (флаг --emotion синтаксически есть, но эффекта не даёт)
python local_train\generate_v1.py --text "Привет, как дела?" --ref ref.wav --out out_clone
Скрипты — в GitHub-репозитории: generate_v1.py,
ru_frontend.py (нормализация + ударения), route_infer.py, rerank_composite.py.
Рекомендуемая маршрутизация:
| задача | адаптер | почему |
|---|---|---|
| обычная TTS | s7@5750 | WER 0.077, first_ok 0.812 |
| клонирование голоса | s5@4500 | judge clone 8.20 / phonetics 8.06 |
| — | не работает (см. выше) |
| метрика | значение | примечание |
|---|---|---|
| TTS WER (GigaAM, 48 фраз) | 0.077 | простой текст |
| TTS first_ok | 0.812 | |
| clone sim, best-of-3 seeds | 0.771 | с одного сида ~0.738 |
| clone WER | 0.079 | |
| DSP-инструменты | 6/6 PASS | громкость/скорость/питч |
| RTF, TTS nfe=32 | 0.67 | nfe=64: 0.98; nfe=16: 0.64 |
| hard-текст CER | 0.070 | трудные числа/даты/длинные слова |
| hard-текст WER | 0.255 | завышен сегментацией ASR |
Ограничение выборки: гейты измерены на n=33…60. Парные статистические тесты
(GATE_STATISTICS.md) показывают, что различия менее ~10 п.п. для долей и менее ~0.2
для осей судьи статистически не значимы — т.е. цифры выше надо читать как порядок
величины, а не как точные гарантии.
1. Нестабильная артикуляция на трудном русском. На простом тексте произношение хорошее (accent 9.8/10), на трудном проседает и появляются фонемные подмены: «ключи»→«клучи», «встреча»→«стрича» (палатализация); «свои»→«сои», «мы»→«ми» (ы→и); «вторая»→«фарая», «января»→«ынгаря» (оглушение/редукция); «университета»→«ниверситета» (пропуск гласного). Человеческое прослушивание 40 пар: в 45% пар оба варианта с браком — главный нерешённый дефект. Топ проблемных слов: сегодня, университета, тебя, холодильник, кажется, сколько, работает, целый.
2. Эмоции не работают — см. раздел выше (измерено, p=1.0).
3. Первый seed нестабилен: sim 0.738 против 0.771 у лучшего из трёх. Нужен best-of-3.
4. naturalness / prosody низкие на трудных текстах (5.2–5.4 из 10): запинки, неестественная интонация на стыках фраз.
5. Whisper (шёпот) отсутствует: инструкция даёт обычную речь (ΔRMS −0.5 дБ вместо −2).
6. Интенсивность эмоций не управляется (subdued/intense).
7. Code-switching RU/EN плохой: WER 0.55 («задеплой сервис на production»).
8. Аббревиатуры: «ООО» не читается побуквенно; «МГУ» работает только как «м.г.у.».
9. Клонирование требует best-of-N: медиана по 100 случайным референсам 0.703.
10. Адаптеры нельзя складывать: композиция s7+s5 даёт интерференцию (гейт 0/5, TTS WER 0.114). Только маршрутизация — один адаптер под задачу.
11. Дальнейшее дообучение от v1.0 деградирует: 5 экспериментов (S8, S8b, S10-RFT, S16b, S16c; 750–2000 шагов, lr 2e-6…5e-6) дали дрейф TTS. v1.0 — локальный оптимум цепочки; продолжать «в том же духе» бессмысленно.
Для полноты картины (детали в local_train/reports/deepseek_supervised/ в GitHub):
| эксперимент | идея | итог |
|---|---|---|
| S8 / S8b | вернуть нейтральное качество клонирования, сохранив эмоции | гейт 2/5 и 0/5; дрейф TTS |
| S10 RFT | обучение на предпочтениях (111 пар) для first-shot | first-shot не улучшен (0.736) |
| S12 Emotion v2 | ось интенсивности + speaking_mode | intensity 0.73 ✅, но шёпота нет, гейт 1/6 |
| S15 композиция | сложить адаптеры s7+s5 | интерференция, гейт 0/5 → заменено маршрутизацией |
| S16b | буткемп дикции на «чистых» клипах | гейт 3/10: датасет оказался на 67% спонтанной речью → научил редукциям |
| S16c | то же, но только читаная речь | оси произношения выросли (accent +0.21), но CER не сдвинулся; статистически паритет |
| S17 морфемные дефисы | «рентгено-электро-кардио-графический» | опровергнуто: 1/6 выигрышей против 2/6 проигрышей |
| SER-гейт (Aniemore) | автоматическая проверка эмоций | невалиден на синтетике (disgust-коллапс) |
| «китайский акцент» как метрика | подсчёт упоминаний в вердиктах судьи | метрика невалидна: судья ни разу не использовал формулировку → индикатор был структурно зелёным и ничего не доказывал |
Отрицательные результаты зафиксированы намеренно — это основная научная ценность проекта.
hard_eval_v1 (235 текстов, sha256 в GitHub) —
никогда не попадает в обучение; проверка check_hard_eval_freeze.py (exact + 4-граммы).paired_gate_test.py).Код и адаптеры — MIT (лицензия апстрим-модели Tencent AuK сохранена, см. LICENSE).
Не распространяются в этом репозитории: обучающие данные, голосовые референсы, веса апстрим-базы, а также модели оценки с непермиссивными лицензиями (GigaAM ASR, DNSMOS) — они использовались локально только для измерения качества и не входят в релиз. Для воспроизведения метрик их нужно получить самостоятельно у правообладателей.
<details> <summary><b>Атрибуция и лицензии использованных компонентов (развернуть)</b></summary>Базовая модель
ckpts/AuK/LICENSE.Проверено по локальным лицензионным файлам и метаданным пакетов
| компонент | назначение | лицензия | правообладатель |
|---|---|---|---|
| Tencent AuK | базовая модель | MIT | Tencent |
| Aniemore 1.2.3 | SER (оценка эмоций), только offline-eval | MIT | Artem Amentes, Ilya Lubenets, Nikita Davidchuk |
| rutextnorm | нормализация чисел/дат/валют (vendored) | MIT | Ilya Shigabeev |
| RUAccent 1.5.8 | расстановка ударений, ё | Apache-2.0 | — |
| PyTorch 2.7.1 / torchaudio | обучение, инференс | BSD-3 | Meta / PyTorch contributors |
| transformers 4.57.6 / peft 0.20.0 / accelerate / safetensors | обучение LoRA | Apache-2.0 | Hugging Face |
| speechmos 0.0.1 | DNSMOS-метрика (eval) | MIT (обёртка) | Microsoft (модель DNSMOS — см. ниже) |
| soundfile / numpy / scipy | аудио I/O | BSD | — |
| librosa 0.11 | спектральный анализ | ISC | — |
Только для оценки, НЕ распространяются, требуют отдельного получения
Обучающие данные (не распространяются, не переупаковываются)
Использовались открытые русские корпусы; аудио и тексты не входят в релиз, в адаптерах содержатся только обученные LoRA-веса:
| корпус | правообладатель | лицензия (по публичным данным) |
|---|---|---|
| Mozilla Common Voice (ru) | Mozilla Foundation | CC0 (public domain) |
| Golos (10h / 100h farfield / crowd) | SberDevices | CC BY 4.0 (crowd-часть), часть — исследование |
| FLEURS (ru_ru) | CC BY 4.0 | |
| Sova | sova.ai (Sova Project) | требует проверки (условия публикации менялись) |
| OpenSTT | Open Data Science (snakers4) | требует проверки |
⚠️ Важно: лицензии датасетов не были верифицированы по первоисточникам на момент публикации (внешний доступ к репозиториям был недоступен). Перед коммерческим или иным ответственным использованием адаптеров проверьте условия каждого корпуса самостоятельно — особенно Sova и OpenSTT. Адаптеры не содержат и не позволяют извлечь исходные аудио.
Инструменты разработки
Проект выполнен в исследовательских и образовательных целях, одним человеком, на потребительском железе (2× GPU 16 ГБ). Релиз публикуется «как есть», без гарантий пригодности для какой-либо задачи. Известные дефекты перечислены выше полностью.
Авторы не несут ответственности за последствия использования, включая результаты синтеза речи. Не используйте для создания контента, вводящего в заблуждение.
Оригинальная модель: Tencent-Hunyuan/AuK (MIT). Русская адаптация, конвейер данных, evaluation-методология и отчёты — этот репозиторий. Код и отчёты: github.com/aga7on/AuK-ru.