?一、數(shù)字音頻三要素
1.采樣率
采樣率即采樣頻率,指的一秒內(nèi)的采樣次數(shù),它反映了采樣點之間的間隔大小。常說的 44.1KHz 采樣率,也即 1 秒采集了 44100 個樣本。間隔越小,丟失的信息越少,數(shù)字聲音就越逼真細膩,要求的存儲量也就越大。由于計算機的工作速度和存儲容量有限,而且人耳的聽覺上限為20kHz,所以采樣頻率不可能也不需要太高。根據(jù)奈奎斯特采樣定律,只要采樣頻率高于信號中最高頻率的兩倍,就可以從采樣中恢復原始的波形。因此,40kHz以上的采樣頻率足以使人滿意。
在實際應用中,我們?yōu)榱似胶鈳捄鸵糍|(zhì),不同場景往往會有不同的選擇。常見的選擇如下:
?2.采樣位深
位深又叫做量化位數(shù)、采樣位數(shù)、分辨率,它是指聲音的連續(xù)強度被數(shù)字表示后可以分為多少級。N-bit的意思聲音的強度被均分為2^N級。16-bit的話,就是65535級。這是一個很大的數(shù)了,人可能也分辨不出六萬五千五百三十五分之一的音強差別。也可以說是聲卡的分辨率,它的數(shù)值越大,分辨率也就越高,所發(fā)出聲音的能力越強。原則上,這個值也是大一些比較好,但是記錄的數(shù)據(jù)量也會成倍增長。
和采樣率的選擇類似,雖然理論上來說位深越大越好,但是綜合帶寬、存儲、實際聽感的考慮,我們應該為不同場景選用不同的位深:
3.聲道數(shù)
聲音記錄只產(chǎn)生一個波形,稱為單聲道。聲音記錄只產(chǎn)生兩個波形,稱為立體聲雙道(最基本的立體聲是兩聲道:左聲道、右聲道)。立體聲比單聲道聲音豐滿、空間感強,但需要兩倍的存儲空間。
二、音頻碼率
數(shù)字音頻的三要素不僅影響音頻質(zhì)量,也會影響音頻存儲、傳輸所需的空間、帶寬。而實際應用場景下,音質(zhì)決定用戶體驗、帶寬決定成本,都是我們必須考慮到。音質(zhì)可能更多是主觀上的感受,但帶寬、空間是比較容易量化的,我們需要了解音頻碼率的概念。
音頻碼率,又稱為比特率,指的是單位時間內(nèi)(一般為1s)所包含的音頻數(shù)據(jù)量,可以通過公式計算。比如采樣率 44.1KHz,位深16bit的雙聲道音頻PCM數(shù)據(jù),它的原始碼率為:
原始碼率 = 采樣率/s x 位深/bit x 聲道數(shù) x 時長(1s)=44.1x1000x16x2x1 = 1411200 bps = 1411.2 kbps = 1.411 Mbps (需要注意單位之間的差異和轉換,b=bit)
如果一個PCM文件時長為1分鐘,則傳輸/存儲這個文件需要的數(shù)據(jù)量為:1.411 Mbps * 60s = 86.46Mb。
需要注意的是,上述計算結果是未經(jīng)壓縮的、原始音頻PCM數(shù)據(jù)的碼率。RTC場景下,往往還需要再使用 AAC、OPUS 等編碼算法做編碼壓縮,進一步減小帶寬、存儲的壓力。碼率的選擇也是一個綜合質(zhì)量和成本的博弈,以后我們會詳細講解音頻編碼的知識,此處大家先了解即可。
三、wav、mp3、pcm文件的組成部分
1.wav文件格式
wav是一種無損的音頻文件格式,wav文件格式是用于多媒體文件存儲的微軟RIFF規(guī)范的一個子集。一個RIFF文件從一個文件頭開始,后面是一系列的數(shù)據(jù)塊。一個wav文件通常只是一個帶有單一"WAVE"塊的RIFF文件。"WAVE"塊是由兩個子塊組成的,一個是指定數(shù)據(jù)格式的“fmt”塊和另一個是包含實際樣本數(shù)據(jù)的數(shù)據(jù)塊。這種形式被稱為是“規(guī)范形式”("Canonical form")。具體格式如圖所示:
上圖中的data區(qū)域就是就是真正的數(shù)據(jù)部分,data上面的44字節(jié)是文件頭,其文件頭格式可以用下面的結構體表示:
typedef struct WAV_HEADER_S
{
char riffType[4]; //4byte,資源交換文件標志:RIFF
unsigned int riffSize; //4byte,從下個地址到文件結尾的總字節(jié)數(shù)
char waveType[4]; //4byte,wav文件標志:WAVE
char formatType[4]; //4byte,波形文件標志:FMT(最后一位空格符)
unsigned int formatSize; //4byte,音頻屬性(compressionCode,numChannels,sampleRate,bytesPerSecond,blockAlign,bitsPerSample)所占字節(jié)數(shù)
unsigned short compressionCode;//2byte,格式種類(1-線性pcm-WAVE_FORMAT_PCM,WAVEFORMAT_ADPCM)
unsigned short numChannels; //2byte,通道數(shù)
unsigned int sampleRate; //4byte,采樣率
unsigned int bytesPerSecond; //4byte,傳輸速率
unsigned short blockAlign; //2byte,數(shù)據(jù)塊的對齊,即DATA數(shù)據(jù)塊長度
unsigned short bitsPerSample; //2byte,采樣精度-PCM位寬
char dataType[4]; //4byte,數(shù)據(jù)標志:data
unsigned int dataSize; //4byte,從下個地址到文件結尾的總字節(jié)數(shù),即除了wav header以外的pcm data length
}WAV_HEADER;
2.pcm文件格式
PCM(Pulse Code Modulation----脈碼調(diào)制錄音)。所謂PCM錄音就是將聲音等模擬信號變成符號化的脈沖列,再予以記錄。PCM信號是由[1]、[0]等符號構成的數(shù)字信號,而未經(jīng)過任何編碼和壓縮處理。與模擬信號比,它不易受傳送系統(tǒng)的雜波及失真的影響。動態(tài)范圍寬,可得到音質(zhì)相當好的影響效果。在音視頻中,PCM是一種用數(shù)字表示采樣模擬信號的方法。
3.mp3文件格式
MP3是一個數(shù)據(jù)壓縮格式,
4.wav與pcm文件的相互轉換
WAV可以使用多種音頻編碼來壓縮其音頻流,不過我們常見的都是音頻流被PCM編碼處理的WAV,但這不表示W(wǎng)AV只能使用PCM編碼,MP3編碼同樣也可以運用在WAV中,和AVI一樣,只要安裝好了相應的Decode,就可以欣賞這些WAV了。在Windows平臺下,基于PCM編碼的WAV是被支持得最好的音頻格式,所有音頻軟件都能完美支持,由于本身可以達到較高的音質(zhì)的要求,因此,WAV也是音樂編輯創(chuàng)作的首選格式,適合保存音樂素材。因此,基于PCM編碼的WAV被作為了一種中介的格式,常常使用在其他編碼的相互轉換之中,例如MP3轉換成WMA。
簡單來說:pcm是無損wav文件中音頻數(shù)據(jù)的一種編碼方式,但wav還可以用其它方式編碼。
(1)wav轉pcm,原理就是將文件頭去掉,數(shù)據(jù)轉成int型即可。文章來源:http://www.zghlxwxcb.cn/news/detail-608894.html
(2)pcm轉wav,原理就是利用wave庫,添加通道信息、采樣位數(shù)、采樣率等信息作為文件頭,pcm數(shù)據(jù)直接寫入即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-608894.html
到了這里,關于音頻文件PCM、WAV、MP3的區(qū)別以及文件合并的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!