本發(fā)明涉及計(jì)算機(jī),更具體地,涉及一種回聲消除的方法和裝置。
背景技術(shù):
1、聲學(xué)回聲消除(acoustic?echo?cancellation,aec)在會(huì)議系統(tǒng)、車(chē)內(nèi)語(yǔ)音平臺(tái)、智能音箱交互等領(lǐng)域有著廣泛的應(yīng)用。傳統(tǒng)的線性回聲消除算法在聲學(xué)回聲路徑線性且時(shí)不變時(shí)擁有很強(qiáng)的魯棒性,并且非線性失真較小,對(duì)應(yīng)音質(zhì)損失較低,但是當(dāng)遠(yuǎn)端語(yǔ)音和近端語(yǔ)音在時(shí)域上延遲波動(dòng)性較大、揚(yáng)聲器的非線性失真顯著、聲學(xué)回聲傳播路徑多變、噪聲干擾較大時(shí),上述傳統(tǒng)的線性回聲消除算法的性能較差。
2、現(xiàn)有技術(shù)中,提出了兩種新的方案取代常見(jiàn)的線性回聲消除算法,方案一、信號(hào)處理和神經(jīng)網(wǎng)絡(luò)相結(jié)合,具體的,首先在信號(hào)處理過(guò)程中完成線性回聲抑制,然后通過(guò)神經(jīng)網(wǎng)絡(luò)完成非線性回聲抑制、降噪、去混響、自動(dòng)增益控制等功能。方案二、建立deepvqe等端到端的多任務(wù)學(xué)習(xí)網(wǎng)絡(luò)架構(gòu),同時(shí)完成聲學(xué)回聲消除、噪聲抑制、自動(dòng)增益控制等功能,具有低延遲、可操作性強(qiáng)、鏈路簡(jiǎn)單的特點(diǎn)。但是,當(dāng)信回比達(dá)到-30db以下時(shí),上述兩種方案的語(yǔ)音交互性能和魯棒性都較差。
3、綜上所述,如何在極低信回比、延遲不穩(wěn)定、回聲傳播路徑多變的情況下,較好的實(shí)現(xiàn)聲學(xué)回聲消除,提高終端設(shè)備的語(yǔ)音交互性能和魯棒性,是目前需要解決的問(wèn)題。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明實(shí)施例提供了一種回聲消除的方法和裝置,采用目標(biāo)知識(shí)蒸餾端到端回聲消除模型,在極低信回比、延遲不穩(wěn)定、回聲傳播路徑多變的情況下,較好的實(shí)現(xiàn)聲學(xué)回聲消除,提高終端設(shè)備的語(yǔ)音交互性能和魯棒性。
2、第一方面,本發(fā)明實(shí)施例提供了一種回聲消除的方法,所述方法包括:
3、獲取第一近端語(yǔ)音和第一遠(yuǎn)端語(yǔ)音;
4、將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)處理,生成預(yù)處理后的第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音;
5、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,確定聯(lián)合損失函數(shù);
6、根據(jù)所述聯(lián)合損失函數(shù)調(diào)節(jié)所述待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,生成知識(shí)蒸餾端到端回聲消除模型;
7、將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行模型壓縮,生成目標(biāo)知識(shí)蒸餾端到端回聲消除模型,其中,所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型用于實(shí)現(xiàn)回聲消除。
8、可選的,所述方法還包括:
9、將所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型部署到終端側(cè)。
10、可選的,所述將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)處理,生成預(yù)處理后的第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音,具體包括:
11、將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)加重、去除工頻干擾、加窗處理和短時(shí)傅里葉變換,生成所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音。
12、可選的,所述將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型確定聯(lián)合損失函數(shù),具體包括:
13、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型中教師分支和學(xué)生分支,分別獲取所述教師分支和學(xué)生分支的訓(xùn)練損失函數(shù);
14、根據(jù)所述教師分支的訓(xùn)練損失函數(shù)和學(xué)生分支的訓(xùn)練損失函數(shù)確定聯(lián)合損失函數(shù)。
15、可選的,所述將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型中教師分支,獲取所述教師分支的訓(xùn)練損失函數(shù),具體包括:
16、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音進(jìn)行特征提取,獲取所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征;
17、根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述教師分支的第一延遲損失和第一語(yǔ)音增強(qiáng)損失;
18、根據(jù)所述第一延遲損失和第一語(yǔ)音增強(qiáng)損失確定損失所述教師分支的訓(xùn)練損失函數(shù)。
19、可選的,所述根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述教師分支的第一延遲損失,具體包括:
20、將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述教師分支的第一時(shí)間延遲檢測(cè)模塊,生成所述第一時(shí)間延遲檢測(cè)模塊的第一預(yù)測(cè)近端語(yǔ)音信號(hào);
21、根據(jù)所述第一預(yù)測(cè)近端語(yǔ)音信號(hào)確定所述教師分支的第一延遲損失。
22、可選的,所述根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述教師分支的第一語(yǔ)音增強(qiáng)損失,具體包括:
23、將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述教師分支的第一時(shí)間延遲檢測(cè)模塊,生成第一預(yù)測(cè)近端語(yǔ)音信號(hào);
24、將所述第一預(yù)測(cè)近端語(yǔ)音信號(hào)輸入到編碼層、瓶頸層、解碼層、復(fù)數(shù)譜卷積映射層和數(shù)據(jù)框架濾波器,生成第一預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào);
25、根據(jù)所述第一預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào)確定所述教師分支的第一語(yǔ)音增強(qiáng)損失。
26、可選的,所述根據(jù)所述第一延遲損失和第一語(yǔ)音增強(qiáng)損失確定損失所述教師分支的訓(xùn)練損失函數(shù),具體包括:
27、確定所述第一延遲損失與第一權(quán)重的第一乘積,以及所述第一語(yǔ)音增強(qiáng)損失與第二權(quán)重的第二乘積;
28、將所述第一乘積與所述第二乘積的和值確定為所述教師分支的訓(xùn)練損失函數(shù)。
29、可選的,所述將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型中學(xué)生分支,獲取所述學(xué)生分支的訓(xùn)練損失函數(shù),具體包括:
30、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音進(jìn)行特征提取,獲取所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征;
31、根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述學(xué)生分支的第二延遲損失和第二語(yǔ)音增強(qiáng)損失;
32、根據(jù)所述第二延遲損失和第二語(yǔ)音增強(qiáng)損失確定損失所述學(xué)生分支的訓(xùn)練損失函數(shù)。
33、可選的,所述根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述學(xué)生分支的第二延遲損失,具體包括:
34、將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述學(xué)生分支的第二時(shí)間延遲檢測(cè)模塊,生成第二預(yù)測(cè)近端語(yǔ)音信號(hào);
35、根據(jù)所述第二預(yù)測(cè)近端語(yǔ)音信號(hào)確定所述學(xué)生分支的第二延遲損失。
36、可選的,所述根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述學(xué)生分支的第一語(yǔ)音增強(qiáng)損失,具體包括:
37、將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述學(xué)生分支的第二時(shí)間延遲檢測(cè)模塊,生成所述第二時(shí)間延遲檢測(cè)模塊的第二預(yù)測(cè)近端語(yǔ)音信號(hào);
38、將所述第二預(yù)測(cè)近端語(yǔ)音信號(hào)輸入到編碼層、瓶頸層、解碼層、復(fù)數(shù)譜卷積映射層和數(shù)據(jù)框架濾波器,生成第二預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào);
39、根據(jù)所述第二預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào)確定所述學(xué)生分支的第二語(yǔ)音增強(qiáng)損失。
40、可選的,所述根據(jù)所述第二延遲損失和第二語(yǔ)音增強(qiáng)損失確定損失所述學(xué)生分支的訓(xùn)練損失函數(shù),具體包括:
41、確定所述第二延遲損失與第三權(quán)重的第三乘積,以及所述第二語(yǔ)音增強(qiáng)損失與第四權(quán)重的第四乘積;
42、將所述第三乘積與所述第四乘積的和值確定為所述學(xué)生分支的訓(xùn)練損失函數(shù)。
43、可選的,所述根據(jù)所述教師分支的訓(xùn)練損失函數(shù)和學(xué)生分支的訓(xùn)練損失函數(shù)確定聯(lián)合損失函數(shù),具體包括:
44、確定所述學(xué)生分支的訓(xùn)練損失函數(shù)與設(shè)定參數(shù)的乘積,其中,所述設(shè)定參數(shù)表示所述教師分支和所述學(xué)生分支之間的kl散度;
45、將所述乘積與所述教師分支的訓(xùn)練損失函數(shù)的和值確定為所述聯(lián)合損失函數(shù)。
46、可選的,所述將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行模型壓縮,生成目標(biāo)知識(shí)蒸餾端到端回聲消除模型,具體包括:
47、將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行在線量化,生成torch模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型;
48、將所述torch模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型經(jīng)過(guò)開(kāi)放式神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換onnx,生成onnx模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型;
49、將所述onnx模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型經(jīng)過(guò)mnn推理引擎,生成所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型。
50、第二方面,本發(fā)明實(shí)施例提供了一種回聲消除的方法,所述方法包括:
51、獲取待處理信號(hào);
52、將所述待處理信號(hào)輸入到目標(biāo)知識(shí)蒸餾端到端回聲消除模型,生成目標(biāo)信號(hào),其中,所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型部署在終端側(cè)用于實(shí)現(xiàn)回聲消除。第三方面,本發(fā)明實(shí)施例提供了一種回聲消除的裝置,所述裝置包括:
53、獲取單元,用于獲取第一近端語(yǔ)音和第一遠(yuǎn)端語(yǔ)音;
54、處理單元,用于將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)處理,生成預(yù)處理后的第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音;
55、確定單元,用于將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,確定聯(lián)合損失函數(shù);
56、生成單元,用于根據(jù)所述聯(lián)合損失函數(shù)調(diào)節(jié)所述待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,生成知識(shí)蒸餾端到端回聲消除模型;
57、所述生成單元還用于,將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行模型壓縮,生成目標(biāo)知識(shí)蒸餾端到端回聲消除模型,其中,所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型用于實(shí)現(xiàn)回聲消除。
58、可選的,所述裝置還包括:
59、部署單元,用于將所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型部署到終端側(cè)。
60、可選的,所述處理單元具體用于:
61、將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)加重、去除工頻干擾、加窗處理和短時(shí)傅里葉變換,生成所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音。
62、可選的,所述確定單元具體用于:
63、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型中教師分支和學(xué)生分支,分別獲取所述教師分支和學(xué)生分支的訓(xùn)練損失函數(shù);
64、根據(jù)所述教師分支的訓(xùn)練損失函數(shù)和學(xué)生分支的訓(xùn)練損失函數(shù)確定聯(lián)合損失函數(shù)。
65、可選的,所述確定單元具體還用于:
66、將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音進(jìn)行特征提取,獲取所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征;
67、根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述教師分支的第一延遲損失和第一語(yǔ)音增強(qiáng)損失;
68、根據(jù)所述第一延遲損失和第一語(yǔ)音增強(qiáng)損失確定損失所述教師分支的訓(xùn)練損失函數(shù)。
69、可選的,所述確定單元具體還用于:將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述教師分支的第一時(shí)間延遲檢測(cè)模塊,生成所述第一時(shí)間延遲檢測(cè)模塊的第一預(yù)測(cè)近端語(yǔ)音信號(hào);
70、根據(jù)所述第一預(yù)測(cè)近端語(yǔ)音信號(hào)確定所述教師分支的第一延遲損失。
71、可選的,所述確定單元具體還用于:將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述教師分支的第一時(shí)間延遲檢測(cè)模塊,生成第一預(yù)測(cè)近端語(yǔ)音信號(hào);
72、將所述第一預(yù)測(cè)近端語(yǔ)音信號(hào)輸入到編碼層、瓶頸層、解碼層、復(fù)數(shù)譜卷積映射層和數(shù)據(jù)框架濾波器,生成第一預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào);
73、根據(jù)所述第一預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào)確定所述教師分支的第一語(yǔ)音增強(qiáng)損失。
74、可選的,所述確定單元具體還用于:確定所述第一延遲損失與第一權(quán)重的第一乘積,以及所述第一語(yǔ)音增強(qiáng)損失與第二權(quán)重的第二乘積;
75、將所述第一乘積與所述第二乘積的和值確定為所述教師分支的訓(xùn)練損失函數(shù)。
76、可選的,所述確定單元具體還用于:將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音進(jìn)行特征提取,獲取所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征;
77、根據(jù)所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征,確定所述學(xué)生分支的第二延遲損失和第二語(yǔ)音增強(qiáng)損失;
78、根據(jù)所述第二延遲損失和第二語(yǔ)音增強(qiáng)損失確定損失所述學(xué)生分支的訓(xùn)練損失函數(shù)。
79、可選的,所述確定單元具體還用于:將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述學(xué)生分支的第二時(shí)間延遲檢測(cè)模塊,生成第二預(yù)測(cè)近端語(yǔ)音信號(hào);
80、根據(jù)所述第二預(yù)測(cè)近端語(yǔ)音信號(hào)確定所述學(xué)生分支的第二延遲損失。
81、可選的,所述確定單元具體還用于:將所述第二近端語(yǔ)音的特征和所述第二遠(yuǎn)端語(yǔ)音的特征輸入到所述學(xué)生分支的第二時(shí)間延遲檢測(cè)模塊,生成所述第二時(shí)間延遲檢測(cè)模塊的第二預(yù)測(cè)近端語(yǔ)音信號(hào);
82、將所述第二預(yù)測(cè)近端語(yǔ)音信號(hào)輸入到編碼層、瓶頸層、解碼層、復(fù)數(shù)譜卷積映射層和數(shù)據(jù)框架濾波器,生成第二預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào);
83、根據(jù)所述第二預(yù)測(cè)目標(biāo)語(yǔ)音信號(hào)確定所述學(xué)生分支的第二語(yǔ)音增強(qiáng)損失。
84、可選的,所述確定單元具體還用于:確定所述第二延遲損失與第三權(quán)重的第三乘積,以及所述第二語(yǔ)音增強(qiáng)損失與第四權(quán)重的第四乘積;
85、將所述第三乘積與所述第四乘積的和值確定為所述學(xué)生分支的訓(xùn)練損失函數(shù)。
86、可選的,所述確定單元具體還用于:確定所述學(xué)生分支的訓(xùn)練損失函數(shù)與設(shè)定參數(shù)的乘積,其中,所述設(shè)定參數(shù)表示所述教師分支和所述學(xué)生分支之間的kl散度;
87、將所述乘積與所述教師分支的訓(xùn)練損失函數(shù)的和值確定為所述聯(lián)合損失函數(shù)。
88、可選的,所述生成單元具體用于:
89、將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行在線量化,生成torch模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型;
90、將所述torch模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型經(jīng)過(guò)開(kāi)放式神經(jīng)網(wǎng)絡(luò)轉(zhuǎn)換onnx,生成onnx模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型;
91、將所述onnx模型結(jié)構(gòu)的知識(shí)蒸餾端到端回聲消除模型經(jīng)過(guò)mnn推理引擎,生成所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型。
92、可選的,所述獲取單元還用于:獲取待處理信號(hào);
93、所述生成單元還用于:將所述待處理信號(hào)輸入到目標(biāo)知識(shí)蒸餾端到端回聲消除模型,生成目標(biāo)信號(hào)。
94、第四方面,本發(fā)明實(shí)施例提供了一種電子設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器用于存儲(chǔ)一條或多條計(jì)算機(jī)程序指令,其中,所述一條或多條計(jì)算機(jī)程序指令被所述處理器執(zhí)行以實(shí)現(xiàn)如第一方面、第一方面任一種可能或第二方面中任一項(xiàng)所述的方法。
95、第五方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)計(jì)算機(jī)程序指令,所述計(jì)算機(jī)程序指令在被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第一方面、第一方面任一種可能或第二方面中任一項(xiàng)所述的方法。
96、本發(fā)明實(shí)施例中,通過(guò)獲取第一近端語(yǔ)音和第一遠(yuǎn)端語(yǔ)音;將所述第一近端語(yǔ)音和所述第一遠(yuǎn)端語(yǔ)音進(jìn)行預(yù)處理,生成預(yù)處理后的第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音;將所述第二近端語(yǔ)音和第二遠(yuǎn)端語(yǔ)音分別輸入到待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,確定聯(lián)合損失函數(shù);根據(jù)所述聯(lián)合損失函數(shù)調(diào)節(jié)所述待訓(xùn)練的知識(shí)蒸餾端到端回聲消除模型,生成知識(shí)蒸餾端到端回聲消除模型;將所述知識(shí)蒸餾端到端回聲消除模型進(jìn)行模型壓縮,生成目標(biāo)知識(shí)蒸餾端到端回聲消除模型,其中,所述目標(biāo)知識(shí)蒸餾端到端回聲消除模型用于實(shí)現(xiàn)回聲消除。通過(guò)上述方法,生成目標(biāo)知識(shí)蒸餾端到端回聲消除模型,該目標(biāo)知識(shí)蒸餾端到端回聲消除模型可以在極低信回比、延遲不穩(wěn)定、回聲傳播路徑多變的情況下,較好的實(shí)現(xiàn)聲學(xué)回聲消除,提高終端設(shè)備的語(yǔ)音交互性能和魯棒性。