一種音頻合成處理方法及系統的制作方法
【專利摘要】本發明提供了一種音頻合成處理方法及系統。所述方法包括:采集當前幀的多個參與方的語音數據;計算每一參與方的當前幀的語音數據與上一幀的語音數據的差值,生成所述每一參與方的當前幀的語音差值數據;根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置衰減等級和符號位;將每一參與方的當前幀的設置衰減等級和符號位后的語音差值數據進行累加后,與上一幀的混音數據相加,生成當前幀的混音數據。本發明可以有效消除背景噪音的同時,也有效的消除了在語音數據中的直流偏置。并且,本發明涉及的算法簡單,控制簡單且占用資源少,可以簡單實現多達64個參與方的混音,方便在一些低成本的混音設計中實現。
【專利說明】
一種音頻合成處理方法及系統
技術領域
[0001] 本發明涉及聲音處理領域,尤其涉及一種音頻合成處理方法及系統。
【背景技術】
[0002] 在通信過程中,常使用混音來滿足各種產品的設計需求。在目前的混音設計中,采 用語音數據相加、語音數據加權相加等算法來實現混音,也可通過采用模擬信號進行混音。 使用以上算法進行混音,算法簡單,但同時都存在參與方多情況下,背景噪音大,發言人聲 音小等不足之處也十分明顯。
[0003] 目前的混音算法普遍適用于10方以下的混音,而使用超過10方以上的混音時,又 需要采用復雜的算法,占用大量的CHJ資源進行計算。
【發明內容】
[0004] 本發明提出一種音頻合成處理方法及系統,以解決現有技術中的混音算法復雜, 占用CHJ資源較多的問題。
[0005] 為了達到上述目的,本發明實施例提供一種音頻合成處理方法,包括:采集當前幀 的多個參與方的語音數據;計算每一參與方的當前幀的語音數據與上一幀的語音數據的差 值,生成所述每一參與方的當前幀的語音差值數據;根據參與方的數量,為所述每一參與方 的當前幀的語音差值數據設置衰減等級和符號位;將每一參與方的當前幀的設置衰減等級 和符號位后的語音差值數據進行累加后,與上一幀的混音數據相加,生成當前幀的混音數 據。
[0006] 進一步地,在一實施例中,計算每一參與方的當前幀的語音數據與上一幀的語音 數據的差值,生成所述每一參與方的當前幀的語音差值數據,包括:當所述參與方在當前幀 剛加入混音時,差值為所述參與方在當前幀的語音數據;當所述參與方在當前幀離開混音 時,差值為〇減去所述參與方在上一幀的語音數據;當所述參與方繼續在混音時,差值為所 述參與方在當前幀的數據減去所述參與方在上一幀的語音數據;當所述參與方在當前幀禁 止時,差值為0。
[0007] 進一步地,在一實施例中,根據參與方的數量,為所述每一參與方的當前幀的語音 差值數據設置衰減等級,包括:所述衰減等級的數值根據所述參與方的數量的逐漸增多而 減小。
[0008] 進一步地,在一實施例中,根據參與方的數量,為所述每一參與方的當前幀的語音 差值數據設置符號位,包括:當所述參與方為偶數時,對其兩兩設置相反的符號位。
[0009] 進一步地,在一實施例中,還包括:在進行語音差值數據的累加和上一幀的混音數 據相加時,進行溢出的控制。
[0010] 為了達到上述目的,本發明實施例還提供一種音頻合成處理系統,包括:語音數據 采集模塊,用于采集當前幀的多個參與方的語音數據;差值數據計算模塊,用于計算每一參 與方的當前幀的語音數據與上一幀的語音數據的差值,生成所述每一參與方的當前幀的語 音差值數據;參數設置模塊,用于根據參與方的數量,為所述每一參與方的當前幀的語音差 值數據設置衰減等級和符號位;混音模塊,用于將每一參與方的當前幀的設置衰減等級和 符號位后的語音差值數據進行累加后,與上一幀的混音數據相加,生成當前幀的混音數據。
[0011] 本發明實施例的音頻合成處理方法及系統采用了差值相加的方式進行,并通過設 定不同的符號位來消除背景噪音,通過僅僅將參與方的語音變化量,即差值添加到混音累 加值中,可以有效消除背景噪音的同時,也有效的消除了在語音數據中的直流偏置。并且, 本發明涉及的算法簡單,控制簡單且占用資源少,可以簡單實現多達64個參與方的混音,方 便在一些低成本的混音設計中實現。
【附圖說明】
[0012] 為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發明的一些實施例,對于本領域技術人員來講,在不付出創造性勞動性的前提下,還可以根 據這些附圖獲得其他的附圖。
[0013] 圖1為本發明實施例的音頻和成處理方法的處理流程圖; 圖2為本發明實施例的音頻和成處理系統的結構示意圖; 圖3為本發明實施例的參數設置模塊的結構示意圖。
【具體實施方式】
[0014] 下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他 實施例,都屬于本發明保護的范圍。
[0015] 首先,本發明的音頻合成處理方法所涉及的現有的算法原理如下: 在現有技術中,很多混音算法采用方式的表達式為:
其中,m表示參與方的數量,:??表示t時刻的語音數據,η表示每個參與方的權值,一 般來說η < 1。
[0016] 如果當每個參與方的語音數據XCO存在較大的噪音#的時,會導致參與方數量多 時,正確語音數據被淹沒在噪音中,無法獲取。
[00171 亦公忒Π )由.熄JTffi由弓丨入嚙咅徨至丨丨,
在混音過程中,認為各個參與方的語音數據中的噪音是一個變化較慢的數據,可以作 為一個常暈來進行處理,因此,從公式(3)推導得到:
M苜昇,一取?肯/兄系B有一T現少M兒個參與方發言,由于需要進行取平均的算 法,避免溢出,因此必然導致信噪比的降低。
[0018] 針對現有技術中存在的上述問題,本發明采用了差值相加的方式進行,并通過設 定不同的符號位來消除背景噪音,并有效抑制了相對不進行變化的分量(例如:直流偏置)。 因此,本發明的算法簡單,控制簡單、占用資源少,方便在一些低成本的設計中應用。
[0019] 圖1為本發明實施例的音頻和成處理方法的處理流程圖。如圖1所示,包括: 步驟S101,采集當前幀的多個參與方的語音數據; 步驟S102,計算每一參與方的當前幀的語音數據與上一幀的語音數據的差值,生成所 述每一參與方的當前幀的語音差值數據; 步驟S103,根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置衰減 等級和符號位; 步驟S104,將每一參與方的當前幀的設置衰減等級和符號位后的語音差值數據進行累 加后,與上一幀的混音數據相加,生成當前幀的混音數據。
[0020] 具體實施時,在步驟SlOl中,采集當前幀的多個參與方的語音數據,包括以下幾種 情況: (1)上一幀已經加入了混音,當前幀也加入了混音的參與方; (2 )上一幀沒有加入混音,當前幀剛剛加入混音的參與方,即新的參與方; (3) 上一幀已經加入了混音,當前幀也加入了混音,但是禁止參與混音的參與方; (4) 上一幀加入了混音,當前幀離開混音的參與方。
[0021] 當為第(1)種情形時,采集該種參與方的當前幀的語音數據,即為當前幀的真實有 效的語音數據;當為第(2)種情形時,采集該種參與方的當前幀的語音數據,即為當前幀的 真實有效的語音數據;當為第(3)種情形時,采集該種參與方的當前幀的語音數據,即為當 前幀的真實有效的語音數據,但是在計算差值數據時,不參與計算,即差值為〇;當為第(4) 種情形時,采集該種參與方的當前幀的語音數據為〇。
[0022] 具體實施時,在步驟S102中,計算每一參與方的當前幀的語音數據與上一幀的語 音數據的差值,生成所述每一參與方的當前幀的語音差值數據,包括以下幾種狀態: (1) 當所述參與方在當前幀剛加入混音時,語音差值數據為所述參與方在當前幀的語 音數據; (2) 當所述參與方在當前幀離開混音時,語音差值數據為0減去所述參與方在上一幀的 語音數據; (3) 當所述參與方繼續在混音時,語音差值數據為所述參與方在當前幀的數據減去所 述參與方在上一幀的語音數據; (4) 當所述參與方在當前幀被禁止混音時,語音差值數據為0。
[0023] 其中,表示為計算機程序語言如下: //禁止混音時 { 差值DIFF = 0 } //參與方剛進入混音時, { 差值 DIFF = MemberF rame(N) } //參與方離開混音時 { 差值 DIFF - O - MenibGrFrame(N-I) } //參與方在混音中時, { 差值 DIFF = MemberF rame (N) - MenibGrFrame(N-I) } 其中,MemberFrame(N)表;^該參與方在第N幀時的語音數據,MemberFrame(N-I)表;^該參與 方在第N-I幀時的語音數據。
[0024] 具體實施時,在步驟S103中,根據參與方的數量,為所述每一參與方的當前幀的語 音差值數據設置衰減等級,例如:當所述參與方為3個時,設置衰減等級為0.95;當所述參與 方為4個時,設置衰減等級為0.92。當然,衰減等級的設置并不限于上述數值,其根據本領域 技術人員的經驗評估得到,并根據參與方的逐漸增多而逐漸減小。例如,一個較優實施例 中,可以設置參與方為2-17時的衰減等級依次為:I,0.944,0.891,0.841,0.794,0.750, 0.708,0.668,0.631,0.596,0.562,0.531,0.501,0.473,0.447,0.422。
[0025] 具體實施時,在步驟S103中,根據參與方的數量,為所述每一參與方的當前幀的語 音差值數據設置符號位,包括:當所述參與方為偶數時,對其兩兩設置相反的符號位。權重 和符號位取反都是有效降低混音的背景噪音的方法。符號位取反在偶數情況下,能最大程 度上減少背景噪音。也就說是,其中一個參與方的符號位為正,對應另一個參與方的符號位 為負,必須這樣兩兩對應設置相反的符號位,才能達到太#日日路低皆暑·噪音的效果。
[0026] 舉例說明,現有技術在實現方式上都是采用
原始語音數據累加 的方式進行混音。即:第t幀數據,四個參與方的混音值為Y(t),第五個參與方的語音數據為 X5(t),此時五個參與方的混音值為Z(t) = Y(t) + X5(t)。
[0027] 而本發明實施例中,采用了差值相加的方式進行,即: 第t幀數據,四個參與方的混音值為Y(t),第五個參與方剛參與混音中,差值為DIFF = X5(t) - 0;此時五個參與方的混音值為Z(t) = Y(t) + DIFF = Y(t) + (X5(t) - 0) = Y (t) + X5(t),從算式可以發現第t幀第五個參與方的語音數據存在于混音值當Z(t)中,能 實現混音功能。
[0028]第t+Ι幀數據,第五個參與方語音的差值為:DIFF = X5(t+1) - X5(t),五個參與 方的混音值為:z(t+l) = Z(t) + DIFF = Y(t) + X5(t) + (X5(t+1) - X5(t))= Y(t) + X5(t+1),從算式可以發現第t+1幀第五個參與方的語音數據存在于混音值Z(t+1)當中。
[0029] 由以上的計算可以看出,在本發明的混音算法的過程中,由于借用上一次混音的 結果與差值進行累加,可以將第五個參與者的語音數據添加到累加值中,實現混音。
[0030] 但是,在現實環境中,不可不免存在有背景噪音在實際環境中不可不免存在有背 景噪音N(t),在本發明中,通過設置符號位取反和不同權重的算法,能有效消除特定環境下 的背景噪音,舉例如下: 第t幀數據,四個參與方的混音值為Y(t),第五個參與方剛參與混音中,差值為DIFF5 = X5(t)+N(t)-0;設定權重為-η;第六個參與方剛參與混音中,差值為DIFF6 = X6(t)+N(t)_ 〇;設定權重為η。
[0031] 六個參與方的混音值為: Z(t) = Y(t) + DIFF5 + DIFF6 =Y(t) + n*(X5(t)+N(t)) -n*(X6(t)+N(t)) =Y(t) + n*X5(t) + n*N(t) - n*X6(t) - n*N(t) =Y(t) + n*X5(t) - n*X6(t) 從算式可以發現第t幀第五個參與方和第六個參與方的語音數據的存在噪音被消除 了,提高了語音信號的信噪比。
[0032] 但是該方法僅能在一定環境中有效消除背景噪音,例如同一個房間,因此本發明 實現的是低成本的混音方案。
[0033] 具體實施時,在步驟S104中,將每一參與方的當前幀的設置衰減等級和符號位后 的語音差值數據進行累加后,與上一幀的混音數據相加,生成當前幀的混音數據,公式表達 為:
) HI幀的混音數據, Y為設置的衰減等級,DIFF為語音差值數據,m為參與方的數量。
[0034] 當然,這種對語音數據直接疊加的方法極易產生溢出,因此,在進行語音數據的累 加時,還需要進行溢出的控制。在本一實施例中,可以采用如下方法進行溢出控制: //如果存在正向溢出 If(Conf_sum(N) > Conf_max) { Conf_sum(N) = Conf_max } //如果存在負向溢出 If(Conf_sum(N) < Conf_min) { Conf_sum(N) = Conf_min } 當然,對語音數據疊加的溢出控制算法已經是本領域技術人員所熟知的技術手段,這 不是本發明所要保護的創新點,采用其他溢出算法也不會對本發明的創新點造成影響,故 本發明中不再贅述。
[0035] 基于同一發明構思,本發明實施例還提供一種音頻合成處理系統,如圖2所示,包 括:語音數據采集模塊101,用于采集當前幀的多個參與方的語音數據;差值數據計算模塊 102,用于計算每一參與方的當前幀的語音數據與上一幀的語音數據的差值,生成所述每一 參與方的當前幀的語音差值數據;參數設置模塊103,用于根據參與方的數量,為所述每一 參與方的當前幀的語音差值數據設置衰減等級和符號位;混音模塊104,用于將每一參與方 的當前幀的設置衰減等級和符號位后的語音差值數據進行累加后,與上一幀的混音數據相 加,生成當前幀的混音數據。
[0036] 具體實施時,所述差值數據計算模塊102用于計算當前幀的語音差值數據,具體包 括:當所述參與方在當前幀剛加入混音時,差值為所述參與方在當前幀的語音數據;當所述 參與方在當前幀離開混音時,差值為0減去所述參與方在上一幀的語音數據;當所述參與方 繼續在混音時,差值為所述參與方在當前幀的數據減去所述參與方在上一幀的語音數據; 當所述參與方在當前幀禁止時,差值為〇。
[0037] 具體實施時,如圖3所示,所述參數設置模塊103包括衰減等級設置模塊1031,其用 于根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置衰減等級,包括:當 參與方為3個時,設置衰減等級為0.95;當參與方為4個時,設置衰減等級為0.92。
[0038] 具體實施時,如圖3所示,所述參數設置模塊103還包括符號位設置模塊1032,其用 于根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置符號位,包括:當所 述參與方為偶數時,對其兩兩設置相反的符號位。
[0039] 在本發明中,所述混音模塊104中包括有溢出控制模塊,用于在進行語音差值數據 的累加和上一幀的混音數據相加時,進行溢出的控制。
[0040] 通過實驗得到,使用本發明的音頻合成處理方法可以實現64方成員參與到混音 中,有一定背景噪音,但發言人的語音能被其他成員清晰接收到。而采用非本算法實現的混 音,在12方成員參與混音后,就出現背景噪音過大,將發言人語音淹沒在噪音中的情況。
[0041] 通過以上實施例可以得到,本發明實施例的音頻合成處理方法及系統采用了差值 相加的方式進行,并通過設定不同的符號位來消除背景噪音,通過僅僅將參與方的語音變 化量,即差值添加到混音累加值中,可以有效消除背景噪音的同時,也有效的消除了在語音 數據中的直流偏置。并且,本發明涉及的算法簡單,控制簡單且占用資源少,可以簡單實現 多達64個參與方的混音,方便在一些低成本的混音設計中實現。
[0042]本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序 產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實 施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機 可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產 品的形式。
[0043] 本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程 圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流 程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序 指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產 生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實 現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0044] 這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特 定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指 令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或 多個方框中指定的功能。
[0045] 這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計 算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或 其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一 個方框或多個方框中指定的功能的步驟。
[0046]本發明中應用了具體實施例對本發明的原理及實施方式進行了闡述,以上實施例 的說明只是用于幫助理解本發明的方法及其核心思想;同時,對于本領域的一般技術人員, 依據本發明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內 容不應理解為對本發明的限制。
【主權項】
1. 一種音頻合成處理方法,其特征在于,包括: 采集當前幀的多個參與方的語音數據; 計算每一參與方的當前幀的語音數據與上一幀的語音數據的差值,生成所述每一參與 方的當前幀的語音差值數據; 根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置衰減等級和符號 位; 將每一參與方的當前幀的設置衰減等級和符號位后的語音差值數據進行累加后,與上 一幀的混音數據相加,生成當前幀的混音數據。2. 根據權利要求1所述的音頻合成處理方法,其特征在于,計算每一參與方的當前幀的 語音數據與上一幀的語音數據的差值,生成所述每一參與方的當前幀的語音差值數據,包 括: 當所述參與方在當前幀剛加入混音時,差值為所述參與方在當前幀的語音數據; 當所述參與方在當前幀離開混音時,差值為〇減去所述參與方在上一幀的語音數據; 當所述參與方繼續在混音時,差值為所述參與方在當前幀的數據減去所述參與方在上 一幀的語音數據; 當所述參與方在當前幀禁止時,差值為0。3. 根據權利要求1所述的音頻合成處理方法,其特征在于,根據參與方的數量,為所述 每一參與方的當前幀的語音差值數據設置衰減等級,包括: 所述衰減等級的數值根據所述參與方的數量的逐漸增多而減小。4. 根據權利要求1所述的音頻合成處理方法,其特征在于,根據參與方的數量,為所述 每一參與方的當前幀的語音差值數據設置符號位,包括: 當所述參與方為偶數時,對其兩兩設置相反的符號位。5. 根據權利要求1所述的音頻合成處理方法,其特征在于,還包括: 在進行語音差值數據的累加和上一幀的混音數據相加時,進行溢出的控制。6. -種音頻合成處理系統,其特征在于,包括: 語音數據采集模塊,用于采集當前幀的多個參與方的語音數據; 差值數據計算模塊,用于計算每一參與方的當前幀的語音數據與上一幀的語音數據的 差值,生成所述每一參與方的當前幀的語音差值數據; 參數設置模塊,用于根據參與方的數量,為所述每一參與方的當前幀的語音差值數據 設置衰減等級和符號位; 混音模塊,用于將每一參與方的當前幀的設置衰減等級和符號位后的語音差值數據進 行累加后,與上一幀的混音數據相加,生成當前幀的混音數據。7. 根據權利要求6所述的音頻合成處理系統,其特征在于,所述差值數據計算模塊用于 計算當前幀的語音差值數據,具體包括: 當所述參與方在當前幀剛加入混音時,差值為所述參與方在當前幀的語音數據; 當所述參與方在當前幀離開混音時,差值為〇減去所述參與方在上一幀的語音數據; 當所述參與方繼續在混音時,差值為所述參與方在當前幀的數據減去所述參與方在上 一幀的語音數據; 當所述參與方在當前幀禁止時,差值為0。8. 根據權利要求6所述的音頻合成處理系統,其特征在于,所述參數設置模塊包括衰減 等級設置模塊,其用于根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設 置衰減等級,包括: 所述衰減等級的數值根據所述參與方的數量的逐漸增多而減小。9. 根據權利要求6所述的音頻合成處理系統,其特征在于,所述參數設置模塊包括符號 位設置模塊,其用于根據參與方的數量,為所述每一參與方的當前幀的語音差值數據設置 符號位,包括: 當所述參與方為偶數時,對其兩兩設置相反的符號位。10. 根據權利要求6所述的音頻合成處理系統,其特征在于,所述混音模塊中包括有:溢 出控制模塊,用于在進行語音差值數據的累加和上一幀的混音數據相加時,進行溢出的控 制。
【文檔編號】G10L13/02GK106057191SQ201610334168
【公開日】2016年10月26日
【申請日】2016年5月19日
【發明人】魏天云, 張偉, 吳秋平
【申請人】廣州頤希頡信息科技有限公司