Ворклог по задаче "Исследовать параметрический синтез русских звуков и переходов между ними"
Прогресс исследования
Зафиксирован и экспериментально проверен основной архитектурный подход: человеческий звук описывается как непрерывный сценарий изменения универсального состояния DSP во времени, а не как специальный renderer буквы/фонемы.
Реализовано
VoiceScenarioсinitialи общейtimeline.- Команды
setиanimate, включая cubic bezier. - Непрерывное состояние с параметрами возбуждения, периодичности, шума, F0, формы источника, трёх универсальных резонансных каналов и итогового уровня.
- Новая команда по одному параметру начинает движение от его текущего значения и заменяет прежнюю будущую automation.
- Синтезатор принимает как один
VoiceScenario, так иVoiceScenario[]. - Массив сценариев разворачивается в одну временную шкалу без сброса фазы источника и DSP-состояния между элементами.
- Это позволило собирать
Приветкак[PRI_SCENARIO, VET_SCENARIO], а не создавать отдельный сценарий слова. - Шумовой источник переведён на seeded PRNG для повторяемого PCM.
- Синтетический звук проходит через тот же VoiceLogger, что и живые записи.
Экспериментальный цикл
Используется схема:
живая запись → лог → анализ → сценарий → синтез → тот же логгер → сравнение → корректировка
Текущий logger измеряет RMS, peak, ZCR, spectral centroid, spectral flatness, dominant frequency и несколько энергетических диапазонов. Он пока грубый: анализ на 128 samples даёт частотный шаг около 375 Hz, поэтому его нужно в дальнейшем улучшать.
Результаты по отдельным звукам
А
Протяжное А уже получилось относительно естественным. Это подтвердило, что timeline + периодический источник + универсальные резонансы в принципе подходят для части устойчивых голосовых состояний.
С
После нескольких итераций выяснилось, что субъективное «шипение» нельзя сводить к избытку высоких частот. Живая сильная С имеет одновременно высокий ZCR, высокий spectral centroid и интенсивную высокочастотную турбулентность. Усиление только общей амплитуды не решает задачу качества источника.
Ш
Ш рассматривается как близкое к С непрерывное шумовое состояние, но с более низким и широким распределением спектральной энергии.
Т
Т подтвердило наличие кратковременных событий, которые нельзя тянуть как устойчивое состояние. Для живой Т характерен очень короткий высокочастотный выброс и быстрое затухание; в нескольких записях основной максимум часто оказывался около 15–16 kHz. Это удалось выразить той же timeline-моделью без специального типа T.
Составные сценарии
Созданы сценарии При и Вет, затем проверена их композиция через массив сценариев. Они уже узнаваемы, но качество звучания остаётся явно компьютерным.
После сравнения с живым Привет выявлено:
- первоначальные сценарии были сильно растянуты по времени;
- ручные глубокие колебания
sourceLevelдляРзвучат механически; - финальный
Тв одном из вариантов доходил доpeak = 1, то есть попадал в hard clamp; - сценарии были сокращены до более разговорных длительностей и финальный
Тослаблен.
Текущие ограничения DSP
Основной риск сейчас находится не в сценарной архитектуре, а в качестве самого звукового двигателя. Возможные недостающие универсальные механизмы:
- более реалистичный glottal source;
- spectral tilt;
- aspiration / breathiness;
- broadband/direct noise path;
- более физичная модель турбулентности;
- antiresonances;
- nasal tract;
- source-filter interaction;
- более богатая модель голосового тракта;
- возможно jitter/shimmer и другие малые вариации;
- контроль клиппинга вместо скрывающего причины hard clamp.
Архитектурные выводы
- буквы, фонемы и слоги должны оставаться метаданными, а не онтологией DSP;
- устойчивые, переходные и взрывные явления пока удаётся выражать одной timeline-моделью;
- композиция сценариев выглядит правильным направлением;
- генеративный TTS не подходит как предмет исследования, поскольку задача требует явного программирования новых звуков, включая ранее не встречавшиеся;
- Pink Trombone и подобные физические модели полезны как ориентиры, но их качество показывает, что одной непрерывной модели тракта недостаточно.
Следующий шаг
Создана отдельная связанная исследовательская задача cmtzxmokp085eqw0qtb7vg7c2 про качественный программный синтез человеческого голоса в браузере. В ней нужно найти browser-native/browser-capable проекты и DSP-подходы, которые без генеративного TTS качественно воспроизводят хотя бы несколько человеческих звуков или слогов, и понять, какие универсальные механизмы стоит перенести в текущий движок.
Исследовать параметрический синтез русских звуков и переходов между ними.