AuK-ru v1.0 — LoRA-адаптеры для русской речи

⚠️ Исследовательский проект. Вся работа выполнена в исследовательских и образовательных целях — как практическое изучение адаптации 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, …) были ложными и заменены: женского голоса в семплах нет, эмоции не различимы.

sample_01_male.wav — «я не могу найти свои ключи уже целый час» sample_02_male.wav — «завтра мы поедем на дачу и приготовим шашлык» sample_03_male.wav — «я не могу найти свои ключи уже целый час» sample_04_male.wav — «завтра мы поедем на дачу и приготовим шашлык» 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-коллапс)
«китайский акцент» как метрика подсчёт упоминаний в вердиктах судьи метрика невалидна: судья ни разу не использовал формулировку → индикатор был структурно зелёным и ничего не доказывал

Отрицательные результаты зафиксированы намеренно — это основная научная ценность проекта.

Методология оценки

  • ASR: GigaAM v3 (локально, только для оценки). CER предпочтительнее WER на длинных словах (WER завышается сегментацией: «частнопредпринимательская» WER 1.0 при CER 0.01).
  • Автосудья: Gemini через локальный прокси, схема v3. Пригоден только для triage: согласованность с человеком 21%.
  • Три независимые оси произношения: CER + фонемные подмены/артикуляция + human mumble rate.
  • Замороженный измерительный набор hard_eval_v1 (235 текстов, sha256 в GitHub) — никогда не попадает в обучение; проверка check_hard_eval_freeze.py (exact + 4-граммы).
  • Парные статистические тесты для всех гейтов (paired_gate_test.py).

Лицензия и ограничения

Код и адаптеры — MIT (лицензия апстрим-модели Tencent AuK сохранена, см. LICENSE).

Не распространяются в этом репозитории: обучающие данные, голосовые референсы, веса апстрим-базы, а также модели оценки с непермиссивными лицензиями (GigaAM ASR, DNSMOS) — они использовались локально только для измерения качества и не входят в релиз. Для воспроизведения метрик их нужно получить самостоятельно у правообладателей.

Атрибуция и лицензии использованных компонентов (развернуть)

Базовая модель

  • Tencent AuK — «AuK: An Open-Source Foundational Model for Speech Generation and Editing», Copyright (C) 2026 Tencent, MIT. Включает компоненты: Flux2Edit (backbone), Qwen2.5-Omni-3B (text encoder), BigVGANFlowVAE (vocoder). Локальная копия лицензии: 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 —

Только для оценки, НЕ распространяются, требуют отдельного получения

  • GigaAM v3 (русский ASR, все WER/CER-метрики в отчётах) — SberDevices. Распространяется публично под лицензией семейства CC BY-NC (некоммерческая); в релиз не входит, использовался локально. ⚠️ Точную формулировку лицензии необходимо проверить у правообладателя перед любым использованием метрик в коммерческом контексте.
  • DNSMOS (speechmos) — Microsoft, модель распространяется под CC BY-NC; в релиз не входит.

Обучающие данные (не распространяются, не переупаковываются)

Использовались открытые русские корпусы; аудио и тексты не входят в релиз, в адаптерах содержатся только обученные LoRA-веса:

корпус правообладатель лицензия (по публичным данным)
Mozilla Common Voice (ru) Mozilla Foundation CC0 (public domain)
Golos (10h / 100h farfield / crowd) SberDevices CC BY 4.0 (crowd-часть), часть — исследование
FLEURS (ru_ru) Google CC BY 4.0
Sova sova.ai (Sova Project) требует проверки (условия публикации менялись)
OpenSTT Open Data Science (snakers4) требует проверки

⚠️ Важно: лицензии датасетов не были верифицированы по первоисточникам на момент публикации (внешний доступ к репозиториям был недоступен). Перед коммерческим или иным ответственным использованием адаптеров проверьте условия каждого корпуса самостоятельно — особенно Sova и OpenSTT. Адаптеры не содержат и не позволяют извлечь исходные аудио.

Инструменты разработки

  • DeepSeek Harness (агент-окружение) — использовался для автоматизации экспериментов.

Отказ от ответственности

Проект выполнен в исследовательских и образовательных целях, одним человеком, на потребительском железе (2× GPU 16 ГБ). Релиз публикуется «как есть», без гарантий пригодности для какой-либо задачи. Известные дефекты перечислены выше полностью.

Авторы не несут ответственности за последствия использования, включая результаты синтеза речи. Не используйте для создания контента, вводящего в заблуждение.

Атрибуция

Оригинальная модель: Tencent-Hunyuan/AuK (MIT). Русская адаптация, конвейер данных, evaluation-методология и отчёты — этот репозиторий. Код и отчёты: github.com/aga7on/AuK-ru.

Downloads last month
39
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support