本發明涉及終端技術領域,特別是指一種音頻數據處理方法及終端。
背景技術:
目前智能移動設備KTV的需求越來越多,用戶需要有像在KTV一樣的用戶體驗,又要有比較好的音效效果。
但是,目前android平臺實現KTV的如下兩種方式各存在不同的缺陷:
第一種,沒有耳返功能,只有唱完之后才能聽唱的效果;
第二種,APP在應用層實現耳返跟音效處理,由于android分的層數太多,每層都會有比較大的緩存,導致耳返的聲音會有比較大的延時,體驗效果非常差。
技術實現要素:
本發明的目的在于提供一種音頻數據處理方法及終端,解決現有技術中終端實現KTV耳返功能延時長的問題。
為了解決上述技術問題,本發明實施例提供一種音頻數據處理方法,包括:
利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據;
對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
本發明還提供了一種終端,包括:
獲取模塊,用于利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據;
處理模塊,用于對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
本發明的上述技術方案的有益效果如下:
上述方案中,所述音頻數據處理方法通過利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據,可以減少經過的緩存,實現低延時耳返,并不增加額外的硬件成本。
附圖說明
圖1為本發明實施例一的音頻數據處理方法流程示意圖;
圖2為本發明實施例一的音頻數據處理方法具體應用流程示意圖一;
圖3為本發明實施例一的音頻數據處理方法具體應用流程示意圖二;
圖4為本發明實施例二的終端結構示意圖;
圖5為本發明實施例三的終端結構示意圖;
圖6為本發明實施例四的終端結構示意圖。
具體實施方式
為使本發明要解決的技術問題、技術方案和優點更加清楚,下面將結合附圖及具體實施例進行詳細描述。
本發明針對現有的中終端實現KTV耳返功能延時長的問題,提供了多種解決方案,具體如下:
實施例一
如圖1所示,本發明實施例一提供的音頻數據處理方法,包括:
步驟11:利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據。
在終端中設有數字音頻處理器時,與硬件層相鄰的層是指包含數字音頻處理器的處理層;在終端中沒有設有數字音頻處理器時,與硬件層相鄰的層是指內核層。
步驟12:對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
步驟12可以具體為對音頻數據進行音效處理后保存,再從保存處獲取處理后的音頻數據進行播放。
本發明實施例一提供的音頻數據處理方法主要應用于移動終端。
考慮到終端中可能有數字音頻處理器,可能沒有,所以,本發明實施例針對步驟11和步驟12提供了兩種具體實現方式:
第一種,針對具有數字音頻處理器的終端,所述利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據的步驟包括:利用處理層從所述硬件層獲取錄音的音頻數據;
所述對所述音頻數據進行音效處理,并混合到播放數據中進行播放的步驟包括:利用處理層對所述音頻數據進行音效處理,并混合到播放數據中進行播放;所述處理層包括數字音頻處理器。
第二種,針對沒有數字音頻處理器的終端,所述利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據的步驟包括:利用內核層從所述硬件層獲取錄音的音頻數據;
所述對所述音頻數據進行音效處理,并混合到播放數據中進行播放的步驟包括:利用框架層對所述音頻數據進行音效處理,并利用內核層將處理后的音頻數據混合到播放數據中進行播放。
利用框架層對所述音頻數據進行音效處理可以增強系統的穩定性。
為了防止頻繁執行音效處理操作,本發明實施例中,所述利用框架層對所述音頻數據進行音效處理的步驟包括:在錄音的音頻數據的幀數大于或等于預設值時,利用框架層對所述音頻數據進行音效處理。
也可以說是,在錄音緩存中的數據達到預設值時,發送一個事件給KTV音效處理模塊處理。預設值優選240幀。
為了保證播放跟錄音同步,也不會出現斷音跟啪音,本發明實施例一中,所述利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據的步驟包括:利用與硬件層相鄰的層使用第一采樣率從所述硬件層采集錄音的音頻數據;
所述對所述音頻數據進行音效處理,并混合到播放數據中進行播放的步驟包括:對所述音頻數據進行音效處理,并混合到播放數據中使用所述第一采樣率進行播放。
優選的,所述對所述音頻數據進行音效處理的步驟包括:對所述音頻數據進行消噪、動態壓縮、均衡和混響處理。當然還可以包括其他操作,在此不做限定。
具體的,所述對所述音頻數據進行音效處理,并混合到播放數據中進行播放的步驟包括:對所述音頻數據進行音效處理,并保存;將處理后的音頻數據混合到播放數據中進行播放。
保存音效處理后的音頻數據是為了便于將處理后的音頻數據混合到播放數據中進行播放。
下面對本發明實施例一提供的音頻數據處理方法進行進一步說明,以android系統的終端KTV為例。
概括來說,為了實現低延時耳返,并不增加額外的硬件成本,本申請提出了在android內核層或者在數字音頻處理器(ADSP)中實現KTV耳返跟音效處理的方法:
方式一
帶有數字音頻處理器(ADSP)的平臺實現KTV耳返跟音效處理的方法,如圖2所示:
建立音頻播放通路(audio playback)跟音頻錄音通路(audio record);在數字音頻處理器(ADSP)中保存錄音(tx)的數據;對保存的錄音(tx)的數據進行音效處理后保存在緩存(buffer)中;在數字音頻處理器(ADSP)播放數據中把錄音(tx)的數據混合到播放(rx)中;把混合后的數據播放出來。錄音跟播放使用同樣的采用率。
本方式由于數字音頻處理器(ADSP)離硬件比較近,可以直接拿到硬件的數據,經過的緩存(buffer)很少,再加上數字音頻處理器(ADSP)對數字信號處理比較快,處理時間特別短,可以做到30ms以內,這樣短的延時,人感覺不出來。
另外,在數字音頻處理器(ADSP)播放(rx)數據里把錄音(tx)經過音效處理后的數據混合到播放(rx)中,加上播放跟錄音用相同的采樣率,可以保證播放跟錄音同步,也不會出現斷音跟啪音。
可以說,本申請提供了一種帶有數字音頻處理器(ADSP)平臺實現低延時KTV耳返功能的方法,節省了硬件成本,同時提供了比較好的用戶體驗。
方式二
不帶數字音頻處理器(ADSP)芯片,在android內核層實現KTV耳返跟音效處理的方法,如圖3所示:
建立音頻播放(audio playback)跟音頻錄音(audio record)通路;在android內核中保錄音的數據;當錄音緩存中的數據達到240幀(5ms)時,發送一個事件給KTV音效處理模塊處理;把錄音的數據經過消噪,動態壓縮,均衡,混響處理后保存到android內核中;在android內核播放通路的硬件(在android內核播放數據中把經過音效處理的錄音數據混合到播放通路中;把混合后的數據播放出來。錄音跟播放使用同樣的采用率。
本方式由于沒有帶數字音頻處理器(ADSP)平臺的android內核離硬件比較近,可以直接拿到硬件的數據,經過的緩存很少,可以減少耳返的延時;把處理放到android系統層中去處理,可以增強系統的穩定性。
另外,在android內核播放通路的硬件中把錄音的數據混合到播放數據中,加上播放跟錄音用相同的采樣率,可以保證播放跟錄音同步,也不會出現斷音跟啪音。
可以說,本申請提供了一種不帶數字音頻處理器(ADSP)平臺實現低延時KTV耳返功能的方法,既節省了硬件成本,也提供了比較好的用戶體驗。
本發明實施例一提供的音頻數據處理方法除了可以應用于移動終端KTV外,還可以應用到其他需要錄到的聲音,實時播放出來的情景。
實施例二
如圖4所示,本發明實施例二提供的終端,包括:
獲取模塊41,用于利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據。
在終端中設有數字音頻處理器時,與硬件層相鄰的層是指包含數字音頻處理器的處理層;在終端中沒有設有數字音頻處理器時,與硬件層相鄰的層是指內核層。
處理模塊42,用于對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
處理模塊42可具體用于對音頻數據進行音效處理后保存,再從保存處獲取處理后的音頻數據進行播放。
本發明實施例二提供的終端主要指移動終端。
考慮到終端中可能有數字音頻處理器,可能沒有,所以,本發明實施例針對獲取模塊41和處理模塊42提供了兩種具體實現方式:
第一種,針對具有數字音頻處理器的終端,所述獲取模塊包括:第一獲取子模塊,用于利用處理層從所述硬件層獲取錄音的音頻數據;
所述處理模塊包括:第一處理子模塊,用于利用處理層對所述音頻數據進行音效處理,并混合到播放數據中進行播放;所述處理層包括數字音頻處理器。
第二種,針對沒有數字音頻處理器的終端,所述獲取模塊包括:第二獲取子模塊,用于利用內核層從所述硬件層獲取錄音的音頻數據;
所述處理模塊包括:第二處理子模塊,用于利用框架層對所述音頻數據進行音效處理,并利用內核層將處理后的音頻數據混合到播放數據中進行播放。
利用框架層對所述音頻數據進行音效處理可以增強系統的穩定性。
為了防止頻繁執行音效處理操作,本發明實施例中,所述處理模塊包括:第三處理子模塊,用于在錄音的音頻數據的幀數大于或等于預設值時,利用框架層對所述音頻數據進行音效處理。
也可以說是,第三處理子模塊在錄音緩存中的數據達到預設值時,發送一個事件給KTV音效處理模塊處理。預設值優選240幀。
為了保證播放跟錄音同步,也不會出現斷音跟啪音,本發明實施例二中,所述獲取模塊包括:采集子模塊,用于利用與硬件層相鄰的層使用第一采樣率從所述硬件層采集錄音的音頻數據;
所述處理模塊包括:第四處理子模塊,用于對所述音頻數據進行音效處理,并混合到播放數據中使用所述第一采樣率進行播放。
優選的,所述處理模塊包括:第五處理子模塊,用于對所述音頻數據進行消噪、動態壓縮、均衡和混響處理。當然還可以進行其他操作,在此不做限定。
具體的,所述處理模塊包括:第六處理子模塊,用于對所述音頻數據進行音效處理,并保存;播放子模塊,用于將處理后的音頻數據混合到播放數據中進行播放。
此處,保存音效處理后的音頻數據是為了便于將處理后的音頻數據混合到播放數據中進行播放。
其中,上述音頻數據處理方法的所述實現實施例均適用于該終端的實施例中,也能達到相同的技術效果。
實施例三
如圖5所示,本發明實施例三提供的終端500包括:
至少一個處理器501、存儲器502、至少一個網絡接口504和其他用戶接口503。終端500中的各個組件通過總線系統505耦合在一起。可理解,總線系統505用于實現這些組件之間的連接通信。總線系統505除包括數據總線之外,還包括電源總線、控制總線和狀態信號總線。但是為了清楚說明起見,在圖5中將各種總線都標為總線系統505。
其中,用戶接口503可以包括顯示器、鍵盤或者點擊設備(例如,鼠標,軌跡球(trackball)、觸感板或者觸摸屏等。
可以理解,本發明實施例中的存儲器502可以是易失性存儲器或非易失性存儲器,或可包括易失性和非易失性存儲器兩者。其中,非易失性存儲器可以是只讀存儲器(Read-Only Memory,ROM)、可編程只讀存儲器(Programmable ROM,PROM)、可擦除可編程只讀存儲器(Erasable PROM,EPROM)、電可擦除可編程只讀存儲器(Electrically EPROM,EEPROM)或閃存。易失性存儲器可以是隨機存取存儲器(Random Access Memory,RAM),其用作外部高速緩存。通過示例性但不是限制性說明,許多形式的RAM可用,例如靜態隨機存取存儲器(Static RAM,SRAM)、動態隨機存取存儲器(Dynamic RAM,DRAM)、同步動態隨機存取存儲器(Synchronous DRAM,SDRAM)、雙倍數據速率同步動態隨機存取存儲器(Double Data Rate SDRAM,DDRSDRAM)、增強型同步動態隨機存取存儲器(Enhanced SDRAM,ESDRAM)、同步連接動態隨機存取存儲器(Synchlink DRAM,SLDRAM)和直接內存總線隨機存取存儲器(Direct Rambus RAM,DRRAM)。本文描述的系統和方法的存儲器502旨在包括但不限于這些和任意其它適合類型的存儲器。
在一些實施方式中,存儲器502存儲了如下的元素,可執行模塊或者數據結構,或者他們的子集,或者他們的擴展集:操作系統5021和應用程序5022。
其中,操作系統5021,包含各種系統程序,例如框架層、核心庫層、驅動層等,用于實現各種基礎業務以及處理基于硬件的任務。應用程序5022,包含各種應用程序,例如媒體播放器(Media Player)、瀏覽器(Browser)等,用于實現各種應用業務。實現本發明實施例方法的程序可以包含在應用程序5022中。
在本發明實施例中,通過調用存儲器502存儲的程序或指令,具體的,可以是應用程序5022中存儲的程序或指令,處理器501用于利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據;對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
上述本發明實施例揭示的方法可以應用于處理器501中,或者由處理器501實現。處理器501可能是一種集成電路芯片,具有信號的處理能力。在實現過程中,上述方法的各步驟可以通過處理器501中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器501可以是通用處理器、數字信號處理器(Digital Signal Processor,DSP)、專用集成電路(Application Specific Integrated Circuit,ASIC)、現成可編程門陣列(Field Programmable Gate Array,FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實現或者執行本發明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。結合本發明實施例所公開的方法的步驟可以直接體現為硬件譯碼處理器執行完成,或者用譯碼處理器中的硬件及軟件模塊組合執行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領域成熟的存儲介質中。該存儲介質位于存儲器502,處理器501讀取存儲器502中的信息,結合其硬件完成上述方法的步驟。
可以理解的是,本文描述的這些實施例可以用硬件、軟件、固件、中間件、微碼或其組合來實現。對于硬件實現,處理單元可以實現在一個或多個專用集成電路(Application Specific Integrated Circuits,ASIC)、數字信號處理器(Digital Signal Processing,DSP)、數字信號處理設備(DSP Device,DSPD)、可編程邏輯設備(Programmable Logic Device,PLD)、現場可編程門陣列(Field-Programmable Gate Array,FPGA)、通用處理器、控制器、微控制器、微處理器、用于執行本申請所述功能的其它電子單元或其組合中。
對于軟件實現,可通過執行本文所述功能的模塊(例如過程、函數等)來實現本文所述的技術。軟件代碼可存儲在存儲器中并通過處理器執行。存儲器可以在處理器中或在處理器外部實現。
可選地,處理器501具體用于:利用處理層從所述硬件層獲取錄音的音頻數據;利用處理層對所述音頻數據進行音效處理,并混合到播放數據中進行播放;所述處理層包括數字音頻處理器。
可選地,處理器501具體還用于:利用內核層從所述硬件層獲取錄音的音頻數據;利用框架層對所述音頻數據進行音效處理,并利用內核層將處理后的音頻數據混合到播放數據中進行播放。
可選地,處理器501更具體用于:在錄音的音頻數據的幀數大于或等于預設值時,利用框架層對所述音頻數據進行音效處理。
可選地,處理器501具體還用于:利用與硬件層相鄰的層使用第一采樣率從所述硬件層采集錄音的音頻數據;對所述音頻數據進行音效處理,并混合到播放數據中使用所述第一采樣率進行播放。
終端500能夠實現前述實施例中終端實現的各個過程,為避免重復,這里不再贅述。
綜上,本發明實施例三提供的所述終端通過利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據,可以減少經過的緩存,實現低延時耳返,并不增加額外的硬件成本。
實施例四
具體地,如圖6所示,本發明實施例四中的終端600可以為手機、平板電腦、個人數字助理(Personal Digital Assistant,PDA)、或車載電腦等。
圖6中的終端600包括射頻(Radio Frequency,RF)電路610、存儲器620、輸入單元630、顯示單元640、處理器660、音頻電路670、WiFi(Wireless Fidelity)模塊680和電源690。
其中,輸入單元630可用于接收用戶輸入的數字或字符信息,以及產生與終端600的用戶設置以及功能控制有關的信號輸入。具體地,本發明實施例中,該輸入單元630可以包括觸控面板631。觸控面板631,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板631上的操作),并根據預先設定的程式驅動相應的連接裝置。可選的,觸控面板631可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉換成觸點坐標,再送給該處理器660,并能接收處理器660發來的命令并加以執行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現觸控面板631。除了觸控面板631,輸入單元630還可以包括其他輸入設備632,其他輸入設備632可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
其中,顯示單元640可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端600的各種菜單界面。顯示單元640可包括顯示面板641,可選的,可以采用LCD或有機發光二極管(Organic Light-Emitting Diode,OLED)等形式來配置顯示面板641。
應注意,觸控面板631可以覆蓋顯示面板641,形成觸摸顯示屏,當該觸摸顯示屏檢測到在其上或附近的觸摸操作后,傳送給處理器660以確定觸摸事件的類型,隨后處理器660根據觸摸事件的類型在觸摸顯示屏上提供相應的視覺輸出。
觸摸顯示屏包括應用程序界面顯示區及常用控件顯示區。該應用程序界面顯示區及該常用控件顯示區的排列方式并不限定,可以為上下排列、左右排列等可以區分兩個顯示區的排列方式。該應用程序界面顯示區可以用于顯示應用程序的界面。每一個界面可以包含至少一個應用程序的圖標和/或widget桌面控件等界面元素。該應用程序界面顯示區也可以為不包含任何內容的空界面。該常用控件顯示區用于顯示使用率較高的控件,例如,設置按鈕、界面編號、滾動條、電話本圖標等應用程序圖標等。
其中處理器660是終端600的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執行存儲在第一存儲器621內的軟件程序和/或模塊,以及調用存儲在第二存儲器622內的數據,執行終端600的各種功能和處理數據,從而對終端600進行整體監控。可選的,處理器660可包括一個或多個處理單元。
在本發明實施例中,通過調用存儲該第一存儲器621內的軟件程序和/或模塊和/或該第二存儲器622內的數據,處理器660利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據;對所述音頻數據進行音效處理,并混合到播放數據中進行播放。
可選地,處理器660具體用于:利用處理層從所述硬件層獲取錄音的音頻數據;利用處理層對所述音頻數據進行音效處理,并混合到播放數據中進行播放;所述處理層包括數字音頻處理器。
可選地,處理器660具體還用于:利用內核層從所述硬件層獲取錄音的音頻數據;利用框架層對所述音頻數據進行音效處理,并利用內核層將處理后的音頻數據混合到播放數據中進行播放。
可選地,處理器660更具體用于:在錄音的音頻數據的幀數大于或等于預設值時,利用框架層對所述音頻數據進行音效處理。
可選地,處理器660具體還用于:利用與硬件層相鄰的層使用第一采樣率從所述硬件層采集錄音的音頻數據;對所述音頻數據進行音效處理,并混合到播放數據中使用所述第一采樣率進行播放。
可見,本發明實施例四提供的所述終端通過利用與硬件層相鄰的層從所述硬件層獲取錄音的音頻數據,可以減少經過的緩存,實現低延時耳返,并不增加額外的硬件成本。
需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結合來實現。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設備中還存在另外的相同要素。
以上所述,僅為本發明的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明揭露的技術范圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應以權利要求的保護范圍為準。