【Android】 語音增強

版權聲明:本文爲博主原創文章,歡迎轉載。轉載請註明出處http://blog.csdn.net/jsgaobiao https://blog.csdn.net/jsgaobiao/article/details/51049729

源代碼: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組件實現的進度條的方式。這讓我在第一次實驗的基礎上,又多瞭解和掌握了一些安卓編程的技能。同時,還了解了有關語音增強方面的一些知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章