|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : voodoochile 2:5020/400 28 Mar 2002 16:28:21 To : All Subject : Получение огибающей звуковой волны --------------------------------------------------------------------------------
Привет, ALL.
Я пытаюсь написать WAV->MIDI преобразователь(преобразует аудио не
только в последовательность стартов-стопов, но и генерирует функции для
volume, pitch)
Задачу построения огибающей я решил примитивно(имитация аналогового
пик-детектора):
if(envelope[Chan] < ps[ii]) {
ps[ii] = (short)(ps[ii] + ga * (envelope[Chan] - ps[ii]));
envelope[Chan] = ps[ii];
} else {
ps[ii] = (short)(ps[ii] + gr * (envelope[Chan] - ps[ii]));
envelope[Chan] = ps[ii];
}
Это одна итерация цикла.
Здесь
envelope[Chan] -- значение огибающей,
ps[ii] - то, что приходит из входного буфера.
ВОПРОС:
существуют ли иные алгоритмы получения огибающей и частоты тона,
работающие в режиме реального времени?
Частоту тона мерить здесь оч. сложно, поскольку цепляются не только пики
основного тона :((
Я нашел в Сети статью каких-то японцев
http://www.icspat.com/papers/30mfi.pdf .
Они пытаются получать эти пики при помощи нейронной сети. Все вроде
понятно, но не ясно , КАКИМ ОБРАЗОМ рассчитываются значения весов
нейронов!
Hайти в сети исходные тексты программ по этой тематике мне пока не
удалось.
Спасибо, ALL
--
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
* Origin: Talk.Mail.Ru (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/6488cda50c26.html, оценка из 5, голосов 10
|