Как приблизить звук с помощью коэффициентов с помощью Web Audio API - PullRequest
0 голосов
/ 16 сентября 2018

Вот что я пытаюсь сделать: я хотел бы взять WAV-файл (например, скажем, https://freesound.org/people/thefsoundman/sounds/118513/,, что составляет 109 КБ).Я хочу проанализировать этот WAV-файл, используя SPEAR , который я также сделал, и выдал следующий вывод: SPEAR analysis of WAV file

Теперь я хочу использовать эти данныедля воспроизведения аппроксимации звука с использованием API Web Audio, создав осциллятор с использованием периодической волны.Примерно так:

let real = new Float32Array([ /* lots of numbers */ ]);
let imag = new Float32Array([ /* lots of numbers */ ]);
let wave = ctx.createPeriodicWave(real, imag);

let o = ctx.createOscillator();
o.setPeriodicWave(wave);
o.frequency.value = /* ? */;

Я в растерянности относительно того, как преобразовать вывод, который я вижу в SPEAR (или любом другом эквивалентном инструменте, который вы могли бы предложить), в «коэффициенты Фурье» (косинуси значения синуса), ожидаемые функцией createPeriodicWave.Я также не уверен, имеет ли смысл вопрос, который я задаю, и возможно ли удаленно представить общий WAV-файл в виде периодической волновой таблицы, подобной этой.

(Если вы спросите: цель здесьдля определения наименьшего возможного размера, необходимого для воспроизведения звука, "близкого" к оригинальному звуку. Я понимаю, что могу значительно уменьшить 109 КБ, перейдя в режим моно, 11 КГц WAV, сжатия в MP3 и т. д., но я бы предпочелесли возможно, представлять в виде последовательности чисел.)

Есть ли какие-нибудь звуковые эксперты, которые могут дать мне следующий шаг?

...