欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種混音方法及其裝置制造方法

文檔序號(hào):6538985閱讀:209來(lái)源:國(guó)知局
一種混音方法及其裝置制造方法
【專(zhuān)利摘要】本發(fā)明提供一種混音方法,包括:利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù);獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào);根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。本發(fā)明可以應(yīng)用于所有支持聲卡的操作系統(tǒng)中,通用性強(qiáng),不受操作系統(tǒng)繁忙程度的影響。
【專(zhuān)利說(shuō)明】一種混音方法及其裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及語(yǔ)音處理【技術(shù)領(lǐng)域】,尤其涉及一種混音方法及其裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,網(wǎng)絡(luò)用戶(hù)對(duì)實(shí)時(shí)溝通的需求變得越來(lái)越強(qiáng)烈,文字媒體已經(jīng)不能滿(mǎn)足用戶(hù)的需求,通過(guò)語(yǔ)音,視頻等媒體進(jìn)行溝通交流的技術(shù)逐漸被開(kāi)發(fā)出來(lái)。其中語(yǔ)音媒體是被使用的最廣泛的技術(shù),從簡(jiǎn)單的雙人對(duì)話(huà),到多人對(duì)話(huà),各種基于語(yǔ)音交流的系統(tǒng)軟件被研發(fā)出來(lái)。每個(gè)參與語(yǔ)音聊天系統(tǒng)的人都將自己的音頻數(shù)據(jù)傳遞到服務(wù)器,服務(wù)器負(fù)責(zé)將收到的音頻數(shù)據(jù)轉(zhuǎn)發(fā)給所有參與的人員。對(duì)于N個(gè)人參與的語(yǔ)音系統(tǒng),服務(wù)器收到音頻數(shù)據(jù)量為匪,轉(zhuǎn)發(fā)的音頻數(shù)據(jù)量為(N-1)匪,因此音頻數(shù)據(jù)對(duì)于服務(wù)器的帶寬占用成指數(shù)增長(zhǎng)。為了解決這個(gè)問(wèn)題,服務(wù)器采用混音的方法,將收到的N路語(yǔ)音數(shù)據(jù)通過(guò)混音算法混合成單一的音頻數(shù)據(jù)輸出。這樣,對(duì)于N個(gè)人參與的語(yǔ)音系統(tǒng),服務(wù)器收到數(shù)據(jù)量為匪,轉(zhuǎn)發(fā)的數(shù)據(jù)量為(N-1)M,降低了占用的服務(wù)器的帶寬。
[0003]混音處理為采用混音算法將多個(gè)音頻數(shù)據(jù)混合成單一的音頻數(shù)據(jù)的技術(shù),例如在兩人對(duì)唱中,將兩個(gè)人從不同麥克風(fēng)輸入的聲音和背景樂(lè)混合成一個(gè)音頻文件進(jìn)行存儲(chǔ),這個(gè)混合的過(guò)程就叫做混音。
[0004]現(xiàn)有技術(shù)的混音處理對(duì)于混音時(shí)間點(diǎn)的控制,常采用windows的高精度計(jì)時(shí)器,通過(guò)windows操作系統(tǒng)提供的精確到微秒的計(jì)時(shí)器,從音頻數(shù)據(jù)中取出需要混合的數(shù)據(jù)量,然后根據(jù)混音算法混合數(shù)據(jù)。
[0005]但是windows操作系統(tǒng)是一種收費(fèi)的價(jià)格昂貴的系統(tǒng),同時(shí)采用windows的高精度計(jì)時(shí)器的混音時(shí)間點(diǎn)控制方法與操作系統(tǒng)直接相關(guān),且現(xiàn)有的服務(wù)器通常不安裝windows操作系統(tǒng)。如果語(yǔ)音系統(tǒng)的服務(wù)器沒(méi)有采用windows操作系統(tǒng),則無(wú)法實(shí)現(xiàn)混音時(shí)間點(diǎn)的控制。同時(shí)windows的高精度計(jì)時(shí)器所計(jì)算的混音時(shí)間點(diǎn)的精度會(huì)隨windows操作系統(tǒng)的繁忙程度有所偏差。

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

[0006]有鑒于此,本發(fā)明提供一種混音方法及其裝置,其可以應(yīng)用于所有支持聲卡的操作系統(tǒng)中,通用性強(qiáng),不受操作系統(tǒng)繁忙程度的影響。
[0007]本發(fā)明提供一種混音方法,包括:
[0008]利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù);
[0009]獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào);
[0010]根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
[0011]進(jìn)一步地,本發(fā)明所述預(yù)存的第一音頻數(shù)據(jù)為O。
[0012]進(jìn)一步地,本發(fā)明所述聲卡為硬件聲卡或者軟件虛擬聲卡。
[0013]進(jìn)一步地,本發(fā)明所述緩沖器為抖動(dòng)緩沖器。[0014]進(jìn)一步地,本發(fā)明所述從至少一個(gè)緩沖器中讀取聲卡進(jìn)行播放所需數(shù)據(jù)量的第二音頻數(shù)據(jù)時(shí),如所述緩沖器中剩余的音頻數(shù)據(jù)不滿(mǎn)足聲卡進(jìn)行播放所需要的音頻數(shù)據(jù)量,則從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)以滿(mǎn)足數(shù)據(jù)量要求。
[0015]進(jìn)一步地,本發(fā)明所述從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)為根據(jù)音頻數(shù)據(jù)采集時(shí)間從后向前進(jìn)行截取。
[0016]本發(fā)明還提供一種混音裝置,包括:
[0017]音頻播放模塊,用于利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù);
[0018]信號(hào)產(chǎn)生模塊,用于獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào);
[0019]音頻混音模塊,用于根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中讀取聲卡進(jìn)行播放所需數(shù)據(jù)量的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
[0020]進(jìn)一步地,本發(fā)明所述預(yù)存的第一音頻數(shù)據(jù)為O。
[0021]進(jìn)一步地,本發(fā)明所述聲卡為硬件聲卡或者軟件虛擬聲卡。
[0022]進(jìn)一步地,本發(fā)明所述緩沖器為抖動(dòng)緩沖器。
[0023]由以上技術(shù)方案可見(jiàn),本發(fā)明利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù),根據(jù)每次播放完畢讀取音頻數(shù)據(jù)時(shí)聲卡產(chǎn)生的控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。這樣,無(wú)須使用windows的高精度計(jì)時(shí)器,而是利用聲卡播放的速率控制混音的時(shí)間點(diǎn)。因此,本發(fā)明可以應(yīng)用于所有支持聲卡的操作系統(tǒng)中,通用性強(qiáng),不受操作系統(tǒng)繁忙程度的影響。
【專(zhuān)利附圖】

【附圖說(shuō)明】
[0024]圖1是本發(fā)明一種實(shí)施方式中混音方法的流程圖;
[0025]圖2是本發(fā)明音頻數(shù)據(jù)保存到抖動(dòng)緩沖器中的流程圖;
[0026]圖3是本發(fā)明從抖動(dòng)緩沖器中讀取出需要混音的音頻數(shù)據(jù)的流程圖;
[0027]圖4是本發(fā)明一種實(shí)施方式中混音裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0028]本發(fā)明利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù),根據(jù)每次播放完畢讀取音頻數(shù)據(jù)時(shí)聲卡產(chǎn)生的控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。這樣,無(wú)須使用windows的高精度計(jì)時(shí)器,而是利用聲卡播放的速率控制混音的時(shí)間點(diǎn)。因此,本發(fā)明可以應(yīng)用于所有支持聲卡的操作系統(tǒng)中,通用性強(qiáng),不受操作系統(tǒng)繁忙程度的影響。
[0029]本發(fā)明提供一種混音方法,應(yīng)用于語(yǔ)音系統(tǒng)中的混音服務(wù)器。
[0030]參看圖1,所述方法包括:
[0031]S1、利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù)。
[0032]S2、獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào)。
[0033]S3、根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
[0034]具體地,聲卡以預(yù)設(shè)速度播放混音服務(wù)器上預(yù)存的所述第一音頻數(shù)據(jù)。所述聲卡在播放第一音頻數(shù)據(jù)的時(shí)候,先讀取播放所需的音頻數(shù)據(jù)量,然后對(duì)讀取的音頻數(shù)據(jù)進(jìn)行播放,播放完畢時(shí),再次讀取播放所需的音頻數(shù)據(jù)量,然后對(duì)讀取的音頻數(shù)據(jù)進(jìn)行播放。在具體操作中,聲卡并不是在播放完畢讀取的第一音頻數(shù)據(jù)時(shí),再次讀取播放所需的第一音頻數(shù)據(jù),而是在每次接近播放完畢時(shí)(播放完畢前2-3ms),再次讀取播放所需的第一音頻數(shù)據(jù)。為便于說(shuō)明,本發(fā)明僅以理想狀態(tài),即聲卡在播放完畢讀取的第一音頻數(shù)據(jù)時(shí),再次讀取播放所需的第一音頻數(shù)據(jù)進(jìn)行說(shuō)明。所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí),產(chǎn)生控制信號(hào),因此所述控制信號(hào)代表所述聲卡播放第一音頻數(shù)據(jù)的速度。而用戶(hù)接口接收到所述控制信號(hào)后,按照每次聲卡播放第一音頻數(shù)據(jù)所需的數(shù)據(jù)量從緩沖器中讀取需要進(jìn)行混音的第二音頻數(shù)據(jù)。本發(fā)明并不將讀取的需要進(jìn)行混音的第二音頻數(shù)據(jù)發(fā)送給聲卡,而是針對(duì)讀取的第二音頻數(shù)據(jù)完成混音操作。聲卡播放的第一音頻數(shù)據(jù)是混音服務(wù)器提供的音頻數(shù)據(jù),并不是從緩沖器中讀取的第二音頻數(shù)據(jù)。本發(fā)明僅是利用聲卡播放第一音頻數(shù)據(jù)產(chǎn)生的控制信號(hào)來(lái)從緩沖器總讀取需要混音的第二音頻數(shù)據(jù)。而這樣,每次對(duì)第二音頻數(shù)據(jù)進(jìn)行混音操作的時(shí)間點(diǎn)和聲卡播放第一音頻數(shù)據(jù)同步。因此,本發(fā)明利用聲卡播放的速率實(shí)現(xiàn)了混音時(shí)間點(diǎn)的控制。所述聲卡播放第一音頻數(shù)據(jù)的速度可以根據(jù)系統(tǒng)需要設(shè)定。
[0035]進(jìn)一步,本發(fā)明所述預(yù)存的第一音頻數(shù)據(jù)為O。
[0036]本發(fā)明聲卡播放混音服務(wù)器提供的第一音頻數(shù)據(jù),令聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)產(chǎn)生控制信號(hào)。由于本發(fā)明僅利用聲卡的播放機(jī)制來(lái)進(jìn)行混音時(shí)間點(diǎn)控制,并不是為了播放音頻數(shù)據(jù)。因此,優(yōu)選地,聲卡播放混音服務(wù)器提供的為O的音頻數(shù)據(jù),并可以以靜音的方式播放該音頻數(shù)據(jù)。
[0037]進(jìn)一步,本發(fā)明所述聲卡為硬件聲卡或者軟件虛擬聲卡。
[0038]具體地,本發(fā)明既可以利用服務(wù)器安裝的硬件聲卡,也可以在服務(wù)器并未安裝硬件聲卡的時(shí)候安裝軟件虛擬聲卡來(lái)完成。從而,避免了語(yǔ)音系統(tǒng)成本的增加,安裝簡(jiǎn)單,使用方便。
[0039]進(jìn)一步,本發(fā)明所述緩沖器為抖動(dòng)緩沖器。
[0040]如果網(wǎng)絡(luò)傳輸速度是勻速的,播放的音頻數(shù)據(jù)也呈現(xiàn)連續(xù)性。但是網(wǎng)絡(luò)傳輸?shù)乃俣韧ǔ6际亲兓?,變化的網(wǎng)絡(luò)傳輸速度稱(chēng)之為網(wǎng)絡(luò)抖動(dòng)。網(wǎng)絡(luò)抖動(dòng)會(huì)影響音頻數(shù)據(jù)播放的連續(xù)性,比如網(wǎng)絡(luò)傳輸速度比播放速度慢時(shí)候,會(huì)發(fā)生播放的暫停。這時(shí)候通常會(huì)設(shè)置用于存儲(chǔ)音頻數(shù)據(jù)的抖動(dòng)緩沖,將接收的音頻數(shù)據(jù)存放到抖動(dòng)緩沖器中,從抖動(dòng)緩沖器中讀取音頻數(shù)據(jù)進(jìn)行播放。從而,保證播放的音頻數(shù)據(jù)不會(huì)受到網(wǎng)絡(luò)傳輸速度變化即網(wǎng)絡(luò)抖動(dòng)的影響,維持?jǐn)?shù)據(jù)的連續(xù)播放。具體來(lái)說(shuō),本發(fā)明N個(gè)抖動(dòng)緩沖器為相同規(guī)格的緩沖器,從而保證本發(fā)明從N個(gè)抖動(dòng)緩沖器中讀取的N路音頻數(shù)據(jù)保持同步,保證針對(duì)同步的N路音頻數(shù)據(jù)進(jìn)行混音。
[0041]本發(fā)明中的抖動(dòng)緩沖是一個(gè)存儲(chǔ)第二音頻數(shù)據(jù)的緩存,這些緩存被標(biāo)記為塊,每個(gè)塊里包含若干毫秒的音頻數(shù)據(jù)。此外,每個(gè)塊還存儲(chǔ)著此音頻被采集的時(shí)間和此音頻的播放時(shí)長(zhǎng),每個(gè)塊按照被采集的時(shí)間進(jìn)行排序,采集時(shí)間早的排在前面,采集時(shí)間晚的排在后面。
[0042]參看圖2,將音頻數(shù)據(jù)保存到抖動(dòng)緩沖器中的流程包括:
[0043]201、抖動(dòng)緩沖器接收音頻數(shù)據(jù)。[0044]202、判斷抖動(dòng)緩沖器中的每個(gè)音頻數(shù)據(jù)塊的起始采集時(shí)間加上其播放時(shí)長(zhǎng)是否小于下一次需要輸出音頻的起始時(shí)間。音頻數(shù)據(jù)塊的起始采集時(shí)間加上其播放時(shí)長(zhǎng)小于下一次需要輸出音頻的起始時(shí)間表明該音頻數(shù)據(jù)塊為已經(jīng)輸出過(guò)的音頻數(shù)據(jù)塊;音頻數(shù)據(jù)塊的起始采集時(shí)間加上其播放時(shí)長(zhǎng)大于或者等于下一次需要輸出音頻的起始時(shí)間表明該音頻數(shù)據(jù)塊為尚未輸出過(guò)的音頻數(shù)據(jù)塊。
[0045]203、釋放起始采集時(shí)間加上其播放時(shí)長(zhǎng)小于下一次需要輸出音頻的起始時(shí)間的音頻數(shù)據(jù)塊所占據(jù)的緩沖器的存儲(chǔ)空間。如果一音頻數(shù)據(jù)塊為已經(jīng)輸出過(guò)的音頻數(shù)據(jù)塊,則表明該音頻數(shù)據(jù)塊無(wú)需繼續(xù)保存在緩沖器中,釋放此數(shù)據(jù)塊所占據(jù)的緩沖器的存儲(chǔ)空間。
[0046]204、判斷抖動(dòng)緩沖器中的音頻數(shù)據(jù)塊中的丟失數(shù)據(jù)塊的總數(shù)量是否超過(guò)設(shè)定閾值。
[0047]205、如果超過(guò)設(shè)定閾值,則重置抖動(dòng)緩沖,否則,執(zhí)行步驟206。如果抖動(dòng)緩沖器丟失的音頻數(shù)據(jù)塊數(shù)量超出抖動(dòng)緩沖設(shè)定的閾值,表明丟失音頻數(shù)據(jù)塊太多,無(wú)法完成音頻數(shù)據(jù)塊輸出,則需要重置抖動(dòng)緩沖。
[0048]206、判斷接收的音頻數(shù)據(jù)塊的起始采集時(shí)間加上其播放時(shí)長(zhǎng),并加上抖動(dòng)緩沖器的適應(yīng)時(shí)長(zhǎng)是否大于或者等于下一次需要輸出音頻的起始時(shí)間;
[0049]207、如果接收的音頻數(shù)據(jù)塊的起始采集時(shí)間加上其播放時(shí)長(zhǎng),并加上抖動(dòng)緩沖器的適應(yīng)時(shí)長(zhǎng)大于或者等于下一次需要輸出音頻的起始時(shí)間,則將該音頻數(shù)據(jù)塊保存到抖動(dòng)緩沖器中的未使用空間。如未找到未使用空間,則刪除采集時(shí)間最早的音頻數(shù)據(jù)塊,并釋放其存儲(chǔ)空間為未使用空間。
[0050]參看圖3,本發(fā)明所述聲卡在抖動(dòng)緩沖器中讀取音頻數(shù)據(jù)是根據(jù)音頻數(shù)據(jù)塊存儲(chǔ)的順序依次進(jìn)行讀取。由于本發(fā)明如何從抖動(dòng)緩沖器中讀取音頻數(shù)據(jù)塊同現(xiàn)有技術(shù)中從抖動(dòng)緩沖器中讀取數(shù)據(jù)并無(wú)差異,因此僅簡(jiǎn)述其讀取流程。假設(shè),抖動(dòng)緩沖器并未被重置,且無(wú)需添加內(nèi)插數(shù)據(jù)的情況下,從抖動(dòng)緩沖器中讀取出需要混音的音頻數(shù)據(jù)的流程包括:
[0051]301、判斷能否從存儲(chǔ)在抖動(dòng)緩沖器中的音頻數(shù)據(jù)塊中找出采集時(shí)間與需要讀取的音頻數(shù)據(jù)時(shí)間相同,且播放時(shí)長(zhǎng)大于或者等于需要讀取的音頻數(shù)據(jù)時(shí)長(zhǎng)的音頻數(shù)據(jù)塊。
[0052]302、如果能夠找出該音頻數(shù)據(jù)塊,則從抖動(dòng)緩沖器中復(fù)制該音頻數(shù)據(jù)塊,并釋放該音頻數(shù)據(jù)塊占用的抖動(dòng)緩沖空間。
[0053]303、更新抖動(dòng)緩沖存儲(chǔ)的音頻數(shù)據(jù)量,返回讀取音頻數(shù)據(jù)成功信息。
[0054]304、如果未能找出該音頻數(shù)據(jù)塊,則判斷能否從抖動(dòng)緩沖器中存儲(chǔ)的音頻數(shù)據(jù)塊中找出采集時(shí)間小于或者等于需要讀取的音頻數(shù)據(jù)的時(shí)間,且播放時(shí)長(zhǎng)大于或者等于需要讀取的音頻數(shù)據(jù)時(shí)長(zhǎng)的音頻數(shù)據(jù)塊,并執(zhí)行步驟302。
[0055]305、如果未能找出該音頻數(shù)據(jù)塊,則判斷能否從抖動(dòng)緩沖器中存儲(chǔ)的音頻數(shù)據(jù)塊中找出采集時(shí)間小于或者等于需要讀取的音頻數(shù)據(jù)的時(shí)間,且采集時(shí)間加上播放時(shí)長(zhǎng)大于需要讀取音頻數(shù)據(jù)的時(shí)間的音頻數(shù)據(jù)塊,并執(zhí)行步驟302。
[0056]306、如果未能找出該音頻數(shù)據(jù)塊,則判斷能否從抖動(dòng)緩沖器中存儲(chǔ)的音頻數(shù)據(jù)塊中找出采集時(shí)間大于或者等于需要讀取的音頻數(shù)據(jù)的時(shí)間,并且距離需要讀取的音頻數(shù)據(jù)時(shí)間最近,且播放時(shí)長(zhǎng)最長(zhǎng)的音頻數(shù)據(jù)塊,并執(zhí)行步驟302。
[0057]另外,如果網(wǎng)絡(luò)抖動(dòng)的非常劇烈,比如網(wǎng)速過(guò)慢,會(huì)導(dǎo)致抖動(dòng)緩沖中存儲(chǔ)的音頻數(shù)據(jù)量過(guò)少。從抖動(dòng)緩沖器中讀取音頻數(shù)據(jù)時(shí),如果由于抖動(dòng)緩沖器中剩余的音頻數(shù)據(jù)量并不滿(mǎn)足混音所需要的音頻數(shù)據(jù)量,稱(chēng)之為欠載現(xiàn)象。如果發(fā)生欠載現(xiàn)象,則混音的效果會(huì)不好,例如造成音頻明顯的卡頓效果以及延時(shí)明顯增長(zhǎng)等。
[0058]為了解決上述由于欠載造成的混音效果不好的問(wèn)題,本發(fā)明實(shí)施例所述方法還包括:
[0059]所述從至少一個(gè)緩沖器中讀取聲卡進(jìn)行播放所需數(shù)據(jù)量的第二音頻數(shù)據(jù)時(shí),如所述緩沖器中剩余的音頻數(shù)據(jù)不滿(mǎn)足聲卡進(jìn)行播放所需要的音頻數(shù)據(jù)量,則從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)以滿(mǎn)足數(shù)據(jù)量要求。
[0060]具體地,從抖動(dòng)緩沖器中讀取第二音頻數(shù)據(jù),當(dāng)抖動(dòng)緩沖器中存儲(chǔ)的音頻數(shù)據(jù)量不足以滿(mǎn)足混音所需要的音頻數(shù)據(jù)量(聲卡進(jìn)行播放所需要的音頻數(shù)據(jù)量)時(shí),從上次讀取的音頻數(shù)據(jù)中截取出一段音頻數(shù)據(jù),令讀取出的音頻數(shù)據(jù)量和截取出的音頻數(shù)據(jù)量的總和滿(mǎn)足混音所需要的音頻數(shù)據(jù)量的要求。這樣,即使抖動(dòng)緩沖器發(fā)生欠載現(xiàn)象,本發(fā)明實(shí)施例也能夠通過(guò)上述方式保證混音的數(shù)據(jù)量滿(mǎn)足混音所需要的音頻數(shù)據(jù)量,即通過(guò)上述方式保證每次混音的數(shù)據(jù)量均為聲卡每次播放所需要的音頻數(shù)據(jù)量。因此,本發(fā)明不會(huì)由于欠載影響混音的效果,不會(huì)造成音頻明顯的卡頓效果以及延時(shí)明顯增長(zhǎng)。
[0061]進(jìn)一步,本發(fā)明所述從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)為根據(jù)音頻數(shù)據(jù)采集時(shí)間從后向前進(jìn)行截取。
[0062]由于每個(gè)音頻數(shù)據(jù)塊按照被采集的時(shí)間進(jìn)行排序,采集時(shí)間早的排在前面,采集時(shí)間晚的排在后面。當(dāng)抖動(dòng)緩沖器中剩余的音頻數(shù)據(jù)不滿(mǎn)足混音所需要的音頻數(shù)據(jù)時(shí),根據(jù)音頻數(shù)據(jù)采集時(shí)間從后向前從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)。這樣保證截取的音頻數(shù)據(jù)的采集時(shí)間點(diǎn)更加接近本次讀取的音頻數(shù)據(jù)的采集時(shí)間點(diǎn),從而減少聲音的卡頓的同時(shí)能夠保證獲得更好的混音效果。
[0063]對(duì)應(yīng)于上述方法,本發(fā)明還提供一種混音裝置,應(yīng)用于語(yǔ)音系統(tǒng)中的混音服務(wù)器。
[0064]參看圖4,所述混音裝置包括:
[0065]音頻播放模塊41,用于利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù)。
[0066]信號(hào)產(chǎn)生模塊42,用于獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào)。
[0067]音頻混音模塊43,用于根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
[0068]進(jìn)一步,本發(fā)明所述預(yù)存的第一音頻數(shù)據(jù)為O。
[0069]進(jìn)一步,本發(fā)明所述聲卡為硬件聲卡或者軟件虛擬聲卡。
[0070]進(jìn)一步,本發(fā)明所述緩沖器為抖動(dòng)緩沖器。
[0071]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種混音方法,其特征在于,包括: 利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù); 獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào); 根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)存的第一音頻數(shù)據(jù)為O。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述聲卡為硬件聲卡或者軟件虛擬聲卡。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述緩沖器為抖動(dòng)緩沖器。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從至少一個(gè)緩沖器中讀取聲卡進(jìn)行播放所需數(shù)據(jù)量的第二音頻數(shù)據(jù)時(shí),如所述緩沖器中剩余的音頻數(shù)據(jù)不滿(mǎn)足聲卡進(jìn)行播放所需要的音頻數(shù)據(jù)量,則從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)以滿(mǎn)足數(shù)據(jù)量要求。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述從上次讀取的音頻數(shù)據(jù)中截取音頻數(shù)據(jù)為根據(jù)音頻數(shù)據(jù)采集時(shí)間從后向前進(jìn)行截取。
7.一種混音裝置,其特征在于,包括: 音頻播放模塊,用于利用聲卡以預(yù)設(shè)速度播放預(yù)存的第一音頻數(shù)據(jù); 信號(hào)產(chǎn)生模塊,用于獲取所述聲卡每次播放完畢讀取的第一音頻數(shù)據(jù)時(shí)所產(chǎn)生的控制信號(hào); 音頻混音模塊,用于根據(jù)所述控制信號(hào)從至少一個(gè)緩沖器中按照聲卡進(jìn)行播放所需數(shù)據(jù)量讀取需要進(jìn)行混音的第二音頻數(shù)據(jù),并對(duì)其進(jìn)行混音。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述預(yù)存的第一音頻數(shù)據(jù)為O。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述聲卡為硬件聲卡或者軟件虛擬聲卡。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述緩沖器為抖動(dòng)緩沖器。
【文檔編號(hào)】G06F3/16GK103870234SQ201410069079
【公開(kāi)日】2014年6月18日 申請(qǐng)日期:2014年2月27日 優(yōu)先權(quán)日:2014年2月27日
【發(fā)明者】劉涵 申請(qǐng)人:北京六間房科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
辽阳县| 镇远县| 南丰县| 密云县| 平南县| 公主岭市| 临潭县| 南靖县| 苍梧县| 娱乐| 甘德县| 明星| 封开县| 云浮市| 芦溪县| 珲春市| 调兵山市| 宿松县| 白玉县| 芮城县| 库伦旗| 大厂| 嘉定区| 循化| 凤冈县| 临泉县| 田东县| 大洼县| 佛坪县| 湟源县| 仁怀市| 蒙阴县| 迁西县| 凤翔县| 长春市| 远安县| 施秉县| 剑川县| 新竹县| 四平市| 呼图壁县|