RNNnoise知識整理

RNN核心代碼部分

1、噪聲和語⾳輸⼊都需要經過 ⼆階⾼通濾波器,48k採樣,截⽌頻率36hz;
2、48k 採樣,960 fft 加半窗 X kiss_fft 結果
3、計算各個頻帶組能量的時候,採⽤平滑計算能量Ex:

  • a、頻帶組劃分低頻段保證每組包含四個頻帶(❤️ 小於3.2k),⾼頻段接近bark域,總共分成了22個頻帶。
  • b、計算組帶能量的時候採⽤三⻆波⾏,即每⼀次的峯值響應其實就是兩個組帶相接的地⽅。
  • c、
static const opus_int16 eband5ms[] = {
/*0 200 400 600 800 1k 1.2 1.4 1.6 2k 2.4 2.8 3.2 4k 4.8 5.6 6.8 8k 9.6
12k 15.6 20k*/
 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 34, 40,48, 60, 78, 100
};

4、降採樣,計算基⾳週期。
5、計算最新基⾳週期的能量Ep,以及與輸⼊信號的相關性Exp;
6、正交變換求特徵點:

  • a、針對輸⼊信號bark 22個頻帶的能量做dct變換,得到22個BFCC係數。
  • b、針對22箇中的前六個即1.2k 做相關的時間導數處理,增加12個特徵點,針對當前及過去三幀處理爲:
    6個:An+A(n-1)+A(n-2);
    +6個:An -A(n-2);
    +6個:An +A(n-2)-2A(n-1)。
  • c、針對基⾳週期相關性,做dct變換,得到前6組帶的係數以及⼀個基⾳週期的係數。
  • d、通過計算過去8幀頻帶的差異值之和,求得穩定性係數1個。

8、使⽤訓練的結果,計算出處增益。
9、pitch filter:(根據計算出來的增益,對輸⼊信號進⾏基⾳諧波濾波)

  • a、主要是爲了解決bark域 ,計算出的增益存在 基⾳諧波之間噪聲殘留的問題。
  • b、filter 採樣了梳妝濾波器。
  • c、因爲語⾳的週期性跟頻率強相關,(特別是48k採樣),所以濾波器設計成頻域實現。
  • d、濾波器公式:x[i] +=a *Ep; x[i] 重新量化到原始語⾳的能量。
  • e、a的求解,根據噪聲導致基⾳相關性降低有:Pb<=Gb;所以有Pb>=Gb,a =1;Gb = 1,a= 0,沒有噪聲; Pb =
    0,a = 0,沒有基⾳; 公式:
    在這裏插入圖片描述
    10、重新量化後的噪聲語⾳ 與本次就算出的增益以及上次的增益,求解出最後的
    輸出。

RNN訓練代碼部分

87個特徵點的由來

1、輸⼊信號的處理:
a、輸⼊語⾳增益隨機0.01~10,輸⼊噪聲增益隨機0.1~10,增益的增加按幀來計算;
b、針對增益處理後的信號,通過隨機⼆階濾波器處理,得到更加隨機的信號的。
c、針對增益處理前的純語⾳信號,計算能量,根據語⾳能量特性,計算⼀個語⾳vad 特徵點。
d、計算增益處理後噪聲的能量譜,得到22個特徵點。
e、混合增益處理後的噪聲和語⾳信號,得到帶噪語⾳信號,計算特徵點,得到44個特徵點;
f、計算增益處理後純語⾳能量/帶噪語⾳能量的⽐值,以及vad及靜⾳,得到輸⼊增益22個特徵點。
結論:總共87個特徵點輸⼊;
2、模型:
a、實際使⽤了e的42個特徵點作爲輸⼊,f的22個增益特徵點以及c的vad 特徵點作爲輸出進⾏訓練。
c、validation_split = 0.1,也就是10%的數據作爲驗證測試集,epochs 設置爲120次,也就是數據跑120遍,batch size 把數據分成32份。
d、gru 訓練模型:總共215個單元,4個隱藏層。22個增益輸出點,1⼀個vad 輸出點。
在這裏插入圖片描述

e、損失函數權重0.5,對主權重矩陣進⾏約束 0.499, 對偏置向量進⾏約束0.499, 施加在權重上的正則項 0.000001,施加在偏置向量上的正則項0.000001。 3、訓練運⾏流程:

(1) cd src ; 
	./compile.sh
(2) ./denoise_training signal.raw noise.raw count > training.f32
(note the matrix size and replace 50000000 87 below)
(3) cd training ; 
./bin2hdf5.py ../src/training.f32 50000000 87 training.h5
(4) ./rnn_train.py
(5) ./dump_rnn.py weights.hdf5 rnn_data.c rnn_data.h

4、語⾳資源地址:
a、語⾳:http://www-mmsp.ece.mcgill.ca/Documents/Data/NTT Multi-Lingual Speech Database :這個暫時沒有下載。可以使⽤其他的語⾳庫替代。
b、噪聲:
https://people.xiph.org/~jm/demo/rnnoise/rnnoise_contributions.tar.gz

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