【Android】 语音增强

来源:互联网 发布:华为数据丢失事件 编辑:程序博客网 时间:2024/05/16 05:46

源代码:http://download.csdn.net/detail/jsgaobiao/9480141


Ø  【实验目的】

在安卓系统上开发一个语音增强应用,能够实现播放原始音频、添加高斯白噪声和播放去噪增强后的音频等功能。

 

Ø  【实验器材】

Android Studio 1.5.1

Xiaomi Pad (7.9’’): Android 4.4.4 , 1536*2048 xhdpi

 

Ø  【实验原理】

一、算法思路

采用垂直Linear Layout的界面设计,顶部有一个文本框,供输入信噪比使用;往下依次是四个按钮,分别为“播放原始音频”、“播放加噪音频”、“音频加强”和“播放加强音频”。

设s(m),n(m),y(m)代表原始语音、噪声和带噪语音,S(ω),N(ω),Y(ω)代表其短时谱。假设噪声是与语音不相关的加性噪声,则得到信号的加性模型为

y(m)=s(m)+n(m)

转换到频域,有

Y(ω)=S(ω)+N(ω)

对应功率谱为

|Y(ω)|^2=|S(ω)|^2+|N(ω)|^2+S(ω) N* (ω)+S* (ω)N(ω)

有S和N的独立性假设,得

|Ŝ(ω)|^2=|Y(ω)|^2+E[|N(ω)|^2 ]

二、程序结构

三、算法实现

1、 噪声的添加

添加的噪声为高斯分布的白噪声,根据用户选择的信噪比来加入高斯分布的噪声

2、 噪声的估计

我通过取了音频的前3帧来估计噪声的能量,每帧包含的数据个数为FrameLength(1024)个,最终的噪声水平由3帧的平均值确定。

3、 噪声的去除

得到了噪声能量的估计值后,在含有噪声的音频频谱中,将噪声的能量减掉。最后,将处理过的音频进行傅里叶逆变换,得到增强后的音频。

Ø  【小结】

我通过本次实验,复习了快速傅里叶变换和其逆变换的算法。在用户选择信噪比的时候,采用了SeekBar组件实现的进度条的方式。这让我在第一次实验的基础上,又多了解和掌握了一些安卓编程的技能。同时,还了解了有关语音增强方面的一些知识。

0 0