Фильтрация звука

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Sona
Сообщения: 1
Зарегистрирован: 17 апр 2011, 20:03

Мне необходима создать прогамма для фильтрации звука , которая должна очистить голос от шумов и нежелательных звуков. Программа должна быть написана в С++. Я начинающий в этой сфере и немогу себе представить, как это сделать .. Можете вы помочь чем-то , или подскажить какая литература исползовать. Каждый совет будет полезной.
BulldozerBSG
Сообщения: 270
Зарегистрирован: 09 янв 2010, 04:14
Контактная информация:

Одна из больших проблем отличить полезный сигнал от шума.
Можно попробовать представить как человеческий мозг это делает и перенести в алгоритмы, а потом в код )
А если по существу, то следует поискать исследование в этой области.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Это крайне нетривиальное задание. Помимо знаний в области самого программирования, придётся прочитать много литературы по математической обработке цифрового сигнала. Скорее всего тебе поможет свёртка (БПФ) и отброс слабых гармоник (которыми, по сути, и является шум), и затем обратное восстановление сигнала по доминирующим гармоникам. Параметры, по которым будет производится отброс гармоник и восстановление сигнала, сугубо эмпирические и подобрать их для качественной работы фильтра будет достаточно сложно - это почти искусство. Можно построить нейронную сеть с обратной связью, которая во время обучения сможет подобрать все необходимые коэффициенты, но это ещё один дополнительный пласт теоретических знаний, которые придётся изучить, если пойдёшь этим путём.

Конкретную литературы не подскажу. Ищи в гугле "Быстрое преобразование Фурье", от него можно отталкиваться и "Нейронная сеть с обратной связью" если решишься на автоматический подбор коэффициентов.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить