本申請(qǐng)屬于語(yǔ)音處理技術(shù)領(lǐng)域,尤其涉及一種語(yǔ)音去噪方法和裝置。
背景技術(shù):
在發(fā)送語(yǔ)音消息時(shí),背景噪音是不可避免,有效去除噪聲可以提升語(yǔ)音的質(zhì)量。且隨著智能終端的使用越來(lái)越普及,語(yǔ)音聊天等也變得越來(lái)越普遍,因此語(yǔ)音去噪也就變得越來(lái)越重要。
鑒于語(yǔ)音去噪在語(yǔ)音聊天中有著重要的作用,可以降低環(huán)境噪音,提升語(yǔ)音質(zhì)量,語(yǔ)音去噪的方法也有很多,例如:譜減法、LMS(自適應(yīng)濾波器)、維納濾波法、最小均方誤差法等等。
然而,上述這些去噪方法都存在計(jì)算量較大的問(wèn)題,因?yàn)橛?jì)算量比較大必然會(huì)導(dǎo)致實(shí)時(shí)去噪時(shí)cpu占用率比較高,智能終端的性能難以滿足實(shí)時(shí)去噪的要求。
針對(duì)如何在保證去噪效果的同時(shí),降低對(duì)CPU的占用,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)目的在于提供一種語(yǔ)音去噪方法和裝置,可以實(shí)現(xiàn)在保證語(yǔ)音精度的同時(shí),提高去噪速度和效率,以滿足實(shí)時(shí)去噪的要求。
本申請(qǐng)?zhí)峁┮环N語(yǔ)音去噪方法和裝置是這樣實(shí)現(xiàn)的:
一種語(yǔ)音去噪方法,所述方法包括:
對(duì)待去噪語(yǔ)音信號(hào)進(jìn)行FFT,得到多個(gè)頻段的幅值和相位;
根據(jù)所述多個(gè)頻段中各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子;
將各個(gè)頻段的幅值乘以對(duì)應(yīng)的噪聲抑制因子,得到各個(gè)頻段去噪后的幅值;
相位采用FFT得到的相位,幅值采用去噪后的幅值,進(jìn)行IFFT得到去噪后的語(yǔ)音信號(hào)。
一種語(yǔ)音去噪裝置,所述裝置包括:
FFT模塊,用于對(duì)待去噪語(yǔ)音信號(hào)進(jìn)行FFT,得到多個(gè)頻段的幅值和相位;
計(jì)算模塊,用于根據(jù)所述多個(gè)頻段中各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子;
確定模塊,用于將各個(gè)頻段的幅值乘以對(duì)應(yīng)的噪聲抑制因子,得到各個(gè)頻段去噪后的幅值;
IFFT模塊,用于相位采用FFT得到的相位,幅值采用去噪后的幅值,進(jìn)行IFFT得到去噪后的語(yǔ)音信號(hào)。
本申請(qǐng)?zhí)峁┑恼Z(yǔ)音去噪方法和裝置,將對(duì)待去噪語(yǔ)音信號(hào)通過(guò)FFT變換至頻域,以獲取多個(gè)頻段的幅值和相位,然后基于各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子,通過(guò)噪聲抑制因子在頻域進(jìn)行語(yǔ)音去噪,然后再通過(guò)IFFT變換至?xí)r域,從而實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)的去噪處理。利用本申請(qǐng)實(shí)施方案,不僅可以保證語(yǔ)音去噪效果可以滿足要求,且計(jì)算量比較小,計(jì)算速度較快,因此可以滿足實(shí)時(shí)去噪的要求。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)中記載的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本申請(qǐng)?zhí)峁┑恼Z(yǔ)音去噪方法一種實(shí)施例的方法流程圖;
圖2是本申請(qǐng)?zhí)峁┑慕?jīng)驗(yàn)函數(shù)的曲線示意圖;
圖3是本申請(qǐng)?zhí)峁┑恼Z(yǔ)音去噪方法另一種實(shí)施例的方法流程圖;
圖4是本申請(qǐng)?zhí)峁┑恼Z(yǔ)音去噪裝置一種實(shí)施例的模型結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本申請(qǐng)中的技術(shù)方案,下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請(qǐng)保護(hù)的范圍。
圖1是本申請(qǐng)所述一種語(yǔ)音去噪方法一個(gè)實(shí)施例的方法流程圖。雖然本申請(qǐng)?zhí)峁┝巳缦率鰧?shí)施例或附圖所示的方法操作步驟或裝置結(jié)構(gòu),但基于常規(guī)或者無(wú)需創(chuàng)造性的勞動(dòng)在所述方法或裝置中可以包括更多或者更少的操作步驟或模塊單元。在邏輯性上不存在必要因果關(guān)系的步驟或結(jié)構(gòu)中,這些步驟的執(zhí)行順序或裝置的模塊結(jié)構(gòu)不限于本申請(qǐng)實(shí)施例描述及附圖所示的執(zhí)行順序或模塊結(jié)構(gòu)。所述的方法或模塊結(jié)構(gòu)的在實(shí)際中的裝置或終端產(chǎn)品應(yīng)用時(shí),可以按照實(shí)施例或者附圖所示的方法或模塊結(jié)構(gòu)連接進(jìn)行順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境,甚至分布式處理環(huán)境)。
具體的如圖1所述,本申請(qǐng)一種實(shí)施例提供的一種語(yǔ)音去噪方法可以包括:
S1:對(duì)待去噪語(yǔ)音信號(hào)進(jìn)行FFT(Fast Fourier Transform,快速傅立葉變換),得到多個(gè)頻段的幅值和相位;
待去噪語(yǔ)音信號(hào)可以是實(shí)時(shí)通話時(shí)候的語(yǔ)音信號(hào),例如:通過(guò)手機(jī)打電話時(shí)候雙方的語(yǔ)音信號(hào),或者是,聊天應(yīng)用中傳輸?shù)恼Z(yǔ)音,或者是聊天應(yīng)用中的對(duì)講語(yǔ)音等等,這些都可以作為待去噪語(yǔ)音信號(hào)。因?yàn)?,這些語(yǔ)音信號(hào)一般是人們?cè)谡5纳瞽h(huán)境中錄制的語(yǔ)音,身邊難免會(huì)存在噪聲,這些噪聲的存在都會(huì)影響語(yǔ)音的質(zhì)量。
一般待去噪語(yǔ)音信號(hào)都是時(shí)域的數(shù)據(jù),為此,可以對(duì)其進(jìn)行FFT(Fast Fourier Transform,快速傅立葉變換),以將時(shí)域的信號(hào)轉(zhuǎn)換至頻域,然后,在頻域進(jìn)行語(yǔ)音去噪,待去噪完成后,可以通過(guò)IFFT(Inverse Fast Fourier Transform,快速傅里葉逆變換)再變換為時(shí)域,從而得到去噪后的語(yǔ)音信號(hào)。
在本例中,主要是考慮到所謂的語(yǔ)音去噪主要是通過(guò)原始語(yǔ)音信號(hào)減去其中的噪聲信號(hào),從而獲取去噪后的語(yǔ)音信號(hào),如果到功率的層面考慮就是:
其中,表示第i個(gè)頻段去噪后的功率,Pi表示第i個(gè)頻段帶噪信號(hào)的功率,Ni表示第i個(gè)頻段的噪聲功率。
對(duì)該公式進(jìn)行調(diào)整可以得到:
由此可見(jiàn),去噪后的功率其實(shí)是帶噪信號(hào)的功率乘以一個(gè)噪聲抑制因子Ri后的結(jié)果,當(dāng)Ri=0,表示輸入信號(hào)全是噪聲,去噪后功率為0,當(dāng)Ri=1,表示輸入信號(hào)不存在噪聲,去噪后功率值不變。
進(jìn)一步的,基于功率是幅度的平方,將上述公式對(duì)應(yīng)到信號(hào)的幅度上進(jìn)行去噪就可以表示為:
因此,如果需要在幅度層面進(jìn)行語(yǔ)音去噪,就需要求取ri,然后根據(jù)幅值和相位還原出去噪后的信號(hào)。因此,需要對(duì)待去噪語(yǔ)音信號(hào)進(jìn)行FFT,得到多個(gè)頻段的幅值和相位。
S2:根據(jù)所述多個(gè)頻段中各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子;
噪聲抑制因子主要是與帶噪功率和噪聲功率相關(guān)的,因此,可以根據(jù)各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子,具體地,可以先設(shè)定一個(gè)初始抑制因子,然后,對(duì)這個(gè)初始抑制進(jìn)行修正,從而得到較為準(zhǔn)確的抑制因子,即,可以包括:
步驟1:根據(jù)當(dāng)前頻段的帶噪功率和噪聲功率,計(jì)算當(dāng)前頻段的初始抑制因子;
步驟2:對(duì)當(dāng)前頻段的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子;
步驟3:將當(dāng)前頻段修正后的抑制因子作為當(dāng)前頻段的噪聲抑制因子。
初始抑制因子就可以根據(jù)當(dāng)前頻段的帶噪功率和噪聲功率的確定,例如,可以按照以下公式計(jì)算初始抑制因子:
其中,ri0表示第i個(gè)頻段的初始抑制因子,其中,第i個(gè)頻段為當(dāng)前頻段,Pi表示第i個(gè)頻段的帶噪功率,Ni表示第i個(gè)頻段的噪聲功率,Rbasen是根據(jù)當(dāng)前頻段的幅值從擬合經(jīng)驗(yàn)曲線中查找出的量值。
具體地,Rbasen=f(x)可以是一個(gè)基礎(chǔ)值,該值與信號(hào)的幅度有關(guān),該函數(shù)可以是通過(guò)實(shí)際采集的信號(hào)進(jìn)行分析總結(jié)后得到的一個(gè)經(jīng)驗(yàn)函數(shù),在實(shí)際執(zhí)行中,f(x)可以是一個(gè)如圖2所示的擬合得到的一個(gè)分段函數(shù),分段函數(shù)中表明了各個(gè)幅度范圍所應(yīng)該對(duì)應(yīng)的Rbasen的值,在得到當(dāng)前頻段的幅度值之后,就可以到該分段函數(shù)中進(jìn)行查找,以便確定該幅度值對(duì)應(yīng)哪個(gè)幅度區(qū)間,以及該幅度區(qū)間對(duì)應(yīng)的Rbasen值,從而通過(guò)幅度確定出Rbasen,例如,在圖2中,縱軸表示Rbasen,橫軸表示信號(hào)幅度,橫軸的刻度單位為3500,即,1標(biāo)識(shí)的信號(hào)幅度大小為3500。基于圖2所示的經(jīng)驗(yàn)函數(shù)曲線,在知道幅度的情況下,就可以確定出Rbasen。
為了對(duì)初始抑制因子進(jìn)行修正,得到修正后的抑制因子,可以通過(guò)以下方式之一進(jìn)行:
1)通過(guò)相鄰頻段間的衰減因子做平滑;
2)與因子能力最強(qiáng)的因子做加權(quán);
3)與上一幀的抑制因子做加權(quán)。
下面對(duì)上述三種修正方式進(jìn)行具體說(shuō)明,然而,值得注意的是,下面的說(shuō)明中是以這三種方式逐一進(jìn)行修正的方式進(jìn)行的,然而,在實(shí)際執(zhí)行的時(shí)候,并不需要按照這種順序進(jìn)行,可以根據(jù)實(shí)際需要選擇一種、兩種或者三種方式進(jìn)行修正,具體的修正次序也可以根據(jù)實(shí)際需要和實(shí)際情況選擇,本申請(qǐng)對(duì)此不作限定。
方式一:通過(guò)相鄰頻段間的衰減因子做平滑,可以包括:將當(dāng)前頻段的初始抑制因子與當(dāng)前頻段的相鄰頻段的初始抑制因子做平滑處理,然后將平滑處理后的初始抑制因子作為當(dāng)前頻段修正后的抑制因子。
具體地,可以將當(dāng)前頻段的初始抑制因子與當(dāng)前頻段的相鄰頻段的初始抑制因子做平滑處理:
其中,ri1表示當(dāng)前頻段平滑處理后的初始抑制因子,ωj表示第j個(gè)頻段的權(quán)重值,rj0表示第j個(gè)頻段的初始抑制因子。
即,選擇當(dāng)前頻段的前一個(gè)頻段和后一個(gè)頻段以及當(dāng)前頻段自身的初始抑制因子做加權(quán)平均作為當(dāng)前頻段修正后的抑制因子。然而值得注意的是,在實(shí)際實(shí)現(xiàn)的時(shí)候,也可以不是僅選擇前一頻段和后一頻段,也可以選擇前兩個(gè)頻段和后兩個(gè)頻段,或者是相鄰的更多個(gè)頻段,具體選擇相鄰的幾個(gè)頻段,可以根據(jù)實(shí)際需要確定,本申請(qǐng)對(duì)此不作限定,當(dāng)然選擇的相鄰頻段越多得到的抑制因子越準(zhǔn)確,但是所需要的計(jì)算處理資源也就越多,對(duì)終端的性能要求也就越高,因此,需要考慮計(jì)算資源與準(zhǔn)確性之間的一個(gè)平衡。
之所以通過(guò)相鄰頻段間的抑制因子做平滑,主要是考慮到一般希望相鄰頻段間的噪聲抑制能力是相當(dāng)?shù)模员苊庠颊Z(yǔ)音走樣。
方式二:與因子能力最強(qiáng)的因子做加權(quán):可以獲取多個(gè)頻段中各個(gè)頻段初始抑制因子的最大值和最小值,然后,根據(jù)最大值和最小值,對(duì)平滑處理后的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子。
具體地,可以按照以下公式對(duì)平滑處理后的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子:
ri2=α·ri1+(1-α)·rmin
其中,α表示第一加權(quán)系數(shù),α=f(rmin,rmax),f為第一加權(quán)系數(shù)的計(jì)算公式,rmin表示所述最小值,rmax表示所述最大值。
例如:α=f(rmin,rmax)可以表示為:
其中,然而值得注意的是,該α的計(jì)算公式僅是一種示意性描述,在實(shí)際執(zhí)行時(shí),也可以有其它的表達(dá)形式,取值也可以根據(jù)實(shí)際情況確定,本申請(qǐng)對(duì)此不作限定。
其中,rmin,rmax可以表示為:
由前面分析的去噪原理可知:ri越小,表示這個(gè)頻段含有的噪聲越多,需要更小的值與原始功率相乘,ri越大,表示這個(gè)頻段含有的噪聲越少,需要一個(gè)接近1的值與原始功率相乘。
與因子能力最強(qiáng)的因子做加權(quán)主要是因?yàn)榻?jīng)過(guò)平滑處理后的抑制因子會(huì)存在欠抑制或者是過(guò)抑制的問(wèn)題,因此可以通過(guò)抑制因子的極值做修正。
方式三:與上一幀的抑制因子做加權(quán),即,可以將當(dāng)前頻段修正后的抑制因子與待去噪語(yǔ)音信號(hào)的前一幀語(yǔ)音信號(hào)與當(dāng)前頻段相同頻段的修正后的抑制因子做加權(quán),得到加權(quán)后的抑制因子,然后將加權(quán)后的抑制因子作為當(dāng)前頻段的噪聲抑制因子。即,假設(shè)計(jì)算的是去噪語(yǔ)音信號(hào)的第5個(gè)頻段(20Hz到30Hz)的抑制因子,那么就用上一幀語(yǔ)音的20Hz到30Hz的抑制因子做加權(quán),之所以與上一幀的抑制因子做加權(quán),主要是為了保證相鄰幀的平滑。
具體地,可以按照以下公式將當(dāng)前頻段修正后的抑制因子與前一幀的結(jié)果做加權(quán),得到加權(quán)后的抑制因子:
其中,表示所述待去噪語(yǔ)音信號(hào)的前一幀語(yǔ)音信號(hào)與所述當(dāng)前頻段相同頻段的修正后的抑制因子,ri表示所述加權(quán)后的抑制因子,ri2表示所述當(dāng)前頻段修正后的抑制因子,β表示第二加權(quán)系數(shù)。
S3:將各個(gè)頻段的幅值乘以對(duì)應(yīng)的噪聲抑制因子,得到各個(gè)頻段去噪后的幅值;
即,可以按照以下公式將各個(gè)頻段的幅值乘以對(duì)應(yīng)的噪聲抑制因子,得到各個(gè)頻段去噪后的幅值:
其中,表示第i個(gè)頻段去噪后的幅值,r表示第i個(gè)頻段的噪聲抑制因子,Ai表示第i個(gè)頻段去噪前的幅值。
S4:相位采用FFT得到的相位,幅值采用去噪后的幅值,進(jìn)行IFFT(Inverse Fast Fourier Transform,快速傅里葉逆變換)得到去噪后的語(yǔ)音信號(hào);
即,在頻域進(jìn)行去噪后,對(duì)乘以抑制因子后的結(jié)果進(jìn)行IFFT操作,返回時(shí)域得到去噪后的語(yǔ)音信號(hào)。
總的而言,整個(gè)去噪流程可以如圖3所示,獲取語(yǔ)音信號(hào)X,然后語(yǔ)音信號(hào)X進(jìn)行FFT,計(jì)算FFT后每個(gè)頻段的噪聲抑制因子,然后根據(jù)得到的噪聲抑制因子進(jìn)行去噪,去噪后進(jìn)行IFFT,得到去噪后的信號(hào)X。
本例所提供的語(yǔ)音去噪方法具有良好的去噪效果,去噪效果與維納濾波或最小均方誤差等方法類似,但是計(jì)算速度相對(duì)較快,通過(guò)維納濾波或最小均方誤差等方法進(jìn)行實(shí)時(shí)去噪,android系統(tǒng)上CPU占用10%左右,ios系統(tǒng)上CPU占用>80%,而通過(guò)本申請(qǐng)中的語(yǔ)音去噪方法進(jìn)行實(shí)時(shí)去噪,android系統(tǒng)上CPU占用降為2%,ios系統(tǒng)上CPU占用可以降至30%以下,可以有效滿足移動(dòng)終端的性能需求。
基于同一發(fā)明構(gòu)思,本發(fā)明實(shí)施例中還提供了一種語(yǔ)音去噪裝置,如下面的實(shí)施例所述。由于語(yǔ)音去噪裝置解決問(wèn)題的原理與語(yǔ)音去噪方法相似,因此語(yǔ)音去噪裝置的實(shí)施可以參見(jiàn)語(yǔ)音去噪方法的實(shí)施,重復(fù)之處不再贅述。以下所使用的,術(shù)語(yǔ)“單元”或者“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。圖4是本發(fā)明實(shí)施例的語(yǔ)音去噪裝置的一種結(jié)構(gòu)框圖,如圖4所示,可以包括:FFT模塊401、計(jì)算模塊402、確定模塊403和IFFT模塊404,下面對(duì)該結(jié)構(gòu)進(jìn)行說(shuō)明。
FFT模塊401,可以用于對(duì)待去噪語(yǔ)音信號(hào)進(jìn)行FFT,得到多個(gè)頻段的幅值和相位;
計(jì)算模塊402,可以用于根據(jù)所述多個(gè)頻段中各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子;
確定模塊403,可以用于將各個(gè)頻段的幅值乘以對(duì)應(yīng)的噪聲抑制因子,得到各個(gè)頻段去噪后的幅值;
IFFT模塊404,可以用于相位采用FFT得到的相位,幅值采用去噪后的幅值,進(jìn)行IFFT得到去噪后的語(yǔ)音信號(hào)。
在一個(gè)實(shí)施方式中,計(jì)算模塊402可以包括:計(jì)算單元,用于根據(jù)當(dāng)前頻段的帶噪功率和噪聲功率,計(jì)算當(dāng)前頻段的初始抑制因子;修正單元,用于對(duì)所述當(dāng)前頻段的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子;確定單元,用于將當(dāng)前頻段修正后的抑制因子作為當(dāng)前頻段的噪聲抑制因子。
在一個(gè)實(shí)施方式中,計(jì)算單元具體可以用于根據(jù)當(dāng)前頻段的帶噪功率和噪聲功率,按照以下公式,計(jì)算當(dāng)前頻段的初始抑制因子:
其中,ri0表示第i個(gè)頻段的初始抑制因子,其中,第i個(gè)頻段為當(dāng)前頻段,Rbasen是根據(jù)當(dāng)前頻段的幅值從擬合經(jīng)驗(yàn)曲線中查找出的量值,Pi表示第i個(gè)頻段的帶噪功率,Ni表示第i個(gè)頻段的噪聲功率。
在一個(gè)實(shí)施方式中,修正單元可以包括:平滑子單元,用于將所述當(dāng)前頻段的初始抑制因子與所述當(dāng)前頻段的相鄰頻段的初始抑制因子做平滑處理;修正子單元,用于將平滑處理后的初始抑制因子作為當(dāng)前頻段修正后的抑制因子。
在一個(gè)實(shí)施方式中,平滑子單元具體可以用于按照以下公式,將所述當(dāng)前頻段的初始抑制因子與所述當(dāng)前頻段的相鄰頻段的初始抑制因子做平滑處理:
其中,ri1表示當(dāng)前頻段平滑處理后的初始抑制因子,ωj表示第j個(gè)頻段的權(quán)重值,rj0表示第j個(gè)頻段的初始抑制因子。
在一個(gè)實(shí)施方式中,修正子單元可以包括:獲取子單元,用于獲取所述多個(gè)頻段中各個(gè)頻段初始抑制因子的最大值和最小值;確定子單元,用于根據(jù)所述最大值和最小值,對(duì)平滑處理后的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子。
在一個(gè)實(shí)施方式中,確定子單元具體可以用于根據(jù)所述最大值和最小值,按照以下公式對(duì)平滑處理后的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子:
ri2=α·ri1+(1-α)·rmin
其中,α表示第一加權(quán)系數(shù),α=f(rmin,rmax),f為第一加權(quán)系數(shù)的計(jì)算公式,rmin表示所述最小值,rmax表示所述最大值。
在一個(gè)實(shí)施方式中,修正子單元還可以包括:加權(quán)子單元,用于在對(duì)平滑處理后的初始抑制因子進(jìn)行修正,得到當(dāng)前頻段修正后的抑制因子之后,將當(dāng)前頻段修正后的抑制因子與所述待去噪語(yǔ)音信號(hào)的前一幀語(yǔ)音信號(hào)與所述當(dāng)前頻段相同頻段的修正后的抑制因子做加權(quán),得到加權(quán)后的抑制因子;相應(yīng)的,確定單元具體可以用于將加權(quán)后的抑制因子作為當(dāng)前頻段的噪聲抑制因子。
在一個(gè)實(shí)施方式中,加權(quán)子單元具體可以用于按照以下公式將當(dāng)前頻段修正后的抑制因子與前一幀的結(jié)果做加權(quán),得到加權(quán)后的抑制因子:
其中,表示所述待去噪語(yǔ)音信號(hào)的前一幀語(yǔ)音信號(hào)與所述當(dāng)前頻段相同頻段的修正后的抑制因,ri表示所述加權(quán)后的抑制因子,ri2表示所述當(dāng)前頻段修正后的抑制因子,β表示第二加權(quán)系數(shù)。
本申請(qǐng)?zhí)峁┑恼Z(yǔ)音去噪方法和裝置,將對(duì)待去噪語(yǔ)音信號(hào)通過(guò)FFT變換至頻域,以獲取多個(gè)頻段的幅值和相位,然后基于各個(gè)頻段的帶噪功率和噪聲功率,計(jì)算得到各個(gè)頻段的噪聲抑制因子,通過(guò)噪聲抑制因子在頻域進(jìn)行語(yǔ)音去噪,然后再通過(guò)IFFT變換至?xí)r域,從而實(shí)現(xiàn)對(duì)語(yǔ)音信號(hào)的去噪處理。利用本申請(qǐng)實(shí)施方案,不僅可以保證語(yǔ)音去噪效果可以滿足要求,且計(jì)算量比較小,計(jì)算速度較快,因此可以滿足實(shí)時(shí)去噪的要求。
本申請(qǐng)中各個(gè)實(shí)施例所涉及的上述描述僅是本申請(qǐng)中的一些實(shí)施例中的應(yīng)用,在某些標(biāo)準(zhǔn)、模型、方法的基礎(chǔ)上略加修改后的實(shí)施方式也可以實(shí)行上述本申請(qǐng)各實(shí)施例的方案。當(dāng)然,在符合本申請(qǐng)上述各實(shí)施例的中所述的處理方法步驟的其他無(wú)創(chuàng)造性的變形,仍然可以實(shí)現(xiàn)相同的申請(qǐng),在此不再贅述。
雖然本申請(qǐng)?zhí)峁┝巳鐚?shí)施例或流程圖所述的方法操作步驟,但基于常規(guī)或者無(wú)創(chuàng)造性的勞動(dòng)可以包括更多或者更少的操作步驟。實(shí)施例中列舉的步驟順序僅僅為眾多步驟執(zhí)行順序中的一種方式,不代表唯一的執(zhí)行順序。在實(shí)際中的裝置或客戶端產(chǎn)品執(zhí)行時(shí),可以按照實(shí)施例或者附圖所示的方法順序執(zhí)行或者并行執(zhí)行(例如并行處理器或者多線程處理的環(huán)境)。
上述實(shí)施例闡明的裝置或模塊,具體可以由計(jì)算機(jī)芯片或?qū)嶓w實(shí)現(xiàn),或者由具有某種功能的產(chǎn)品來(lái)實(shí)現(xiàn)。為了描述的方便,描述以上裝置時(shí)以功能分為各種模塊分別描述。在實(shí)施本申請(qǐng)時(shí)可以把各模塊的功能在同一個(gè)或多個(gè)軟件和/或硬件中實(shí)現(xiàn)。當(dāng)然,也可以將實(shí)現(xiàn)某功能的模塊由多個(gè)子模塊或子單元組合實(shí)現(xiàn)。
本申請(qǐng)中所述的方法、裝置或模塊可以以計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器按任何適當(dāng)?shù)姆绞綄?shí)現(xiàn),例如,控制器可以采取例如微處理器或處理器以及存儲(chǔ)可由該(微)處理器執(zhí)行的計(jì)算機(jī)可讀程序代碼(例如軟件或固件)的計(jì)算機(jī)可讀介質(zhì)、邏輯門、開(kāi)關(guān)、專用集成電路(Application Specific Integrated Circuit,ASIC)、可編程邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存儲(chǔ)器控制器還可以被實(shí)現(xiàn)為存儲(chǔ)器的控制邏輯的一部分。本領(lǐng)域技術(shù)人員也知道,除了以純計(jì)算機(jī)可讀程序代碼方式實(shí)現(xiàn)控制器以外,完全可以通過(guò)將方法步驟進(jìn)行邏輯編程來(lái)使得控制器以邏輯門、開(kāi)關(guān)、專用集成電路、可編程邏輯控制器和嵌入微控制器等的形式來(lái)實(shí)現(xiàn)相同功能。因此這種控制器可以被認(rèn)為是一種硬件部件,而對(duì)其內(nèi)部包括的用于實(shí)現(xiàn)各種功能的裝置也可以視為硬件部件內(nèi)的結(jié)構(gòu)?;蛘呱踔?,可以將用于實(shí)現(xiàn)各種功能的裝置視為既可以是實(shí)現(xiàn)方法的軟件模塊又可以是硬件部件內(nèi)的結(jié)構(gòu)。
本申請(qǐng)所述裝置中的部分模塊可以在由計(jì)算機(jī)執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的一般上下文中描述,例如程序模塊。一般地,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)、類等等。也可以在分布式計(jì)算環(huán)境中實(shí)踐本申請(qǐng),在這些分布式計(jì)算環(huán)境中,由通過(guò)通信網(wǎng)絡(luò)而被連接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行任務(wù)。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)設(shè)備在內(nèi)的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。
通過(guò)以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請(qǐng)可借助軟件加必需的硬件的方式來(lái)實(shí)現(xiàn)?;谶@樣的理解,本申請(qǐng)的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),也可以通過(guò)數(shù)據(jù)遷移的實(shí)施過(guò)程中體現(xiàn)出來(lái)。該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在存儲(chǔ)介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),移動(dòng)終端,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請(qǐng)各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
本說(shuō)明書中的各個(gè)實(shí)施例采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同或相似的部分互相參見(jiàn)即可,每個(gè)實(shí)施例重點(diǎn)說(shuō)明的都是與其他實(shí)施例的不同之處。本申請(qǐng)的全部或者部分可用于眾多通用或?qū)S玫挠?jì)算機(jī)系統(tǒng)環(huán)境或配置中。例如:個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持設(shè)備或便攜式設(shè)備、平板型設(shè)備、移動(dòng)通信終端、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、可編程的電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括以上任何系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。
雖然通過(guò)實(shí)施例描繪了本申請(qǐng),本領(lǐng)域普通技術(shù)人員知道,本申請(qǐng)有許多變形和變化而不脫離本申請(qǐng)的精神,希望所附的權(quán)利要求包括這些變形和變化而不脫離本申請(qǐng)的精神。