Вы ищете адаптивное шумоподавление и, возможно, разнообразие, которое адаптируется к изменяющимся условиям шума в течение времени в пределах одного потока или файла.
Старые подходы включают в себя:
- Извлеките частоты, содержащие большую часть шума, используя полосовой и/или режекторные фильтры (которые только хорошо работает, если нужный сигнал и полоса шума не пересекаются)
- уронить уровень шума в точках между словами, заметками или другими звуковыми событиями (в мертвом пространстве), как и схема системы шумоподавления Dolby
- Снимите пол шума по всему файлу, используя окно Хэмминга или другое окно в сочетании с FFT библиотека
- Рука редактировать разделы звуковой дорожки в программах, таких как Cakewalk или его конкурентов
Эти методы были найдены меньше, чем хотелось бы при попытке очистить больший файл или несколько файлов или в реальных приложениях времени, таких как реального времени распознавания голоса или телефонии.
Одна из программ Java, которые я лично не пробовал его here. Несмотря на то, что он имеет некоторый уровень автоматизации, он является LSE (оценщик наименьших квадратов), который работает по блоку данных, но не подходит для непрерывной работы или аудиофайла с изменением нежелательных шумовых условий. (Это не так адаптивно, как можно было бы надеяться.)
Решение, которое я нашел после большого расследования и теперь использую все время, не написано на Java. Это программа MATLAB, которая также может работать с открытым кодом Octave с минимальной модификацией. Я начал переносить его на C++, но у меня закончилось время, чтобы закончить это.
Класс алгоритма, который он реализует, называется MMSE (шумоподавление с использованием минимальных среднеквадратических оценок). Версия MATLAB несколько раз уточнялась доктором Хендриксом, заканчивая the 2010 version.
Я сравнивал его со своими конкурентами как для диалога, так и для музыки, и он равен или превосходит других во всех случаях, которые я пробовал. (У меня нет связи с доктором Хендриксом или MATLAB, кроме как мне нравятся результаты, которые я получал от его реализации на этой платформе.)
Ваш вопрос не очень ясен. Java-программирование не связано с определенной IDE, такой как «Eclipse» или «Netbeans» или «Intellij» или .... Таким образом, все в java было бы возможно с или без какой-либо конкретной среды IDE.Более того, вопрос о выполнении некоторой работы в коде называется «делать что-то программным», а не «использовать языки программирования». – STaefi
Спасибо за указание – suriyan
Ваш прием. Еще один момент - такие вопросы, как это, собирали бы -1s и т. Д. Из-за вопроса «как это сделать ...» здесь, в SO. Вы должны найти некоторые учебники или книги и попытаться написать некоторые коды. Затем, если что-то пошло не так, вы можете попросить экспертов здесь помочь вам с кодом. Не забудьте указать [MCVE]. Удачи. – STaefi