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