一種實(shí)現(xiàn)卡拉ok功能的方法及裝置制造方法
【專(zhuān)利摘要】本申請(qǐng)公開(kāi)了一種實(shí)現(xiàn)卡拉OK功能的方法及裝置,所述方法包括:移動(dòng)終端讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),并從聊天室服務(wù)器接收所述移動(dòng)終端所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù)據(jù),實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所述伴奏數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音得到第一混音數(shù)據(jù)并播放所述第一混音數(shù)據(jù);移動(dòng)終端在進(jìn)行播放的同時(shí),進(jìn)行音頻錄制,并消除錄制的音頻數(shù)據(jù)中自身播放的聲音,得到演唱數(shù)據(jù),將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音得到第二混音數(shù)據(jù),并將所述第二混音數(shù)據(jù)上傳給所述聊天室服務(wù)器。本申請(qǐng)為用戶(hù)提供了基于移動(dòng)終端的實(shí)時(shí)卡拉OK演唱平臺(tái),能夠使演唱者在使用移動(dòng)終端進(jìn)行演唱的過(guò)程中與聊天室中的其他用戶(hù)進(jìn)行互動(dòng)。
【專(zhuān)利說(shuō)明】-種實(shí)現(xiàn)卡拉OK功能的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及移動(dòng)互聯(lián)網(wǎng)【技術(shù)領(lǐng)域】,尤其涉及一種實(shí)現(xiàn)卡拉0K功能的方法及裝置。
【背景技術(shù)】
[0002] 近年來(lái),隨著手機(jī)技術(shù)的不斷發(fā)展,智能手機(jī)已經(jīng)逐漸占領(lǐng)手機(jī)市場(chǎng)。各種基于 I0S平臺(tái)、Android(安卓)平臺(tái)的智能手機(jī)大量出現(xiàn)。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展與成熟,全面 的信息化時(shí)代已經(jīng)到來(lái)。
[0003] 卡拉0K是指演唱者在預(yù)先錄制的音樂(lè)伴奏下參與歌唱,是一種經(jīng)久不衰的娛樂(lè) 方式。隨著智能手機(jī)的不斷普及,在智能手機(jī)上實(shí)現(xiàn)卡拉0K的APP(應(yīng)用)已經(jīng)出現(xiàn)。只 要用戶(hù)連接互聯(lián)網(wǎng),使用智能手機(jī)就能進(jìn)行卡拉0K演唱。
[0004] 目前實(shí)現(xiàn)卡拉0K的APP通常是為用戶(hù)提供伴奏的播放,再對(duì)用戶(hù)的演唱進(jìn)行錄 制,將錄制的用戶(hù)演唱的歌曲上傳到服務(wù)器,服務(wù)器對(duì)用戶(hù)演唱的歌曲進(jìn)行排名、打分等。 這種方式實(shí)現(xiàn)的卡拉0K功能缺乏用戶(hù)在演唱過(guò)程中與其他用戶(hù)之間的互動(dòng),用戶(hù)在演唱 過(guò)程中無(wú)法得知其他用戶(hù)的反應(yīng),缺乏卡拉0K的現(xiàn)場(chǎng)氛圍。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明要解決的技術(shù)問(wèn)題是提供一種實(shí)現(xiàn)卡拉0K功能的方法及裝置,能夠提供 演唱者與其他用戶(hù)之間的互動(dòng),為演唱者增加演唱氛圍。
[0006] 為解決上述技術(shù)問(wèn)題,本申請(qǐng)的一種實(shí)現(xiàn)卡拉0K功能的方法,包括:
[0007] 移動(dòng)終端讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),并從聊天室服務(wù)器接收所述移 動(dòng)終端所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù)據(jù),實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù), 將所述伴奏數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音得到第一混音數(shù)據(jù)并播放所述第一混音數(shù)據(jù);
[0008] 移動(dòng)終端在進(jìn)行播放的同時(shí),進(jìn)行音頻錄制,并消除錄制的音頻數(shù)據(jù)中自身播放 的聲音,得到演唱數(shù)據(jù),將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音得到第二混音數(shù)據(jù),并將 所述第二混音數(shù)據(jù)上傳給所述聊天室服務(wù)器。
[0009] 進(jìn)一步地,所述將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,包括:
[0010] 所述移動(dòng)終端在開(kāi)始播放所述第一混音數(shù)據(jù)后等待一時(shí)間閾值,等待結(jié)束后,開(kāi) 始將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,所述時(shí)間閾值是播放延遲時(shí)間與錄音延遲時(shí) 間之和。
[0011] 進(jìn)一步地,所述讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),包括:
[0012] 分段讀取伴奏文件,對(duì)讀取的伴奏文件進(jìn)行解碼,并將解碼得到的伴奏數(shù)據(jù)存入 伴奏緩存中,在解碼得到預(yù)置長(zhǎng)度的伴奏數(shù)據(jù)后,對(duì)播放標(biāo)志位進(jìn)行置位,所述播放標(biāo)志位 用于指示是否開(kāi)始獲取伴奏數(shù)據(jù)及語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放。
[0013] 進(jìn)一步地,所述實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所述伴奏數(shù)據(jù)與語(yǔ)音數(shù) 據(jù)進(jìn)行混音并播放,包括:
[0014] 在播放標(biāo)志位被置位后,從語(yǔ)音數(shù)據(jù)緩存中獲取接收后緩存的語(yǔ)音數(shù)據(jù),并從伴 奏緩存中獲取與已獲取的語(yǔ)音數(shù)據(jù)相同播放時(shí)長(zhǎng)的伴奏數(shù)據(jù),進(jìn)行混音并播放。
[0015] 進(jìn)一步地,所述消除錄制的音頻數(shù)據(jù)中自身播放的聲音,包括:
[0016] 所述移動(dòng)終端通過(guò)回聲消除的方式消除錄制的音頻數(shù)據(jù)中自身播放的聲音。
[0017] 進(jìn)一步地,一種實(shí)現(xiàn)卡拉0K功能的裝置,包括:解碼單元、接收單元、第一混音單 元、播放單元、錄音單元、第二混音單元和上傳單元,其中 :
[0018] 所述解碼單元,用于讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù);
[0019] 所述接收單元,用于從聊天室服務(wù)器接收所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù) 據(jù);
[0020] 所述第一混音單元,用于實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所述伴奏數(shù)據(jù) 與語(yǔ)音數(shù)據(jù)進(jìn)行混音得到第一混音數(shù)據(jù)傳輸給播放單元;
[0021] 所述播放單元,用于播放所述第一混音單元傳輸?shù)牡谝换煲魯?shù)據(jù);
[0022] 所述錄音單元,用于在所述播放單元進(jìn)行播放的同時(shí),進(jìn)行音頻錄制,并消除錄制 的音頻數(shù)據(jù)中所述播放單元播放的聲音,得到演唱數(shù)據(jù);
[0023] 所述第二混音單元,用于將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音得到第二混音 數(shù)據(jù)傳輸給上傳單兀;
[0024] 所述上傳單元,用于將所述第二混音單元傳輸?shù)牡诙煲魯?shù)據(jù)上傳給所述聊天室 服務(wù)器。
[0025] 進(jìn)一步地,所述第二混音單元將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,包括:
[0026] 所述第二混音單元在所述播放單元開(kāi)始播放所述第一混音數(shù)據(jù)后等待一時(shí)間閾 值,等待結(jié)束后,開(kāi)始將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,所述時(shí)間閾值是播放延遲 時(shí)間與錄音延遲時(shí)間之和。
[0027] 進(jìn)一步地,所述解碼單元讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),包括:
[0028] 分段讀取伴奏文件,對(duì)讀取的伴奏文件進(jìn)行解碼,并將解碼得到的伴奏數(shù)據(jù)存入 伴奏緩存中,在解碼得到預(yù)置長(zhǎng)度的伴奏數(shù)據(jù)后,對(duì)播放標(biāo)志位進(jìn)行置位,所述播放標(biāo)志位 用于指示是否開(kāi)始獲取伴奏數(shù)據(jù)及語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放。
[0029] 進(jìn)一步地,所述第一混音單元實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所述伴奏 數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音,包括:
[0030] 在播放標(biāo)志位被置位后,從語(yǔ)音數(shù)據(jù)緩存中獲取所述接收單元接收后緩存的語(yǔ)音 數(shù)據(jù),并從伴奏緩存中獲取與已獲取的語(yǔ)音數(shù)據(jù)相同播放時(shí)長(zhǎng)的伴奏數(shù)據(jù),進(jìn)行混音。
[0031] 進(jìn)一步地,所述錄音單元消除錄制的音頻數(shù)據(jù)中自身播放的聲音,包括:
[0032] 所述錄音單元通過(guò)回聲消除的方式消除錄制的音頻數(shù)據(jù)中所述播放單元播放的 聲音。
[0033] 綜上所述,本申請(qǐng)為用戶(hù)提供了基于移動(dòng)終端的實(shí)時(shí)卡拉0K演唱平臺(tái),能夠使演 唱者在使用移動(dòng)終端進(jìn)行演唱的過(guò)程中與聊天室中的其他用戶(hù)進(jìn)行互動(dòng),其他用戶(hù)可以實(shí) 時(shí)收聽(tīng)演唱者演唱的歌曲,演唱者可以在演唱過(guò)程中得到其他用戶(hù)的鼓掌等回應(yīng),從而使 演唱者獲得卡拉0K的現(xiàn)場(chǎng)演唱效果,為演唱者增加卡拉0K的演唱氛圍。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0034] 圖1為本申請(qǐng)的實(shí)現(xiàn)卡拉0K功能的方法的流程圖;
[0035] 圖2為本申請(qǐng)的實(shí)現(xiàn)卡拉0K功能的裝置的架構(gòu)圖。
【具體實(shí)施方式】
[0036] 下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的 情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0037] 如圖1所示,本申請(qǐng)的實(shí)現(xiàn)卡拉0K功能的方法,包括:
[0038] 步驟101 :移動(dòng)終端讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),并從聊天室服務(wù)器接 收移動(dòng)終端所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù)據(jù);
[0039] 本申請(qǐng)為用戶(hù)提供基于移動(dòng)終端的聊天室實(shí)時(shí)卡拉0K功能,為實(shí)現(xiàn)卡拉0K功能, 演唱者需要預(yù)先下載伴奏文件。在想要使用卡拉0K功能時(shí),進(jìn)入聊天室,演唱者的移動(dòng)終 端讀取伴奏文件進(jìn)行解碼,并從聊天室服務(wù)器接收所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù) 據(jù),用以進(jìn)行伴奏的播放。
[0040] 本申請(qǐng)中讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),包括:分段讀取伴奏文件,對(duì)讀 取的伴奏文件進(jìn)行解碼,并將解碼得到的伴奏數(shù)據(jù)緩存到伴奏緩存中,在解碼得到預(yù)置長(zhǎng) 度的伴奏數(shù)據(jù)后,對(duì)播放標(biāo)志位進(jìn)行置位,播放標(biāo)志位用于指示是否開(kāi)始獲取伴奏數(shù)據(jù)及 語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放。
[0041] 由于解碼伴奏文件比較耗時(shí),如伴奏文件采用MP3文件,解碼三分鐘時(shí)長(zhǎng)的MP3文 件全部解碼完成需要三秒鐘左右,如果將伴奏文件全部解碼完成后,再進(jìn)行伴奏的播放,就 會(huì)給用戶(hù)帶來(lái)不好體驗(yàn),因此,本申請(qǐng)中對(duì)伴奏文件進(jìn)行分段解碼,先解碼預(yù)置長(zhǎng)度的伴奏 數(shù)據(jù),如預(yù)置長(zhǎng)度設(shè)置為12800字節(jié),解碼12800字節(jié)只需要話(huà)20ms,解碼預(yù)置長(zhǎng)度的伴奏 數(shù)據(jù)后,即對(duì)播放標(biāo)志位進(jìn)行置位。播放伴奏的速度一定是慢于解碼速度,故之后就可以邊 解碼邊播放伴奏,這樣就很好的解決了解碼耗時(shí)的問(wèn)題。用戶(hù)可以在點(diǎn)擊開(kāi)始卡拉0K功能 之后馬上就可以聽(tīng)到伴奏的聲音。
[0042] 本申請(qǐng)中可以通過(guò)調(diào)用libmad的API解碼伴奏文件得到伴奏數(shù)據(jù)(PCM數(shù)據(jù))。
[0043] 以下是讀取伴奏文件進(jìn)行解碼的部分代碼:
[0044]
【權(quán)利要求】
1. 一種實(shí)現(xiàn)卡拉OK功能的方法,其特征在于,包括: 移動(dòng)終端讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù),并從聊天室服務(wù)器接收所述移動(dòng)終 端所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù)據(jù),實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所 述伴奏數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音得到第一混音數(shù)據(jù)并播放所述第一混音數(shù)據(jù); 移動(dòng)終端在進(jìn)行播放的同時(shí),進(jìn)行音頻錄制,并消除錄制的音頻數(shù)據(jù)中自身播放的聲 音,得到演唱數(shù)據(jù),將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音得到第二混音數(shù)據(jù),并將所述 第二混音數(shù)據(jù)上傳給所述聊天室服務(wù)器。
2. 如權(quán)利要求1所述的方法,其特征在于,所述將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行 混音,包括: 所述移動(dòng)終端在開(kāi)始播放所述第一混音數(shù)據(jù)后等待一時(shí)間閾值,等待結(jié)束后,開(kāi)始將 所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,所述時(shí)間閾值是播放延遲時(shí)間與錄音延遲時(shí)間之 和。
3. 如權(quán)利要求1或2所述的方法,其特征在于,所述讀取伴奏文件進(jìn)行解碼,得到伴奏 數(shù)據(jù),包括: 分段讀取伴奏文件,對(duì)讀取的伴奏文件進(jìn)行解碼,并將解碼得到的伴奏數(shù)據(jù)存入伴奏 緩存中,在解碼得到預(yù)置長(zhǎng)度的伴奏數(shù)據(jù)后,對(duì)播放標(biāo)志位進(jìn)行置位,所述播放標(biāo)志位用于 指示是否開(kāi)始獲取伴奏數(shù)據(jù)及語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放。
4. 如權(quán)利要求3所述的方法,其特征在于,所述實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù), 將所述伴奏數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放,包括: 在播放標(biāo)志位被置位后,從語(yǔ)音數(shù)據(jù)緩存中獲取接收后緩存的語(yǔ)音數(shù)據(jù),并從伴奏緩 存中獲取與已獲取的語(yǔ)音數(shù)據(jù)相同播放時(shí)長(zhǎng)的伴奏數(shù)據(jù),進(jìn)行混音并播放。
5. 如權(quán)利要求1或2所述的方法,其特征在于,所述消除錄制的音頻數(shù)據(jù)中自身播放的 聲音,包括: 所述移動(dòng)終端通過(guò)回聲消除的方式消除錄制的音頻數(shù)據(jù)中自身播放的聲音。
6. -種實(shí)現(xiàn)卡拉0K功能的裝置,其特征在于,包括:解碼單元、接收單元、第一混音單 元、播放單元、錄音單元、第二混音單元和上傳單元,其中: 所述解碼單元,用于讀取伴奏文件進(jìn)行解碼,得到伴奏數(shù)據(jù); 所述接收單元,用于從聊天室服務(wù)器接收所加入的聊天室中的其他用戶(hù)的語(yǔ)音數(shù)據(jù); 所述第一混音單元,用于實(shí)時(shí)獲取所述伴奏數(shù)據(jù)以及語(yǔ)音數(shù)據(jù),將所述伴奏數(shù)據(jù)與語(yǔ) 音數(shù)據(jù)進(jìn)行混音得到第一混音數(shù)據(jù)傳輸給播放單元; 所述播放單元,用于播放所述第一混音單元傳輸?shù)牡谝换煲魯?shù)據(jù); 所述錄音單元,用于在所述播放單元進(jìn)行播放的同時(shí),進(jìn)行音頻錄制,并消除錄制的音 頻數(shù)據(jù)中所述播放單元播放的聲音,得到演唱數(shù)據(jù); 所述第二混音單元,用于將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音得到第二混音數(shù)據(jù) 傳輸給上傳單兀; 所述上傳單元,用于將所述第二混音單元傳輸?shù)牡诙煲魯?shù)據(jù)上傳給所述聊天室服務(wù) 器。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述第二混音單元將所述演唱數(shù)據(jù)與所述 伴奏數(shù)據(jù)進(jìn)行混音,包括: 所述第二混音單元在所述播放單元開(kāi)始播放所述第一混音數(shù)據(jù)后等待一時(shí)間閾值,等 待結(jié)束后,開(kāi)始將所述演唱數(shù)據(jù)與所述伴奏數(shù)據(jù)進(jìn)行混音,所述時(shí)間閾值是播放延遲時(shí)間 與錄音延遲時(shí)間之和。
8. 如權(quán)利要求6或7所述的裝置,其特征在于,所述解碼單元讀取伴奏文件進(jìn)行解碼, 得到伴奏數(shù)據(jù),包括: 分段讀取伴奏文件,對(duì)讀取的伴奏文件進(jìn)行解碼,并將解碼得到的伴奏數(shù)據(jù)存入伴奏 緩存中,在解碼得到預(yù)置長(zhǎng)度的伴奏數(shù)據(jù)后,對(duì)播放標(biāo)志位進(jìn)行置位,所述播放標(biāo)志位用于 指示是否開(kāi)始獲取伴奏數(shù)據(jù)及語(yǔ)音數(shù)據(jù)進(jìn)行混音并播放。
9. 如權(quán)利要求8所述的裝置,其特征在于,所述第一混音單元實(shí)時(shí)獲取所述伴奏數(shù)據(jù) 以及語(yǔ)音數(shù)據(jù),將所述伴奏數(shù)據(jù)與語(yǔ)音數(shù)據(jù)進(jìn)行混音,包括: 在播放標(biāo)志位被置位后,從語(yǔ)音數(shù)據(jù)緩存中獲取所述接收單元接收后緩存的語(yǔ)音數(shù) 據(jù),并從伴奏緩存中獲取與已獲取的語(yǔ)音數(shù)據(jù)相同播放時(shí)長(zhǎng)的伴奏數(shù)據(jù),進(jìn)行混音。
10. 如權(quán)利要求6或7所述的裝置,其特征在于,所述錄音單元消除錄制的音頻數(shù)據(jù)中 自身播放的聲音,包括: 所述錄音單元通過(guò)回聲消除的方式消除錄制的音頻數(shù)據(jù)中所述播放單元播放的聲音。
【文檔編號(hào)】H04L12/58GK104392712SQ201410427469
【公開(kāi)日】2015年3月4日 申請(qǐng)日期:2014年8月27日 優(yōu)先權(quán)日:2014年8月27日
【發(fā)明者】陳正超, 石毅, 蔣鴻偉 申請(qǐng)人:貴陽(yáng)朗瑪信息技術(shù)股份有限公司