首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的音频噪声去除

java中的音频噪声去除
EN

Stack Overflow用户
提问于 2017-02-18 10:48:04
回答 1查看 4.3K关注 0票数 1

需要一种算法(或对各种输入数据进行比较的一组好算法)来降低语音音频信号的噪声水平,而不需要使用Java对信号进行明显的失真。

输入是一种音频信号,包括声音和一些背景噪声。在录音的过程中,噪音是不同的。有一定的方法来消除像这样的噪音,发展起来的声音识别和电影制作。

所需的输出是一个最小失真的声音信号,背景干扰最小,人耳可听到。量化标准被最小化。

  1. 信噪比和噪声比
  2. 总谐波畸变
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-18 20:32:39

您正在寻找自适应噪声去除,并可能有各种适应变化的噪音条件随着时间的变化,在同一流或文件。

较早的做法包括:

  • 使用带通和/或陷波滤波器消除包含大部分噪声的频率(只有当所需的信号和噪声带不相交时,才能正常工作)
  • 降低单词、音符或其他音频事件之间的噪声水平(在死区),杜比降噪系统方案也是如此。
  • 使用Hamming窗口或其他窗口,结合FFT库,在整个文件中放置噪声地板。
  • Cakewalk或其竞争对手等程序中音频轨道的手工编辑部分

在试图清理更大的文件或多个文件或实时应用程序(如实时语音识别或电话)时,发现这些方法不太理想。

我没有亲自尝试过他的这里的一个Java程序。尽管它具有一定程度的自动化,但它是一种LSE (最小二乘估计器),它跨数据块工作,但不适合连续操作或改变不需要的噪声条件的音频文件。(它不像人们所希望的那样具有适应性。)

经过大量调查后,我发现的解决方案现在一直在使用,而不是用Java编写的。这是一个MATLAB程序,也可以在开放源码的Octave中运行,只需进行最少的修改。我开始将它移植到C++,但没有时间完成它。

它实现的一类算法称为MMSE (使用最小均方估计的降噪)。汉德里克斯博士对MATLAB版本进行了多次改进,并以2010年版本作为总结。

我已经把它和它的竞争对手在对话和音乐方面进行了比较,在我尝试过的任何情况下,它都是与其他竞争者一样的或超越了其他竞争者。(除了我喜欢他在那个平台上实现的结果外,我与亨德里克斯博士或MATLAB没有任何联系。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42314122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档