譜減法(Spectral Subtraction)

本文簡要探討了語音信號的基本特性砰粹,并介紹了譜減法的基本原理孵稽,同時基于Matlab實現(xiàn)了原始譜減法及其一種改進版政模。最后給出音頻波形呐粘、頻譜满俗,從主觀的人耳和客觀的評判標(biāo)準(zhǔn)來量化所達到的效果。

1 語音信號

1.1 宏觀的非平穩(wěn)性與微觀的平穩(wěn)性

在現(xiàn)實世界中作岖,我們獲得的所有信號波形都是其對應(yīng)分布的一組觀測值唆垃。平穩(wěn)信號指的是其分布及分布的參數(shù)不會發(fā)生變化,非平穩(wěn)信號則是其分布或分布的參數(shù)發(fā)生變化痘儡。對于語音信號來說辕万,由于信號直接由說話者控制,其分布和分布的參數(shù)都是不確定的沉删。以一個宏觀的角度來看渐尿,語音信號具有非平穩(wěn)性。而在10-30ms這個尺度矾瑰,受人的發(fā)聲器官所限定砖茸,語音信號是平穩(wěn)的,即在微觀下殴穴,語音信號具有平穩(wěn)性凉夯。正是這種特性,導(dǎo)致了在語音信號處理過程中采幌,短時分析成為一個重要的手段劲够。

2 基本譜減法的原理

對噪聲的基本假設(shè)

  • 噪聲是局部穩(wěn)定的,即與語音信號一致休傍,在微觀尺度下具有平穩(wěn)性征绎。
  • 噪聲是加性噪聲
  • 噪聲與純凈的語音信號是不相關(guān)的

基于以上的假設(shè),我們?nèi)缦露x

  • x(t)為純凈的語音信號
  • n(t)為噪聲信號
  • y(t)為加噪后的語音信號

則有

y(t) = x(t) + n(t)

對加噪后的語音信號做傅里葉變換可得

Y(\omega) = X(\omega) + N(\omega)

可得加噪后的能量譜如下

|Y(\omega)|^2 = |X(\omega)|^2 + |N(\omega)|^2 +X^*(\omega)N(\omega) + N^*(\omega)X(\omega)

又因為噪聲與純凈的語音信號不相關(guān)尊残,則

|Y(\omega)|^2 = |X(\omega)|^2 + |N(\omega)|^2

|X(\omega)|^2 = |Y(\omega)|^2 - |N(\omega)|^2

亦由于語音信號的質(zhì)量與其頻率幅度譜密切相關(guān)炒瘸,而與頻率相位圖并無太大關(guān)聯(lián)。則寝衫,我們可以保留加噪后的語音信號的頻率相位譜顷扩,并且估計出噪聲的能量譜,就通過以上式子進行語音增強

3 論文復(fù)現(xiàn)

我們復(fù)現(xiàn)了M.Berouti等人的Enhancement of speech corrupted by acoustic noise中提出的一種改進版本的譜減法慰毅,并使用了Dong Wang等人發(fā)布的開源語言數(shù)據(jù)集THCHS-30

3.1 音頻波形展示

時域信號幅度圖
語譜圖

3.2 代碼

3.2.1 譜減法

function output = spectral_subtraction(input, wlen, inc, nlen, a, b)
%------------------------------------
%  input : input signal
%  wlen  : the size of each frame
%  inc   : the size of frame shift
%  nlen  : the size of noisy without speech
%  output: output signal
%------------------------------------
window_function = hamming(wlen);                       % set window function

y = enframe(input, window_function, inc)';             % subframe: y is a matrix with wlen×frame_n
frames_n = size(y, 2);                                 % the number of frames

y_fft = fft(y);                                        % fft
y_fft_amplitude = abs(y_fft);                          % amplitude
y_fft_energy = y_fft_amplitude.^2;                     % energy
y_fft_phase = angle(y_fft);                            % phase

noisy_energy = mean(y_fft_energy(:,1:nlen), 2);        % noisy energy is a vector with wlen×1

output_energy = ones(wlen, frames_n);
for ii = 1:frames_n
    for jj = 1:wlen
        if y_fft_energy(jj, ii) > a*noisy_energy(jj)
            output_energy(jj, ii) = y_fft_energy(jj, ii) - a*noisy_energy(jj);
        else
            output_energy(jj, ii) = b*y_fft_energy(jj, ii);
        end        
    end
end
output_amplitude = sqrt(output_energy);                % output amplitude

output = OverlapAdd2(output_amplitude, y_fft_phase, wlen, inc);

end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末隘截,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婶芭,老刑警劉巖东臀,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異犀农,居然都是意外死亡惰赋,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門呵哨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赁濒,“玉大人,你說我怎么就攤上這事孟害【苎祝” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵挨务,是天一觀的道長击你。 經(jīng)常有香客問我,道長谎柄,這世上最難降的妖魔是什么丁侄? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮谷誓,結(jié)果婚禮上绒障,老公的妹妹穿的比我還像新娘吨凑。我一直安慰自己捍歪,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布鸵钝。 她就那樣靜靜地躺著糙臼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪恩商。 梳的紋絲不亂的頭發(fā)上变逃,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天,我揣著相機與錄音怠堪,去河邊找鬼揽乱。 笑死,一個胖子當(dāng)著我的面吹牛粟矿,可吹牛的內(nèi)容都是我干的凰棉。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼陌粹,長吁一口氣:“原來是場噩夢啊……” “哼撒犀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤或舞,失蹤者是張志新(化名)和其女友劉穎荆姆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體映凳,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡胆筒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了诈豌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腐泻。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖队询,靈堂內(nèi)的尸體忽然破棺而出派桩,到底是詐尸還是另有隱情,我是刑警寧澤蚌斩,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布铆惑,位于F島的核電站,受9級特大地震影響送膳,放射性物質(zhì)發(fā)生泄漏员魏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一叠聋、第九天 我趴在偏房一處隱蔽的房頂上張望撕阎。 院中可真熱鬧,春花似錦碌补、人聲如沸虏束。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽镇匀。三九已至,卻和暖如春袜啃,著一層夾襖步出監(jiān)牢的瞬間汗侵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工群发, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晰韵,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓熟妓,卻偏偏與公主長得像雪猪,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子滑蚯,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容