亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種回聲消除方法及裝置制造方法

文檔序號:2827746閱讀:180來源:國知局
一種回聲消除方法及裝置制造方法
【專利摘要】本申請公開了一種回聲消除方法及裝置,所述方法包括:分別啟動錄音線程與放音線程;所述錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;所述放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放;對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步;對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。本申請?jiān)谶M(jìn)行回聲消除之前對錄音數(shù)據(jù)與放音數(shù)據(jù)進(jìn)行時間同步,能夠提高回聲消除的效率與質(zhì)量,從而提供高品質(zhì)的錄音數(shù)據(jù),可以應(yīng)用于移動終端上的通話、娛樂等與錄音相關(guān)的應(yīng)用上。
【專利說明】一種回聲消除方法及裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字音頻處理領(lǐng)域,尤其涉及一種回聲消除方法及裝置。

【背景技術(shù)】
[0002]近年來隨著移動互聯(lián)網(wǎng)的發(fā)展,如(601(1(安卓)系統(tǒng)與蘋果公司開發(fā)的103系統(tǒng)已經(jīng)成為智能手機(jī)上的兩大主流系統(tǒng)。如^01(1系統(tǒng)更以其開源的優(yōu)勢,在智能手機(jī)中占據(jù)著大多數(shù)的席位。系統(tǒng)與103系統(tǒng)之間存在著諸多的差別。
[0003]語音通話中的回聲是在進(jìn)行語音通話的時候,揚(yáng)聲器中播放的對方的聲音通過麥克風(fēng)再次被錄入,進(jìn)而與本方的聲音一同被傳輸給對方,這樣會使對方聽到自己的聲音,類似對著山谷大喊產(chǎn)生的回聲?;芈曄褪且鸦芈曄簦褪撬^的回聲消除算法,將從揚(yáng)聲器播放的聲音從錄音里消除掉,保證通話的清晰。
[0004]大多數(shù)的智能手機(jī)并沒有回聲消除,即使有回聲消除,現(xiàn)有的回聲消除的效果也比較差,在進(jìn)行通話以及其他需要錄音的場景中,聲音的品質(zhì)不佳。


【發(fā)明內(nèi)容】

[0005]本發(fā)明要解決的技術(shù)問題是提供一種回聲消除方法及裝置,能夠改善回聲消除的效果,提供高品質(zhì)的錄音數(shù)據(jù)。
[0006]為解決上述技術(shù)問題,本申請的一種回聲消除方法,包括:
[0007]分別啟動錄音線程與放音線程;
[0008]所述錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;所述放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放;
[0009]對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步;
[0010]對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
[0011]進(jìn)一步地,所述分別啟動錄音線程與放音線程,包括:首先啟動放音線程,放音線程啟動后,再啟動錄音線程;
[0012]所述對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除所述時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
[0013]進(jìn)一步地,所述分別啟動錄音線程與放音線程,包括:首先啟動錄音線程,錄音線程啟動后,再啟動放音線程;
[0014]所述對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加所述時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
[0015]進(jìn)一步地,采用以下方法計(jì)算所述時間差,包括:
[0016]記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將所述從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與所述音頻播放開始時間的差值。
[0017]進(jìn)一步地,所述根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,包括:
[0018]錄音數(shù)據(jù)量=采樣率#采樣位寬占字節(jié)數(shù)#時間差#聲道數(shù)。
[0019]進(jìn)一步地,一種回聲消除裝置,包括:啟動單元、錄音單元、放音單元、同步單元和回聲消除單元,其中:
[0020]所述啟動單元,用于分別啟動錄音線程與放音線程;
[0021]所述錄音單元,用于承載所述錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;
[0022]所述放音單元,用于承載所述放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放;
[0023]所述同步單元,用于對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步;
[0024]所述回聲消除單元,用于對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
[0025]進(jìn)一步地,所述啟動單元分別啟動錄音線程與放音線程,包括:首先啟動放音線程,放音線程啟動后,再啟動錄音線程;
[0026]所述同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除所述時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
[0027]進(jìn)一步地,所述啟動單元分別啟動錄音線程與放音線程,包括:首先啟動錄音線程,錄音線程啟動后,再啟動放音線程;
[0028]所述同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加所述時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
[0029]進(jìn)一步地,所述同步單元采用以下方法計(jì)算所述時間差,包括:記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將所述從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與所述音頻播放開始時間的差值。
[0030]進(jìn)一步地,所述同步單元所述根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,包括:錄音數(shù)據(jù)量=采樣率#采樣位寬占字節(jié)數(shù)#時間差#聲道數(shù)。
[0031]綜上所述,本申請?jiān)谶M(jìn)行回聲消除之前對錄音數(shù)據(jù)與放音數(shù)據(jù)進(jìn)行時間同步,能夠提高回聲消除的效率與質(zhì)量,從而提供高品質(zhì)的錄音數(shù)據(jù),可以應(yīng)用于移動終端上的通話、娛樂等與錄音相關(guān)的應(yīng)用上。

【專利附圖】

【附圖說明】
[0032]圖1為本申請的回聲消除方法的流程圖;
[0033]圖2為本申請中從放音數(shù)據(jù)隊(duì)列中去除數(shù)據(jù)實(shí)現(xiàn)同步的示意圖;
[0034]圖3為本申請中在放音數(shù)據(jù)隊(duì)列中添加靜音數(shù)據(jù)實(shí)現(xiàn)同步的示意圖;
[0035]圖4為本申請的回聲消除裝置的架構(gòu)圖。

【具體實(shí)施方式】
[0036]下文中將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0037]如圖1所示,本申請的回聲消除方法,包括:
[0038]步驟101:分別啟動錄音線程與放音線程;
[0039]本申請中可以首先啟動放音線程,放音線程啟動后,再啟動錄音線程;也可以是首先啟動錄音線程,錄音線程啟動后,再啟動放音線程。
[0040]步驟102:錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放;
[0041]本申請中可以使用八11(11006⑶!'(1來錄制錄音數(shù)據(jù),使用八來播放音頻。放音數(shù)據(jù)隊(duì)列中的放音數(shù)據(jù)可以從文件或者其他方式得到,如語音通話中接收到的音頻數(shù)據(jù)。錄音數(shù)據(jù)和放音數(shù)據(jù)均為?(?原始數(shù)據(jù)。采用的參數(shù)如下:采樣率:16000 ;聲道數(shù):1 ;采樣位寬;每個數(shù)據(jù)包的語音時長:4013。
[0042]本申請中在錄制錄音數(shù)據(jù)時,通過系統(tǒng)提供的仙I去錄音,通過!'6^1(讀)函數(shù)從系統(tǒng)錄音緩沖區(qū)中讀取錄音數(shù)據(jù),當(dāng)錄音數(shù)據(jù)的語音時長達(dá)到40!118時,將錄音數(shù)據(jù)包放入錄音數(shù)據(jù)隊(duì)列。同時,記錄讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間,記為以毫秒保存,為進(jìn)行數(shù)據(jù)的時間同步做準(zhǔn)備。
[0043]本申請中在進(jìn)行音頻播放時,從放音數(shù)據(jù)隊(duì)列中取語音時長為4008長度的放音數(shù)據(jù)包進(jìn)行播放。同時,記錄從放音數(shù)據(jù)隊(duì)列讀取首個放音數(shù)據(jù)包后進(jìn)行音頻播放的系統(tǒng)時間作為音頻播放開始時間,記為?1奶打腕,為進(jìn)行數(shù)據(jù)的時間同步做準(zhǔn)備。
[0044]步驟103:對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步;
[0045]回聲消除就是要根據(jù)參考源從錄音數(shù)據(jù)中找到與參考源類似的聲音,然后消除掉。要消除放音數(shù)據(jù),就要以放音數(shù)據(jù)為參考源將放音數(shù)據(jù)從錄音數(shù)據(jù)中刪除。因此,對于回聲消除最重要的就是參考源。而目前的回聲消除,錄音數(shù)據(jù)與放音數(shù)據(jù)并不是同步對齊的,本申請中在進(jìn)行回聲消除之前,將錄音數(shù)據(jù)與放音數(shù)據(jù)進(jìn)行時間對齊(時間同步),能夠大大提高回聲消除的效率與質(zhì)量。
[0046]本申請中采用以下方法對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步。
[0047](一 )首先啟動放音線程,放音線程啟動后,再啟動錄音線程的情況:
[0048]對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
[0049]( 二)首先啟動錄音線程,錄音線程啟動后,再啟動放音線程的情況:
[0050]對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
[0051]本申請中采用以下方法計(jì)算上述時間差,包括:
[0052]記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與音頻播放開始時間的差值。
[0053]本申請中在1*621(1函數(shù)從系統(tǒng)錄音緩沖區(qū)中讀取錄音數(shù)據(jù),讀取到首個錄音數(shù)據(jù)包并放入錄音數(shù)據(jù)隊(duì)列的同時,記錄讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間。在從放音數(shù)據(jù)隊(duì)列中讀取讀取首個放音數(shù)據(jù)包進(jìn)行播放的同時,記錄播放首個放音數(shù)據(jù)包的系統(tǒng)時間。
[0054]從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間是首個錄音數(shù)據(jù)包返回的時間,而數(shù)據(jù)包的語音時長表示錄制數(shù)據(jù)包需要經(jīng)歷的時長,因此,將讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包的語音時長就得到了錄音開始時間,再將錄音開始時間與音頻播放開始時間做差值就得到了所需要的時間差。
[0055]例如,本申請中數(shù)據(jù)包對應(yīng)的語音時長是40!118,計(jì)算時間差的公式可以表示為:111116 = 1^6001-(1111116-40 - ?1^17了11116。讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間減去401118就得到了錄音開始時間,再減去進(jìn)行音頻播放的系統(tǒng)時間,就得到了時間差。
[0056]假設(shè)進(jìn)行音頻播放的系統(tǒng)時間為20008,讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間是2881118, 111116 = 288 - 40 - 200 = 48 ;時間差為 481118。
[0057]本申請中根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,包括:
[0058]錄音數(shù)據(jù)量=采樣率^采樣位寬占字節(jié)數(shù)^時間差^聲道數(shù)。
[0059]本申請中通過從放音數(shù)據(jù)隊(duì)列里去掉時間差對應(yīng)的語音數(shù)據(jù)量的數(shù)據(jù),或者在放音數(shù)據(jù)隊(duì)列中添加時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù),實(shí)現(xiàn)錄音數(shù)據(jù)與放音數(shù)據(jù)的對齊。
[0060]本申請中時間差采用毫秒計(jì)量,如果采樣率是每秒的采樣,則需要將采樣率除以1000毫秒得到1毫秒的采樣數(shù)。一個字節(jié)是油仏,采樣位寬除以8得到一個采樣點(diǎn)占的字節(jié)數(shù)。
[0061]按照本申請中采樣率:16000 ;聲道數(shù):1 ;采樣位寬:161^ ;時間差4808計(jì)算對應(yīng)的錄音數(shù)據(jù)量如下:
[0062]錄音數(shù)據(jù)量的字節(jié)數(shù)=(16000/1000)^ (16/8) ^48*1 = 1536^6
[0063]如圖2所示,從放音數(shù)據(jù)隊(duì)列里去掉153613”6的數(shù)據(jù),實(shí)現(xiàn)錄音數(shù)據(jù)與放音數(shù)據(jù)的對齊。
[0064]如圖3所示,在放音數(shù)據(jù)隊(duì)列中添加1536^5^6的靜音數(shù)據(jù),實(shí)現(xiàn)錄音數(shù)據(jù)與放音數(shù)據(jù)的對齊。
[0065]步驟104:對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
[0066]本申請中在對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行對齊后,可以調(diào)用進(jìn)行回聲消除,得到回聲消除后的數(shù)據(jù)隊(duì)列。得到回聲消除后的數(shù)據(jù)后,可以按照需要進(jìn)行傳輸或者存儲。
[0067]進(jìn)行回聲消除包含以下步驟:
[0068]⑷初始化;
[0069](^1)創(chuàng)建一個回聲消除狀態(tài)指針;
[0070]8^)66x2011081:81:6*81: = 81)66X^60110^81:81:6^11111: (1111: ^81116^8126, 1111:于|1七61'—
[0071]參數(shù):傳入處理的數(shù)據(jù)的采樣數(shù)(數(shù)據(jù)大小為在101118-201118之間的采樣數(shù)大小);
[0072]參數(shù)丨|11:61^161181:11:過濾采樣數(shù)長度丨111:61^161181:11 (數(shù)據(jù)大小為在 1001118-5001118之間的采樣數(shù)大小);
[0073]返回值:一個新建的回聲消除狀態(tài)指針。
[0074](…)創(chuàng)建一個數(shù)據(jù)處理狀態(tài)指針;
[0075]8^6 6^^1-01)1-0 06 8 8 81:81:6^(1611 = 8^66^^1-01)1-00 6 8 8^81:81:6^11111: (1111: ^81116^8126, 1111: 881111)1111^1-81:6)
[0076]參數(shù):傳入處理的數(shù)據(jù)的采樣數(shù)(數(shù)據(jù)大小為在101118-201118之間的采樣數(shù)大小);
[0077]參數(shù)821,11118-1'社6:傳入處理的數(shù)據(jù)的采樣率;
[0078]返回值:一個新建的數(shù)據(jù)處理狀態(tài)指針。
[0079](^3)設(shè)置回聲消除的采樣率;
[0080]1111: 81)66X^60110^01:1 (8^)66^2011081:81:6^81:, 1111: 1-0^11681:, V。1 (1 氺
[0081〕參數(shù)0:回聲消除的狀態(tài)指針;
[0082]參數(shù)1*6(11160:枚舉值,設(shè)置采樣率設(shè)置為乙3艦?II如」^丁2 ;
[0083]參數(shù)討:傳入設(shè)置的數(shù)據(jù)值指針;
[0084]返回值:成功為0,不成功為-1。
[0085](^4)設(shè)置當(dāng)前處理狀態(tài)為回聲消除狀態(tài);
[0086]1 II 1: 8^)66^^1)1-61)1-00688^01:1 (8^66^^1-01)1-0068881:81:6^81:, 1 II 1:
[0087]參數(shù)0:處理狀態(tài)指針;
[0088]參數(shù):枚舉值,設(shè)置回聲消除使用八丁2 ;
[0089]參數(shù)討:傳入設(shè)置的回聲消除狀態(tài)指針;
[0090]返回值:成功為0,不成功為-1。
[0091](幻回聲消除處理,將錄音數(shù)據(jù)與放音數(shù)據(jù)傳入,得到回聲消除后的數(shù)據(jù);
[0092]^01(1 8^66X^60110^0811061181:1011 (8^)66^2011081:81:6^81:, 001181:1111: 16^
1:^1-60, 001181: 8口叉—1111: 16—1:氺1 &7,
[0093]參數(shù)0:回聲消除狀態(tài);
[0094]參數(shù)1*6(3:錄到的??:1數(shù)據(jù);
[0095]參數(shù):放音的戶⑶數(shù)據(jù);
[0096]參數(shù)0此:回聲消除后的數(shù)據(jù);
[0097]返回值:無。
[0098](0)釋放資源。
[0099](01)釋放回聲消除狀態(tài)指針;
[0100]^01(1 8^)66^^60110^81:81:6^(1681:1-07 (8^66^2011081:81:6^81:)
[0101]參數(shù)0:回聲消除狀態(tài)指針;
[0102]返回值:無。
[0103](02)釋放數(shù)據(jù)處理狀態(tài)指針;
[0104]^01(1 81)66^^1-61)1-00688^81:81:6^(1681:1-07 (5^66^^1-01)1-0068881:81:6^81:);
[0105]參數(shù)0:數(shù)據(jù)處理狀態(tài)指針;
[0106]返回值:無。
[0107]如圖4所示,本申請還提供了一種回聲消除裝置,包括:啟動單元、錄音單元、放音單元、同步單元和回聲消除單元,其中:
[0108]啟動單元,用于分別啟動錄音線程與放音線程;
[0109]錄音單元,用于承載錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;
[0110]放音單元,用于承載放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放;
[0111]同步單元,用于對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同1卜.少;
[0112]回聲消除單元,用于對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
[0113]啟動單元分別啟動錄音線程與放音線程,包括:首先啟動放音線程,放音線程啟動后,再啟動錄音線程;
[0114]同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
[0115]啟動單元分別啟動錄音線程與放音線程,包括:首先啟動錄音線程,錄音線程啟動后,再啟動放音線程;
[0116]同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
[0117]同步單元采用以下方法計(jì)算時間差,包括:記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與音頻播放開始時間的差值。
[0118]同步單元根據(jù)時間差計(jì)算時間差對應(yīng)的錄音數(shù)據(jù)量,包括:錄音數(shù)據(jù)量=采樣率^采樣位寬占字節(jié)數(shù)#時間差#聲道數(shù)。
[0119]本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個的計(jì)算裝置上,或者分布在多個計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲在存儲裝置中由計(jì)算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0120]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
[0121]盡管上文對本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本【技術(shù)領(lǐng)域】技術(shù)人員可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為落入本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種回聲消除方法,其特征在于,包括: 分別啟動錄音線程與放音線程; 所述錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列;所述放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放; 對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步; 對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
2.如權(quán)利要求1所述的方法,其特征在于: 所述分別啟動錄音線程與放音線程,包括:首先啟動放音線程,放音線程啟動后,再啟動錄音線程; 所述對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除所述時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
3.如權(quán)利要求1所述的方法,其特征在于: 所述分別啟動錄音線程與放音線程,包括:首先啟動錄音線程,錄音線程啟動后,再啟動放音線程; 所述對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加所述時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
4.如權(quán)利要求1或2所述的方法,其特征在于,采用以下方法計(jì)算所述時間差,包括: 記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將所述從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與所述音頻播放開始時間的差值。
5.如權(quán)利要求1或2所述的方法,其特征在于,所述根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,包括: 錄音數(shù)據(jù)量=采樣率*采樣位寬占字節(jié)數(shù)*時間差*聲道數(shù)。
6.一種回聲消除裝置,其特征在于,包括:啟動單元、錄音單元、放音單元、同步單元和回聲消除單元,其中: 所述啟動單元,用于分別啟動錄音線程與放音線程; 所述錄音單元,用于承載所述錄音線程進(jìn)行音頻錄制,將得到的錄音數(shù)據(jù)寫入錄音數(shù)據(jù)隊(duì)列; 所述放音單元,用于承載所述放音線程從放音數(shù)據(jù)隊(duì)列中讀取放音數(shù)據(jù)進(jìn)行音頻播放; 所述同步單元,用于對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同I K少; 所述回聲消除單元,用于對時間同步后的錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行回聲消除。
7.如權(quán)利要求6所述的裝置,其特征在于: 所述啟動單元分別啟動錄音線程與放音線程,包括:首先啟動放音線程,放音線程啟動后,再啟動錄音線程; 所述同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算音頻播放開始時間與錄音開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,從放音數(shù)據(jù)隊(duì)列的頭部去除所述時間差對應(yīng)的錄音數(shù)據(jù)量的數(shù)據(jù)。
8.如權(quán)利要求6所述的裝置,其特征在于: 所述啟動單元分別啟動錄音線程與放音線程,包括:首先啟動錄音線程,錄音線程啟動后,再啟動放音線程; 所述同步單元對錄音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)與放音數(shù)據(jù)隊(duì)列中的數(shù)據(jù)進(jìn)行時間同步,包括:計(jì)算錄音開始時間與音頻播放開始時間之間的時間差,根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,在放音數(shù)據(jù)隊(duì)列的頭部添加所述時間差對應(yīng)的錄音數(shù)據(jù)量的靜音數(shù)據(jù)。
9.如權(quán)利要求7或8所述的裝置,其特征在于: 所述同步單元采用以下方法計(jì)算所述時間差,包括:記錄從系統(tǒng)錄音緩沖區(qū)中讀取到首個錄音數(shù)據(jù)包的系統(tǒng)時間以及音頻播放開始時間,將所述從系統(tǒng)錄音緩沖區(qū)中讀取首個錄音數(shù)據(jù)包的系統(tǒng)時間減去數(shù)據(jù)包對應(yīng)的語音時長得到錄音開始時間,計(jì)算錄音開始時間與所述音頻播放開始時間的差值。
10.如權(quán)利要求7或8所述的裝置,其特征在于: 所述同步單元所述根據(jù)所述時間差計(jì)算所述時間差對應(yīng)的錄音數(shù)據(jù)量,包括:錄音數(shù)據(jù)量=采樣率*采樣位寬占字節(jié)數(shù)*時間差*聲道數(shù)。
【文檔編號】G10L21/02GK104394286SQ201410427212
【公開日】2015年3月4日 申請日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】石毅, 陳正超, 蔣鴻偉 申請人:貴陽朗瑪信息技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1