0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 2
|
|
1 | |
Работа со звуком (частоты)08.10.2015, 19:44. Показов 6733. Ответов 7
Метки нет (Все метки)
Привет.
Меня интересует как работать со звуком на С-подобных языках. Какие существуют для этого библиотеки и подходы. Очень хочется сделать свой аудио визуализатор, это те самые ступеньки в эквалайзере, которые пляшут в зависимости от частоты. Но я не знаю, как выцепить все эти частоты из аудио файлов для дальнейшей обработки. Может быть, кто-то сталкивался с готовым решением (опенсорсом) на эту тематику? И есть ли у вас предположения, почему разные визуализаторы отображают разное число этих столбцов? Это произвольное разбитие всего частотного диапазона? На эту тематику нет общих стандартов/рекомендаций? Буду признателен вам за помощь.
0
|
08.10.2015, 19:44 | |
Ответы с готовыми решениями:
7
Работа со звуком Работа со звуком в C++ Работа со звуком Работа со звуком в с++ |
2082 / 1573 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
08.10.2015, 19:50 | 2 |
Выцепить просто - преобразование Фурье, потом налагаешь частотные фильтры.
Сколько фильтров разоботчику захотелось наложить - столько и полосок.
2
|
0 / 0 / 0
Регистрация: 08.10.2015
Сообщений: 2
|
|
08.10.2015, 19:59 [ТС] | 3 |
К сожалению мне не доводилось работать с преобразованиями Фурье. Вы можете подсказать какой нибудь хороший источник на эту тему? Я понимаю, что это известная тема и есть много теории в сети, но мне тяжело найти информацию с практическим уклоном и примером реализации в программировании.
Если я правильно понял, то одна полоска = один фильтр?
0
|
2082 / 1573 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
08.10.2015, 20:23 | 4 |
Ну да. Преобразование Фурье преобразовывает семпл из функции A(t) (амплитуда от времени)в A(n) (амплитуда от частоты). потом разделяете результат преобразования на интервалы (необязательно равные) и находите какое то усредненное значение (какое именно - зависит от того что найти надо) по каждому интервалу - это и будет значение полосок.
Сам для этих дел пользовал фришную библиотеку aqua Добавлено через 18 минут http://www.freepascal.ru/downl... 00/fft.pdf немного доки по БПФ разжевано все прекрасно, пример реализации преобразования правда на паскале, но там все настолько просто что думаю перевод на С++ труда не составит.
1
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
|
|
08.10.2015, 20:46 | 5 |
Что за "фильтр"? Количество "полосок" зависит от размера блока.
0
|
2082 / 1573 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
08.10.2015, 20:56 | 6 |
Обычно mel-фильтры используют.
От размера банка фильтров, иначе шаг в диапазоне частот каждой полоски будет одинаковый, а он обычно логарифмический, что тоже говорит именно о mel-фильтрах. И если брать блоки по 0,1с при частоте 44.1kHz к примеру то на выходе БПФ будет 4410 значений.
0
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
|
|
08.10.2015, 21:53 | 7 |
В БПФ нет никаких фильтров. Я об этом.
0
|
2082 / 1573 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|
08.10.2015, 21:59 | 8 |
0
|
08.10.2015, 21:59 | |
08.10.2015, 21:59 | |
Помогаю со студенческими работами здесь
8
Работа со звуком (VS 2012) Работа со звуком! Ошибка! SOS! Работа со звуком средствами библиотеки мультимедиа Windows Работа со звуком Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |