2017-02-18 14 views
-1

Нужен алгоритм (или набор хороших для сравнения для разных входных данных), который уменьшит уровень шума голосового аудиосигнала без существенного искажения сигнала с использованием Java.Аудио Удаление шума в java

Ввод аудиосигнала, который включает в себя голос наряду с некоторыми фоновыми шумами. Шум меняется во время записи. Там определенно существуют способы удаления таких шумов, разработанных для распознавания голоса и создания фильмов.

Желаемый результат - минимально искаженный речевой сигнал с фоновыми отвлечениями, минимально слышимыми человеческому уху. Количественные критерии сведены к минимуму

  1. отношение сигнала к шуму и
  2. общего гармонического искажения.
+0

Ваш вопрос не очень ясен. Java-программирование не связано с определенной IDE, такой как «Eclipse» или «Netbeans» или «Intellij» или .... Таким образом, все в java было бы возможно с или без какой-либо конкретной среды IDE.Более того, вопрос о выполнении некоторой работы в коде называется «делать что-то программным», а не «использовать языки программирования». – STaefi

+0

Спасибо за указание – suriyan

+0

Ваш прием. Еще один момент - такие вопросы, как это, собирали бы -1s и т. Д. Из-за вопроса «как это сделать ...» здесь, в SO. Вы должны найти некоторые учебники или книги и попытаться написать некоторые коды. Затем, если что-то пошло не так, вы можете попросить экспертов здесь помочь вам с кодом. Не забудьте указать [MCVE]. Удачи. – STaefi

ответ

3

Вы ищете адаптивное шумоподавление и, возможно, разнообразие, которое адаптируется к изменяющимся условиям шума в течение времени в пределах одного потока или файла.

Старые подходы включают в себя:

  • Извлеките частоты, содержащие большую часть шума, используя полосовой и/или режекторные фильтры (которые только хорошо работает, если нужный сигнал и полоса шума не пересекаются)
  • уронить уровень шума в точках между словами, заметками или другими звуковыми событиями (в мертвом пространстве), как и схема системы шумоподавления Dolby
  • Снимите пол шума по всему файлу, используя окно Хэмминга или другое окно в сочетании с FFT библиотека
  • Рука редактировать разделы звуковой дорожки в программах, таких как Cakewalk или его конкурентов

Эти методы были найдены меньше, чем хотелось бы при попытке очистить больший файл или несколько файлов или в реальных приложениях времени, таких как реального времени распознавания голоса или телефонии.

Одна из программ Java, которые я лично не пробовал его here. Несмотря на то, что он имеет некоторый уровень автоматизации, он является LSE (оценщик наименьших квадратов), который работает по блоку данных, но не подходит для непрерывной работы или аудиофайла с изменением нежелательных шумовых условий. (Это не так адаптивно, как можно было бы надеяться.)

Решение, которое я нашел после большого расследования и теперь использую все время, не написано на Java. Это программа MATLAB, которая также может работать с открытым кодом Octave с минимальной модификацией. Я начал переносить его на C++, но у меня закончилось время, чтобы закончить это.

Класс алгоритма, который он реализует, называется MMSE (шумоподавление с использованием минимальных среднеквадратических оценок). Версия MATLAB несколько раз уточнялась доктором Хендриксом, заканчивая the 2010 version.

Я сравнивал его со своими конкурентами как для диалога, так и для музыки, и он равен или превосходит других во всех случаях, которые я пробовал. (У меня нет связи с доктором Хендриксом или MATLAB, кроме как мне нравятся результаты, которые я получал от его реализации на этой платформе.)