Ворклог по задаче "Исследовать параметрический синтез русских звуков и переходов между ними"

14 сент. 2026 г., 18:48:50

Новые выводы по устройству синтезатора и обратимости

Проведён разбор полного пути VoiceScenario -> PCM.

1. Синтез полностью находится в нашем коде

Уточнено, что никакого внешнего скрытого звукового движка, который формирует PCM, нет. Конечный массив звуковой дорожки целиком вычисляется внутри synthesizeScenario:

VoiceScenario -> VoiceControlState(t) -> excitation -> resonators -> value -> Float32Array.

На каждом sample код самостоятельно вычисляет итоговое значение и записывает его в output[sampleIndex]. Браузерный AudioBufferSourceNode затем лишь воспроизводит уже готовый PCM.

Это означает, что весь DSP можно инструментировать и исследовать на каждом шаге.

2. Управляющие параметры и измеряемые акустические метрики — разные уровни

После исправления представления сценария стало видно, что даже почти постоянные управляющие параметры дают высокочастотные изменения в измеряемом аудио. Это ожидаемо.

Причины:

  • постоянный f0Hz задаёт скорость изменения voicePhase, а не постоянное значение waveform;
  • постоянный noiseLevel управляет амплитудой случайного источника, который меняется каждый sample;
  • резонаторы имеют внутреннее stateful-состояние (low, band) и продолжают динамически изменяться даже при постоянных параметрах;
  • RMS, spectralFlatness и dominantFrequency зависят сразу от нескольких управляющих параметров и внутреннего DSP-состояния.

Поэтому control curve != measured acoustic curve.

3. Найден дополнительный скрытый для сценария слой: внутреннее DSP-состояние

Между VoiceControlState и PCM существуют внутренние состояния:

  • voicePhase;
  • resonator1/2/3.low;
  • resonator1/2/3.band;
  • состояние детерминированного PRNG;
  • активные automation.

Именно этот слой объясняет, почему почти горизонтальные управляющие линии могут приводить к сложному высокочастотному waveform и неровным акустическим метрикам.

4. Следующее направление исследования

Нужно перейти от вопроса "какая метрика лога соответствует параметру" к задаче идентификации системы:

как изменение каждого параметра VoiceControlState влияет на waveform и на измеримые акустические признаки?

Предлагаемый эксперимент: parameter sweep по каждому управляющему параметру при фиксированных остальных и сбор waveform + спектральных/временных характеристик. Это позволит построить карту control -> acoustic features и понять, какие параметры реально наблюдаемы из аудио, какие зависят от комбинаций параметров, а какие текущим логгером вообще не видны.

Также обсуждена базовая теория PCM: постоянный unsigned 8-bit PCM уровень (например 255,255,255,...) не даёт устойчивого тона, потому что нет периодического изменения; слышимы в основном переходы. Это подчёркивает, что отдельное значение PCM — мгновенная амплитуда, а частота/тембр/громкость являются свойствами структуры последовательности во времени.

13.09.2026

Исследовать параметрический синтез русских звуков и переходов между ними.