本發(fā)明涉及一種語音處理方法,尤其是涉及一種基于stft的雙通道語聲分離方法。
背景技術(shù):
人聲分離的主要技術(shù)來自于對(duì)頻率和相位的處理,現(xiàn)有的技術(shù)基本都是兩個(gè)手法聯(lián)動(dòng)作業(yè),比如先進(jìn)行頻率階段的濾波,在某些頻率上再使用相位抵消。dft算法可以有效的將時(shí)域信息轉(zhuǎn)換為頻域信息,dft反變換則可以將頻域信息轉(zhuǎn)換為時(shí)域信息。dft算法在數(shù)字濾波、功率譜分析、通訊理論中有廣泛的應(yīng)用。將此技術(shù)應(yīng)用于人聲與背景音樂的分離上,并加以改進(jìn),可以很好的分離人聲。
單通道音樂人聲分離中的多種特定樂器強(qiáng)化分離方法涉及一種單通道音樂人聲分離中的多種特定樂器強(qiáng)化分離方法。該方法對(duì)電吉他、單簧管、小提琴、鋼琴、木吉他、風(fēng)琴、長笛和小號(hào)共計(jì)8種樂器進(jìn)行強(qiáng)化分離,該強(qiáng)化分離是通過一層單樂器分離器和三層多樂器組合強(qiáng)化器實(shí)現(xiàn),其中,第一層多樂器組合強(qiáng)化器能夠分離2類樂器聲,第二層多樂器組合強(qiáng)化器能夠分離4類樂器聲,第三層多樂器組合強(qiáng)化器能夠分離8類樂器聲。然而該技術(shù)局限于對(duì)樂器聲音的分離,應(yīng)用領(lǐng)域較為狹窄;僅僅可以處理單通道音樂,單聲道中所具有的信息太少,從而只能根據(jù)語聲與背景音樂的差異性進(jìn)行區(qū)分,這樣帶來的結(jié)果通常情況下是難以想象的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種能夠很好的分離人聲與背景音樂的基于stft的雙通道語聲分離方法。
本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
一種基于stft的雙通道語聲分離方法,用于將語聲和背景音樂分離,包括以下步驟:
s1,分別對(duì)左聲道和右聲道的時(shí)域信號(hào)序列進(jìn)行stft變換,得到左聲道和右聲道的頻域信號(hào)序列,各頻點(diǎn)的信號(hào)分離表達(dá)式如下:
其中,|ωl|為左聲道信號(hào)的模值,
s2,令各頻點(diǎn)|ωhumanl|=|ωhumanr|,
s3,對(duì)步驟s2得到的結(jié)果進(jìn)行stft反變換,并進(jìn)行噪聲濾波,得到語聲和音樂分離后的左聲道和右聲道的時(shí)域信號(hào)。
所述的步驟s2中,左、右聲道背景音樂分量之間的夾角條件為:當(dāng)頻點(diǎn)信號(hào)的頻率大于603hz時(shí),
單個(gè)拾音裝置接收音頻的角度
所述的步驟s2中,語聲分量與頻點(diǎn)信號(hào)之間的夾角條件為:
所述的stft變換中,將時(shí)域信號(hào)序列分片,并對(duì)每個(gè)片段加窗提取前4個(gè)頻點(diǎn)信號(hào),窗函數(shù)為
與現(xiàn)有技術(shù)相比,本發(fā)明通過stft算法(短時(shí)傅里葉變換),得到頻域信號(hào)后,可以將背景音樂和語聲有效分離;半重疊的stft方案,可以在減弱接續(xù)沖激的前提條件下完全還原原始信號(hào);考慮拾音系統(tǒng)的角度范圍和拾音系統(tǒng)兩通道之間的距離,確定了不同的相差條件,從而使計(jì)算結(jié)果更加準(zhǔn)確;對(duì)得到的最后結(jié)果進(jìn)行濾波,濾除不必要的噪聲,可應(yīng)用于k歌類型的手機(jī)應(yīng)用程序中。
附圖說明
圖1為本發(fā)明方法的流程圖;
圖2為實(shí)施例拾音系統(tǒng)與聲源關(guān)系示意圖。
具體實(shí)施方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
實(shí)施例
如圖1所示,一種基于stft的雙通道語聲分離方法,用于將語聲和背景音樂分離,包括以下步驟:
s1,分別對(duì)左聲道和右聲道的時(shí)域信號(hào)序列進(jìn)行stft變換,得到左聲道和右聲道的頻域信號(hào)序列。
s2,令各頻點(diǎn)|ωhumanl|=|ωhumanr|,
s3,對(duì)步驟s2得到的結(jié)果進(jìn)行stft反變換,并進(jìn)行噪聲濾波,得到語聲和音樂分離后的左聲道和右聲道的時(shí)域信號(hào)。
對(duì)于每一個(gè)頻點(diǎn),有下面的等式:
ωi=ωhuman+ωmusic
其中ωi為第i個(gè)頻點(diǎn)的復(fù)數(shù)值,ωhuman為第i個(gè)頻點(diǎn)的語聲分量,ωmusic是背景音樂的分量了。這里所有的變量都是復(fù)數(shù),換言之,可以將上式寫成
對(duì)于雙聲道的歌曲會(huì)有
對(duì)于等式(1),左邊是的已知變量,某一頻點(diǎn)的復(fù)數(shù)值,也可以分解為單位向量和模值。左邊的變量有兩個(gè),而所求的右邊變量有四個(gè),考慮到頻點(diǎn)的獨(dú)立性,可以認(rèn)為在數(shù)值上等式(1)是不可解得。同樣對(duì)于等式(2)也會(huì)有類似的結(jié)論??紤]到日常聽的專輯其中的語聲多數(shù)都是通過一個(gè)話筒錄入的,即在任意頻點(diǎn),應(yīng)該有:
|ωhumanl|=|ωhumanr|
從而,將等式(2)變換為下面的形式:
若采用離散傅里葉變換(dft),如下所示
其中:
假設(shè)對(duì)于兩條(包含左右聲道)足夠長的序列進(jìn)行分片,得到:
經(jīng)過分片傅里葉變換之后得到的結(jié)果為
其中ωrij表示右聲道第i個(gè)切片的第j項(xiàng),ωlij表示左聲道第i個(gè)切片的第j項(xiàng)。如果希望反變換之后的所有切片貼合,盡量不產(chǎn)生沖激響應(yīng),應(yīng)該要求任意頻點(diǎn)在各個(gè)切片之間的變化盡量小??梢赃x擇一段未處理的音頻對(duì)其進(jìn)行分片傅里葉變換,并選擇其中同一位置的頻點(diǎn)進(jìn)行分析,以觀察連續(xù)且沒有接續(xù)沖激響應(yīng)的頻率相位變化。
假設(shè)有一段正弦信號(hào),用某一固定長度的時(shí)域片采樣,在此時(shí)間片內(nèi)信號(hào)經(jīng)過的相位為:
對(duì)于第n個(gè)采樣周期,認(rèn)為其采樣的范圍是:
其中n為某一小時(shí)域切片所經(jīng)歷的周期數(shù),
模值上的特征不如相位上的特征明顯,但是信號(hào)通過頻域重建之后,相鄰切片之間的時(shí)域信號(hào)必須連續(xù)順滑,否則將會(huì)出現(xiàn)明顯的沖激響應(yīng)。
接下來嘗試通過式(7)中的xrij及xlij重建出新的x'rij及x'lij。由于算法假設(shè)必然會(huì)導(dǎo)致相鄰小片之間的相位出現(xiàn)劇烈變化,也會(huì)導(dǎo)致時(shí)域上的信號(hào)不再連續(xù)。正因?yàn)檫@個(gè)原因,stft變成了解決這個(gè)問題的首選。
可以把stft看作是相互重疊的傅里葉變換的小片。比如對(duì)于下面的信號(hào):
x(n)=xn,x∈{x0,x1,x2,x3,…,xi-2,xi-1,xi,…}
可以選擇其中連續(xù)的四個(gè)值作為一個(gè)處理單元。提取其中的處理單元的過程可以稱作加窗。假設(shè)有一個(gè)窗函數(shù):
如果需要取出x最前面的四個(gè)值,只需要將w(n)與x點(diǎn)乘:
x'(n)=x(n)·w(n)
假設(shè)相鄰的窗函數(shù)之間相差δp的距離,可以認(rèn)為第m個(gè)窗口所截取的信號(hào)為:
s(m,n)=x(n)·w(n-δp·m)
那么可以認(rèn)為第m個(gè)窗口的stft變換結(jié)果為
s(m,n)=dft(x(n)·w(n-δp·m))(9)
當(dāng)然隨著窗函數(shù)的不同以及相鄰窗的間隔δp的不同,短時(shí)傅里葉變換會(huì)有不同的結(jié)果。當(dāng)窗函數(shù)由l個(gè)連續(xù)的1組成,并且有δp=l,短時(shí)傅里葉變換就回歸到切片傅里葉變換。而在上文中所介紹的連續(xù)短時(shí)傅里葉變換如果直接離散化,應(yīng)該是建立在δp=1的基礎(chǔ)之上。事實(shí)上δp的取值是非常隨意的,如果僅僅是希望同時(shí)在時(shí)域和頻域上觀察信號(hào)。
在δp等于1的前提下,可以獲得最細(xì)致的觀察步長。但是由于信號(hào)信息量的不變性,δp為1的結(jié)果更確切地說應(yīng)該是有效信息的線型組合,畢竟在δp=l的前提條件下就可以無損地保持信號(hào)的信息量了。
由于本專利討論的是需要將信號(hào)進(jìn)行重組,意味著窗函數(shù)以及步進(jìn)的選擇應(yīng)該滿足特定的等式,使信號(hào)在變換之后直接反變換可以得到原始的結(jié)果。這樣隨意選擇窗函數(shù)就會(huì)加重算法的負(fù)擔(dān)。當(dāng)然了,任意窗函數(shù)在δp=l的前提條件下都會(huì)精確地返回,但是這樣做又會(huì)與上文的dft切片沒有區(qū)別,引入難以處理的沖激響應(yīng)。
本專利提出了一種半重疊的stft方案,可以在減弱接續(xù)沖激的前提條件下完全還原原始信號(hào)。對(duì)于等式(3.9),有
s(m,n)=dft-1(s(m,n))(10)
考慮到窗函數(shù)w(n),本發(fā)明認(rèn)為逆變換的窗函數(shù)因子應(yīng)具有與之前窗函數(shù)一樣的形式:
結(jié)合之前s(m,n)的表達(dá)式,有
令
h(n)=w2(n)
利用h(n)可以將y(n)重新寫成:
為了得到完全的信號(hào)重建,要求:
其實(shí)只要滿足等式(3.12)的h(n)可以實(shí)現(xiàn)完全的信號(hào)重構(gòu)??紤]到信號(hào)的漸變效果,可以選取窗函數(shù):
此時(shí)選取
當(dāng)然,這里的n是一個(gè)偶數(shù)。所以會(huì)有
到這里為止,建立了后文將會(huì)用到的可以盡量減弱接續(xù)沖激響應(yīng)的stft模型以及逆stft模型。
在短時(shí)傅里葉變換之后得到的頻域結(jié)果可以進(jìn)行下一步的語聲音頻分離算法了。接下來的所有的處理過程都是對(duì)每一個(gè)頻點(diǎn)進(jìn)行處理。令s(m,n)為這里的輸入?yún)?shù)??紤]到信號(hào)的來源是左右聲道,結(jié)合式(2),有:
如果令:
得到下面這個(gè)簡單的等式:
這里的參數(shù)g是上文沒有出現(xiàn)的,這里假設(shè)的模型更為精確。如果語聲在后期處理的時(shí)候出現(xiàn)響度上的偏移,比如要做在耳邊唱歌的效果,g1≠g2。不過這里僅僅考慮g1=g2的情況。兩個(gè)參數(shù)具體為多少并不重要,因?yàn)?imgfile="bda0001280921870000082.gif"wi="43"he="55"img-content="drawing"img-format="gif"orientation="portrait"inline="no"/>未知。換言之,如果g1,g2同比增大,只會(huì)使
所以等式(13)可變?yōu)椋?/p>
考慮某一頻點(diǎn)除去中間部分(語聲
所以,有第一個(gè)通過假設(shè)和先驗(yàn)知識(shí)得來的附加條件,這一條件在后文也稱之為第一相差條件:
這一等式看似簡單確是求解問題的關(guān)鍵。這樣的假設(shè)其實(shí)有很多的問題,因?yàn)楝F(xiàn)在左右聲道的錄音之間的距離只有30cm左右,而對(duì)于300hz以內(nèi)的部分而言,左右聲道的相差達(dá)到90°是幾乎不可能的。因?yàn)?00hz以內(nèi)的聲波波長一定大于1米,而考慮聲源到左右聲道接入點(diǎn)的距離,會(huì)有:
只有在聲源出現(xiàn)在兩個(gè)接收器的延長線上時(shí),這一音源發(fā)出的這一頻點(diǎn)才會(huì)達(dá)到0.6π。以下具體討論對(duì)于不同頻率夾角選擇的優(yōu)化。這里仍然以
將等式(14)代入到(15)中,會(huì)有:
化簡得:
這里的θ是
將其按照二階方程進(jìn)行求解,可以得到兩個(gè)根:
考慮到能量分布的問題,這里取負(fù)號(hào)。所以:
所以需要求解的所有分量為:
接下來的工作就是代入等式(11)求解stft反變換。對(duì)得到的最后結(jié)果進(jìn)行濾波,濾除不必要的噪聲即可。
上文在對(duì)于等式(4)求解時(shí)利用了等式(5),認(rèn)為所有頻點(diǎn)的夾角的均值應(yīng)該是
另外需要考慮的是收音制式的收音角度的影響。對(duì)于兩個(gè)特定的觀測點(diǎn)——對(duì)于人類而言是左右耳,對(duì)于拾音系統(tǒng)而言是左右聲道收音器,而對(duì)于后期處理則是兩個(gè)聲音模擬的接收點(diǎn),音源位置往往在這兩個(gè)觀測點(diǎn)的前方的一個(gè)有限的收音場內(nèi),如圖2所示:
由于拾音系統(tǒng)通常情況下有一定的角度范圍,可以簡單地認(rèn)為拾音裝置p,q只能在一定角度范圍之間接收音頻,這一角度在圖中用α來表示。對(duì)于一個(gè)小型樂隊(duì)伴奏而言,對(duì)這一角度的要求往往并不是非??量?,換句話說,音源與拾音裝置的連線,與兩個(gè)拾音裝置延長線的夾角θ不是一個(gè)非常小的銳角。設(shè)想錄制交響樂的場景,拾音系位于在樂隊(duì)之前。由于交響樂團(tuán)隊(duì)的人數(shù)以及空間上的分布,拾音系統(tǒng)往往要求樂隊(duì)擺成一個(gè)扇形的陣型,并且對(duì)每一聲部有具體的要求,比如首席小提琴師無論是出于聲音效果還是傳統(tǒng)都會(huì)位于樂隊(duì)近似中心的位置。
對(duì)于音頻像點(diǎn)距離拾音系統(tǒng)的尺度以及拾音系統(tǒng)兩通道之間的距離也是值得研究的。現(xiàn)代通常情況拾音系統(tǒng)雙聲道之間的距離為:
d=30cm
而h通常情況下是1~2m,當(dāng)然這個(gè)距離往往會(huì)更加隨意一點(diǎn),而這一距離其實(shí)也暗含著后期制作時(shí)添加像點(diǎn)的距離。所以可以認(rèn)為,某一音源到達(dá)兩個(gè)拾音裝置時(shí)的相差為:
這一等式說明了:到達(dá)兩個(gè)拾音之間的相差并不會(huì)隨音源距離拾音系統(tǒng)的距離增加而出現(xiàn)距離而劇烈變化,而且由于d的確定,在低頻范圍內(nèi),
原因:在λ較大的時(shí)候,由于d較小,并且θ較大,兩個(gè)拾音裝置之間的相差是不會(huì)到達(dá)
可以給定圖2中的α上限。特別的,可以認(rèn)為所有的音源都從拾音系統(tǒng)的一邊出現(xiàn)并且:
建立在以上條件之下,對(duì)于波長為λ的聲波,到達(dá)兩個(gè)拾音裝置之間的相差最大值為θ最小的時(shí)候,而位于兩拾音設(shè)備垂直平分線上的所有音源都會(huì)不會(huì)有相差:
建立在等式(23)基礎(chǔ)之上,有:
這時(shí)對(duì)于上節(jié)中等式(15)修正為,這一等式也稱為第二相差條件:
給定這里的參數(shù)值,λ為當(dāng)前處理頻點(diǎn)的波長,
由等式(25)以及等式(14),有:
代入α,d,有:
由等式(26)可得,當(dāng)波長小于0.2819m,相差條件應(yīng)該選擇等式(15)。考慮到運(yùn)算位于頻域,并且空氣中聲波的速度為340m/s,有:
所以在檢測頻點(diǎn)小于603hz時(shí)選擇第二種相差條件,頻點(diǎn)數(shù)值大于603hz時(shí)選擇第一相差條件。給定限制條件之后就可以對(duì)方程進(jìn)行求解。在第二相差條件之下,有如下等式:
這里
考慮到音頻絕大多數(shù)能量都集中在中低頻的范圍內(nèi),而在這一范圍內(nèi),聲波在兩個(gè)拾音裝置之間(只有30cm左右),在空氣中的衰減的幅度相差并不大。具體的,由于距離相差距離較短,并且不考慮空氣吸收衰減,地面吸收衰減,僅僅考慮擴(kuò)散衰減,可以認(rèn)為聲源距離兩個(gè)拾音設(shè)備最少1m,有:
其中l(wèi)1,l2為某一聲源距離兩個(gè)拾音裝置的距離,p1,p2為聲源發(fā)出的聲波到達(dá)兩個(gè)拾音裝置的聲壓。事實(shí)上,這兩者的比值應(yīng)該略大于1,而不是靠近上式得到的結(jié)果1.69,因?yàn)檫@里聲源一般會(huì)在兩個(gè)拾音設(shè)備的正對(duì)面,而不是在側(cè)面的延長線上,并且聲源的距離也會(huì)大于1m。這一等式的意義在于給出一個(gè)變化的上界,從而方便建立下面的近似:
結(jié)合等式(28)得到這樣近似的誤差范圍:
事實(shí)上這是一個(gè)可以接受的誤差范圍。并且相信在大多數(shù)情況下,這種近似可以得到較為精確的結(jié)果。將其代入等式(27),嘗試消去
化簡得:
與等式(18)一樣的原理,將一次項(xiàng)作近似化為標(biāo)量:
一元二次方程的各項(xiàng)系數(shù)為:
求解仍然按照上文所述方案并考慮符號(hào)的統(tǒng)一性,同樣應(yīng)該取符號(hào)為負(fù)的根,原理同上,不應(yīng)該得到一個(gè)反向的左右聲道:
由于各種反射繞射衍射所致,在低頻處并不是兩邊相差幾乎為零。在這里僅簡單地寫成:
之后的操作就是在處理后的左右聲道進(jìn)行短時(shí)傅里葉變換反變換,得到時(shí)域信號(hào)。對(duì)時(shí)域信號(hào)進(jìn)行濾波處理,濾掉因?yàn)樘幚懋a(chǎn)生的高頻部分的噪聲,得到最終結(jié)果: