專(zhuān)利名稱(chēng):將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種音頻轉(zhuǎn)換技術(shù),尤其是涉及一種將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法。
背景技術(shù):
X86或80x86是英特爾Intel首先開(kāi)發(fā)制造的一種微處理器體系結(jié)構(gòu)的泛稱(chēng)。該系列較早期的處理器名稱(chēng)是以數(shù)字來(lái)表示,并以“86”作為結(jié)尾,包括Intel 8086,80186,80286,80386以及80486,因此其架構(gòu)被稱(chēng)為“x86”。X86兼容計(jì)算機(jī)的聲卡,通常都具有幾路外部信號(hào)的模擬輸入接口,聲卡的輸出接 口一般分為模擬輸出和SroiF (SPDIF是S0NY、PHILIPS數(shù)字音頻接口的簡(jiǎn)稱(chēng),就傳輸方式而言,sroiF分為輸出和輸入兩種)數(shù)字輸出兩種信號(hào)格式。對(duì)于從系統(tǒng)內(nèi)部,由數(shù)據(jù)總線傳輸過(guò)來(lái)的音頻,例如由windows內(nèi)置音頻播放器播放的音頻,貝U可以根據(jù)配置,既能從聲卡的模擬輸出接口輸出,也能從聲卡的SPDIF數(shù)字輸出接口輸出。但是對(duì)于從聲卡的模擬輸入接口輸入的音頻,由于聲卡內(nèi)部的音頻通道限制,則只能從聲卡的模擬輸出接口輸出,而不能由SPDIF數(shù)字輸出接口輸出。如圖I所示的目前聲卡提供的功能框圖,操作系統(tǒng)經(jīng)過(guò)IIS音頻數(shù)字接口與聲卡相連,由操作系統(tǒng)產(chǎn)生的音源(如mediaplaylO媒體播放器播放的音樂(lè)),經(jīng)由IIS系統(tǒng)總線,通過(guò)聲卡處理后既可以從sroiF數(shù)字輸出接口輸出,也可以從模擬通道輸出接口輸出。但是,例如“前面板MIC、藍(lán)牙音頻、收音機(jī)、3G喇叭”這些從模擬通道輸入接口輸入聲卡的音源,由于聲卡內(nèi)部不具備“模擬輸入-數(shù)字輸出”的直接通道,則不能直接由sroiF數(shù)字輸出接口輸出。因此,如果有外部音源接入聲卡的模擬通道輸入接口,而聲卡是通過(guò)SPDIF數(shù)字接口與后級(jí)功放相連,那么外部音源將無(wú)法在功放推動(dòng)的功放,比如各種喇叭(如圖I中的模擬后喇叭、模擬前喇口八、模擬中置/低音喇機(jī)和模擬環(huán)繞喇機(jī))播放出聲音。對(duì)于用X86兼容計(jì)算機(jī)平臺(tái)搭建的嵌入式系統(tǒng)來(lái)說(shuō)(例如目前高端的車(chē)載IVI系統(tǒng),大部分用X86平臺(tái)實(shí)現(xiàn)),由于無(wú)法實(shí)現(xiàn)外部模擬音源的數(shù)字化輸出,不得已只能選用同時(shí)具備模擬輸入和數(shù)字SPDIF輸入的功放,來(lái)匹配不同的輸入音源。這種做法,增加了硬件成本和線路復(fù)雜度,增加了聲卡輸出接口與功放輸入接口的連接線路,抗干擾能力下降,而且享受不到音頻數(shù)字傳輸帶來(lái)的高保真效果。
發(fā)明內(nèi)容
為解決現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提出一種實(shí)現(xiàn)外部模擬音源從聲卡SPDIF數(shù)字輸出接口輸出的方法,在不增加硬件成本及線路復(fù)雜度的情況下,實(shí)現(xiàn)高品質(zhì)的數(shù)字音頻傳輸。本發(fā)明米用如下技術(shù)方案實(shí)現(xiàn)一種將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其包括步驟將輸入所述聲卡的模擬音頻信號(hào)傳送給與所述聲卡相連的操作系統(tǒng);
由所述操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存,再將錄制的音頻數(shù)據(jù)進(jìn)行回放,獲得所述模擬音頻信號(hào)的數(shù)字音頻信號(hào);所述操作系統(tǒng)將所述數(shù)字音頻信號(hào)傳送給所述聲卡,經(jīng)所述聲卡解碼處理后,從所述聲卡的數(shù)字輸出接口輸出。其中,所述操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存的步驟具體包括打開(kāi)所述操作系統(tǒng)中的錄音設(shè)備;設(shè)定采集緩沖區(qū),為錄音準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu);對(duì)輸入模擬音頻信號(hào)進(jìn)行錄音,將錄音數(shù)據(jù)緩存至采集緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu);釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu);于錄制完畢后,關(guān)閉所述錄音設(shè)備。其中,所述錄音數(shù)據(jù)以wav標(biāo)準(zhǔn)的文件格式緩存在所述采集緩沖區(qū)。其中,所述將錄制的音頻數(shù)據(jù)進(jìn)行回放的步驟包括打開(kāi)所述操作系統(tǒng)中的播放設(shè)備;為播放準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu);獲取錄音得到音頻數(shù)據(jù)并進(jìn)行播放;釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu);于播放完畢后,關(guān)閉所述播放設(shè)備。其中,所述采集緩沖區(qū)設(shè)定為兩個(gè),且兩個(gè)采集緩沖區(qū)交替工作,使其中一個(gè)采集緩沖區(qū)用于對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存,而另一個(gè)采集緩沖區(qū)用于將錄制的音頻數(shù)據(jù)進(jìn)行回放時(shí)讀取錄音數(shù)據(jù)。其中,所述聲卡與所述操作系統(tǒng)通過(guò)IIS音頻數(shù)字接口連接。其中,所述聲卡的數(shù)字輸出接口為SPDIF數(shù)字輸出接口。其中,所述sroiF數(shù)字輸出接口與數(shù)字功放相連,由數(shù)字功放播放所述數(shù)字音頻信號(hào)。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明不需要額外的硬件開(kāi)銷(xiāo),用純軟件的方法實(shí)現(xiàn)了聲卡模擬輸入到數(shù)字輸出的轉(zhuǎn)換,不僅節(jié)省了系統(tǒng)成本,還提高了系統(tǒng)的整體音質(zhì)。
圖I是現(xiàn)在聲卡與操作系統(tǒng)及喇叭的連接關(guān)系示意圖;圖2是本發(fā)明的聲卡與操作系統(tǒng)及喇叭的連接關(guān)系示意圖;圖3是對(duì)輸入的模擬音頻信號(hào)進(jìn)行數(shù)據(jù)采集的流程示意圖;圖4是操作系統(tǒng)控制對(duì)采集音頻信號(hào)進(jìn)行回放的流程示意圖。
具體實(shí)施例方式本發(fā)明提出一種將外部輸入聲卡的模擬音源轉(zhuǎn)換成聲卡的SPDIF數(shù)字輸出接口 輸出的方法,在不增加硬件成本及線路復(fù)雜度的情況下,實(shí)現(xiàn)聲卡高品質(zhì)的數(shù)字音頻傳輸。如圖2所示,在操作系統(tǒng)中采用音頻錄制線程對(duì)從聲卡的模擬通道輸入接口輸入聲卡的模擬音頻信號(hào)進(jìn)行數(shù)據(jù)采樣、錄制和緩存,然后再由音頻回放線程對(duì)錄制的音頻進(jìn)行回放,由于系統(tǒng)回放的數(shù)字音頻信號(hào)可由IIS系統(tǒng)總線進(jìn)入聲卡,經(jīng)聲卡解碼處理后,由聲卡的SPDIF數(shù)字輸出接口輸出。因此,本發(fā)明操作系統(tǒng)(或控制器)在聲卡外給聲卡的模擬輸入和數(shù)字輸出之間建立了一個(gè)數(shù)字通道,該方法完全由計(jì)算機(jī)軟件來(lái)實(shí)現(xiàn),在不增加硬件成本和開(kāi)銷(xiāo)的情況下,實(shí)現(xiàn)了聲卡的模擬輸入轉(zhuǎn)數(shù)字輸出。雖然用軟件錄制和和緩存音頻會(huì)造成一點(diǎn)延遲,但是IOOms左右的延遲,對(duì)于收音機(jī)、電話這些車(chē)載音頻應(yīng)用來(lái)說(shuō),使用者完全感受不到差
巳本發(fā)明所提及的操作系統(tǒng),一般是指嵌入式系統(tǒng)。以操作系統(tǒng)為嵌入式系統(tǒng)為例進(jìn)一步描述本發(fā)明的具體實(shí)現(xiàn)方式。 結(jié)合圖3和圖4所示,本方案采用底層函數(shù)接口實(shí)現(xiàn)采集與播放,如wavelnOpen、waveOutOpen等音頻函數(shù),在方便性與性能上比較平衡。外部音源(收音機(jī)、電話等)進(jìn)入的模擬信號(hào),通過(guò)聲卡實(shí)時(shí)采集后,變成數(shù)字信號(hào),然后經(jīng)過(guò)數(shù)字功放或喇叭輸出。所述音頻錄制線程對(duì)輸入聲卡的模擬音頻信號(hào)進(jìn)行數(shù)據(jù)采樣、錄制和緩存的步驟如下利用wavelnOpen函數(shù)打開(kāi)操作系統(tǒng)中的錄音設(shè)備;由waveInAddBuffer函數(shù)設(shè)定采集緩沖區(qū),為錄音準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu),這是關(guān)鍵的一步,因?yàn)橐孤暱軌蛘_播放,必須建立一種與之通信的標(biāo)準(zhǔn),這種標(biāo)準(zhǔn)就是音頻文件的格式,所以一定要保證采集緩沖區(qū)的格式符合wav標(biāo)準(zhǔn);由wavelnStart函數(shù)開(kāi)始錄制輸入模擬音頻的數(shù)據(jù);釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu);于錄制完畢后,關(guān)閉錄音設(shè)備。所述音頻回放線程錄制的音頻進(jìn)行回放的步驟包括利用waveOutOpen函數(shù)打開(kāi)操作系統(tǒng)中的播放設(shè)備;為播放準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu);獲取音頻數(shù)據(jù)使用waveOutWrite函數(shù)進(jìn)行播放;釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu);于播放完畢后,關(guān)閉播放設(shè)備。使用底層的音頻函數(shù)對(duì)聲音進(jìn)行采集、回放時(shí),數(shù)字音頻數(shù)據(jù)是存放在操作系統(tǒng)的內(nèi)存的采集緩沖區(qū)之中。當(dāng)采集緩沖區(qū)中數(shù)據(jù)滿(mǎn)時(shí)(得到MM_WIM_DATA消息)以及回放緩沖區(qū)中數(shù)據(jù)為空(得到MM_W0M_D0NE消息)時(shí),用戶(hù)可以采用相應(yīng)的消息映射函數(shù)來(lái)處理相應(yīng)的過(guò)程。為了加快性能與提高效率,本方案中采集緩沖區(qū)默認(rèn)會(huì)有兩個(gè),假設(shè)為采集緩沖區(qū)A與采集緩沖區(qū)B。因?yàn)椴杉瘮?shù)據(jù)會(huì)有延時(shí),本方案中默認(rèn)時(shí)間為100毫秒。即,音頻錄制線程先準(zhǔn)備100毫秒長(zhǎng)度的音頻數(shù)據(jù)放入采集緩沖區(qū)A中,進(jìn)行預(yù)先填充采集緩沖區(qū)A的數(shù)據(jù)結(jié)構(gòu);然后,當(dāng)采集緩沖區(qū)A滿(mǎn)后,直接將采集緩沖區(qū)A中的數(shù)據(jù)提交給音頻回放線程,通知方式以WINDOWS內(nèi)核對(duì)象HANDLE hEvent是否被觸發(fā)為前提條件,以提高通知性能,避免聲音出現(xiàn)雜音或不正常情況;同時(shí)對(duì)于來(lái)到的新的錄制音頻數(shù)據(jù),放入采集緩沖區(qū)B中,依次類(lèi)推,采集緩沖區(qū)A與采集緩沖區(qū)B交替分別由音頻錄制線程和音頻回放線程使用,從而提高本發(fā)明的處理性能與效率。綜上,從聲卡外部輸入的模擬信號(hào),通過(guò)IIS音頻數(shù)字接口將模擬音頻信號(hào)傳輸給操作系統(tǒng),經(jīng)過(guò)操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄制和回放處理后,以數(shù)字音頻信號(hào)方式再由IIS音頻數(shù)字接口進(jìn)入聲卡,使聲卡可以從數(shù)字輸出接口(比如SPDIF數(shù)字輸出接口)輸出數(shù)字音頻信號(hào)。實(shí)踐證明,使用本方法后,從roiF數(shù)字輸出接口輸出給數(shù)字功放的音頻信號(hào),具有較佳的播放品質(zhì)。因此,本發(fā)明不需要額外的硬件開(kāi)銷(xiāo),用純軟件的方法實(shí)現(xiàn)了聲卡模擬輸入到數(shù)字輸出的轉(zhuǎn)換,不僅節(jié)省了系統(tǒng)成本,還提高了系統(tǒng)的整體音質(zhì)。 以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述方法包括步驟 將輸入所述聲卡的模擬音頻信號(hào)傳送給與所述聲卡相連的操作系統(tǒng); 由所述操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存,再將錄制的音頻數(shù)據(jù)進(jìn)行回放,獲得所述模擬音頻信號(hào)的數(shù)字音頻信號(hào); 所述操作系統(tǒng)將所述數(shù)字音頻信號(hào)傳送給所述聲卡,經(jīng)所述聲卡解碼處理后,從所述聲卡的數(shù)字輸出接口輸出。
2.根據(jù)權(quán)利要求I所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存的步驟具體包括 打開(kāi)所述操作系統(tǒng)中的錄音設(shè)備; 設(shè)定采集緩沖區(qū),為錄音準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu); 對(duì)輸入模擬音頻信號(hào)進(jìn)行錄音,將錄音數(shù)據(jù)緩存至采集緩沖區(qū)的數(shù)據(jù)結(jié)構(gòu); 釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu); 于錄制完畢后,關(guān)閉所述錄音設(shè)備。
3.根據(jù)權(quán)利要求2所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述錄音數(shù)據(jù)以wav標(biāo)準(zhǔn)的文件格式緩存在所述采集緩沖區(qū)。
4.根據(jù)權(quán)利要求2所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述將錄制的音頻數(shù)據(jù)進(jìn)行回放的步驟包括 打開(kāi)所述操作系統(tǒng)中的播放設(shè)備; 為播放準(zhǔn)備相應(yīng)的數(shù)據(jù)結(jié)構(gòu); 獲取錄音得到音頻數(shù)據(jù)并進(jìn)行播放; 釋放相應(yīng)的數(shù)據(jù)結(jié)構(gòu); 于播放完畢后,關(guān)閉所述播放設(shè)備。
5.根據(jù)權(quán)利要求4所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述采集緩沖區(qū)設(shè)定為兩個(gè),且兩個(gè)采集緩沖區(qū)交替工作,使其中一個(gè)采集緩沖區(qū)用于對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存,而另一個(gè)采集緩沖區(qū)用于將錄制的音頻數(shù)據(jù)進(jìn)行回放時(shí)讀取錄音數(shù)據(jù)。
6.根據(jù)權(quán)利要求I所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述聲卡與所述操作系統(tǒng)通過(guò)IIS音頻數(shù)字接口連接。
7.根據(jù)權(quán)利要求I所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述聲卡的數(shù)字輸出接口為SPDIF數(shù)字輸出接口。
8.根據(jù)權(quán)利要求7所述將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其特征在于,所述sroiF數(shù)字輸出接口與數(shù)字功放相連,由數(shù)字功放播放所述數(shù)字音頻信號(hào)。
全文摘要
本發(fā)明公開(kāi)一種將輸入聲卡的模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)輸出的方法,其包括步驟將輸入所述聲卡的模擬音頻信號(hào)傳送給與所述聲卡相連的操作系統(tǒng);由所述操作系統(tǒng)對(duì)模擬音頻信號(hào)進(jìn)行錄音和緩存,再將錄制的音頻數(shù)據(jù)進(jìn)行回放,獲得所述模擬音頻信號(hào)的數(shù)字音頻信號(hào);所述操作系統(tǒng)將所述數(shù)字音頻信號(hào)傳送給所述聲卡,經(jīng)所述聲卡解碼處理后,從所述聲卡的數(shù)字輸出接口輸出。本發(fā)明不需要額外的硬件開(kāi)銷(xiāo),用純軟件的方法實(shí)現(xiàn)了聲卡模擬輸入到數(shù)字輸出的轉(zhuǎn)換,不僅節(jié)省了系統(tǒng)成本,還提高了系統(tǒng)的整體音質(zhì)。
文檔編號(hào)G11B20/10GK102664028SQ20121012686
公開(kāi)日2012年9月12日 申請(qǐng)日期2012年4月26日 優(yōu)先權(quán)日2012年4月26日
發(fā)明者鄒紅斌 申請(qǐng)人:深圳市數(shù)動(dòng)汽車(chē)電子科技有限公司