1. 程式人生 > >多媒體技術基礎之---重新認識聲音

多媒體技術基礎之---重新認識聲音

聲音一個最基本的常識就是“它是一種能量”,初中物理課上我們也學過聲音的三要素分別是音色、音調和響度。
音色:簡單理解,就是一種聲音的固有特徵。比如,電子琴和小提琴發出的聲音是有明顯區別的,笛子和古箏也有各自的聲音特徵。有些聲音模仿秀的選手可以通過訓練,達到模仿不同人或者不同樂器的效果。
   
音調:也就是我們所說的頻率,單位是赫茲Hz,頻率越高聽起來越刺耳、越尖銳,頻率越低聽起來越低沉、越渾厚。醫學研究表明,人的聽覺系統能察覺的最低頻率為20Hz,最高為20000Hz,超出這個範圍人類一般就聽不到了。其實現實生活中根本就不存在完全能聽到20Hz~20kHz這樣的人,並且隨著年齡的增長、體質的變化,人能聽到的聲音只會是這個區間的一個子集。

人對不同頻率、不同分貝的聲音的生理反應也是有差別的,正如我們中醫裡提到的“五音”(角、徵、宮、商、羽)和身體臟腑(心、肝、脾、肺、腎)以及對人心神(喜、怒、憂、思、悲)的影響是一樣的。     例如“宮”調,風格悠揚沉靜、淳厚莊重,根據五音通五臟的理論,宮調入脾,對消化系統的作用比較明顯。這就是為什麼很多古代電視或者電影裡,皇庭壽宴席的時候一般都是奏宮樂。如果對中華文化感興趣的朋友肯定注意到,我們古代繁體字的藥材的“藥”和音樂的“樂”的字根是一樣的,可見老祖宗造字時並不是瞎畫的,這說明聲音的確還是可以治病。現在精通音律的老師傅是越來越少了。感慨一句,中華文明,博大精深,後繼者何也?嗚呼。。。扯遠了,收一下。
    
而人一般能發出的聲音訊率也是男女有別,大致範圍如下:

低音

中音

高音

82 Hz392Hz

123 Hz493Hz

164 Hz698Hz

220 Hz1.1kHz

    響度:就是聲音的大小,一般用“分貝”來表示,單位是dB,這個引數說明了聲音所攜帶的能量的大小,聲音越大,在相同傳播介質裡所能傳遞的距離就遠。
   
在物理世界裡,我們的聲音在傳輸過程中都是連續,像下面這個樣子:

    可是如果要讓計算機來處理它,就牽扯到我們經常說的數字化了。關於聲音在數字化過程中有三個核心步驟:取樣、量化和編碼。
   採
樣:在模擬聲音的時間軸上週期性地取點,將時域連續的模擬訊號變成離散訊號的過程就叫做取樣。每秒鐘的取樣點越多,數字化之後的聲音就越接近原模擬聲音。每秒鐘的取樣次數就叫做取樣頻率,根據奈奎斯特定律,取樣頻率fs和被取樣聲音的最高頻率fmax的關係如下:

fs≥2fmax

    PS:有些地方把聲音的頻譜範圍也叫做聲音的頻寬,指的是聲音從最低頻率到最高頻率之間的寬度。
    量化:用於表示在取樣點所獲取的聲音能量值。量化就是將空域連續的模擬訊號轉換成離散訊號的過程。量化精度越高,所能表示的聲音取樣範圍就越大,量化誤差就也越小,相應地,所佔用的儲存空間也就越大。簡而言之,就是對於取樣所得到的樣本點,我們打算用幾位二進位制數來表示它。例如,如果是8bit的量化精度,那麼我們最多能表示的取樣點就只有256個;如果是16bit,最多能表示的取樣點就可以多達65536個。

    編碼:對於經過取樣量化後的資料按一定的演算法進行編碼處理。在計算機裡最接近模擬聲音的編碼方式就是PCM脈衝編碼方式。那麼對於上述量化結果,我們發現這段音訊取樣點的量化空間最多也就是11個,我們用4bit就可以完全表示它們了。所以量化精度就是4bit,可表示的樣本空間是[0~15],因此,上述編碼序列就是{3567854810851125}。

當然,真正到了量化階段時又分均勻量化和非均勻量化,量化的同時就自動編碼成PCM格式的資料了。通常意義來說,量化和編碼都是同時進行的。
   
ITU-T建議的G.711是最早公佈的語音編碼標準,它規定了A13折線和u15折線PCM編碼的兩種方案。這裡就不再繼續展開了,都是數學層面的東東,不糾結。中國和歐洲採用的A13折線的PCM編碼方式,北美和日本採用的是u15折線的PCM編碼方式。

在計算機裡我們就認為PCM就是數字音訊訊號的原始無損格式,其儲存方式通常是.wav檔案,即wav格式的音訊檔案就是原始的未經任何壓縮處理的數字音訊檔案,這樣的檔案大部分情況下都來自於錄音裝置。如果你使用音訊格式轉換工具將mp3轉成wav的話,那麼很不幸的是你的這個wav並不是無損格式的檔案,因為mp3格式的檔案是對原始wav檔案經過有失真壓縮後得來的,而這個過程不是可逆的,即mp3轉成的wav只有原始wav的部分資訊。但從人的聽覺系統來說,一般人是分辨不出來其中的差別,除非用專業發燒級音響裝置,再加上一雙有著專業特性的耳朵,區別還是很明顯的。

例如,我們手頭現在有款奧林巴斯的LS-14專業數碼錄音筆,我們將取樣頻率設為44100Hz,量化精度為16bit,採用雙聲道的模式進行音訊錄製,每秒鐘所產生的資料量為44100x16x2=176400 bit,那麼3分鐘將會產生的聲音資料約為30.28MB。顯然,這個結果顯然不太令人滿意,接下來就有了各種音訊壓縮演算法的出現,也就是多媒體技術術語裡所說的編碼器,其實就是壓縮演算法而已。目的只有一個:在高保真原有音質的前提下,最大限度地對數字化之後的PCM編碼檔案進行壓縮,以降低其所佔的磁碟空間整個過程可以描述如下:

    幸運的是,現在PCM編碼方式已經固化在很多音訊裝置的DSP晶片裡了,不需要我們關心。一種編碼演算法一定對應一種相應的解碼演算法才行,不然編來有毛用。我們可以看到,整個過程中PCM編碼格式充當了各種編解碼器之間轉換的中間橋樑,這也就是為什麼我們說PCM格式的聲音文是計算機裡的“模擬檔案”的原因了。不管是不同音訊壓縮格式之間的互相轉換,還是最終輸送給數模轉換器的格式都是PCM格式。

    上面幾種格式裡有個flac和其他幾種格式有著本質的區別,flac是無失真壓縮格式,和它齊名還有家喻戶曉的ape格式。什麼意思?無損格式的音訊檔案是在對原始wav檔案壓縮是沒有刪減過濾它的任何資訊的情況下,完全通過演算法活生生的把wav檔案的體重給減了下來,而且flacape可以完整還原原始wav的所有資訊,一個毫毛都不差。ape的壓縮比高達55%。這和那些有失真壓縮的mp3oggaac等是沒法相比的,因為人家是無損的,就這麼簡單。有些人喜歡聽CD,而另外一些人則喜歡聽mp3,其實他們根本就不是一個級別的,也沒有可比性的。最後,獻上天王的一首單曲以饗各位看官肯花寶貴的時間聽我在這裡唧唧歪歪的大半天,配上森海或者AKG的耳機好好享受一下生活吧(不敢保證每個人能都聽到那種感覺,畢竟人家mp3也不是蓋的)。
   
人生不止眼前的程式碼和BUG,還有耳朵與音樂。

    <script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> 閱讀(3448) | 評論(14) | 轉發(4) | 給主人留下些什麼吧!~~ 58_avatar_small.jpg

2013-11-21 12:30:23

lmnos:多謝提醒,我寫錯了,MP4確實不是一種不是一種音、視訊編解碼格式 MPEG-4它是一整套標準

共同學習
http://en.wikipedia.org/wiki/MPEG-4_Part_14
http://www.differencebetween.info/difference-between-mpeg4-and-mp4

回覆 | 舉報 28_avatar_small.jpg

lmnos2013-11-21 00:13:49

wjlkoorey258:你那個播放器真心不錯,特別是介面,哥們倍兒喜歡,建議在你的github上放一份,讓哥們也來膜拜膜拜。。。
糾正你個小知識點,mp4不是一種音、視訊編解碼格式,它只是一種容器(container)格式而已,哥們後面寫個多媒體的系列博文,到時候歡迎共同來探討哈。。65.gif67.gif

多謝提醒,我寫錯了,MP4確實不是一種不是一種音、視訊編解碼格式 MPEG-4它是一整套標準

回覆 | 舉報 58_avatar_small.jpg

2013-11-20 22:22:11

lmnos:我搗鼓各種音訊解碼器時,瞭解過這些,不過你寫的真心不錯,我最喜歡聽APE格式的音樂了,同時我的高歌一曲音樂播放器也支援mp3;ape;wma;wav;flac;ogg;cda; 
m4a;tta;acc+;mpc;mp4;ac3;MOD 這些格式

你那個播放器真心不錯,特別是介面,哥們倍兒喜歡,建議在你的github上放一份,讓哥們也來膜拜膜拜。。。
糾正你個小知識點,mp4不是一種音、視訊編解碼格式,它只是一種容器(container)格式而已,哥們後面寫個多媒體的系列博文,到時候歡迎共同來探討哈。。65.gif67.gif

回覆 | 舉報 58_avatar_small.jpg

2013-11-20 22:17:56

xdsnet:不是搞通訊的,是搞教育的,呵呵

老師好27.gif

回覆 | 舉報 28_avatar_small.jpg

lmnos2013-11-20 20:53:29

我搗鼓各種音訊解碼器時,瞭解過這些,不過你寫的真心不錯,我最喜歡聽APE格式的音樂了,同時我的高歌一曲音樂播放器也支援mp3;ape;wma;wav;flac;ogg;cda; 
m4a;tta;acc+;mpc;mp4;ac3;MOD 這些格式

回覆 | 舉報 評論熱議

相關推薦

多媒體技術基礎---重新認識聲音

聲音一個最基本的常識就是“它是一種能量”,初中物理課上我們也學過聲音的三要素分別是音色、音調和響度。音色:簡單理解,就是一種聲音的固有特徵。比如,電子琴和小提琴發出的聲音是有明顯區別的,笛子和古箏也有各自的聲音特徵。有些聲音模仿秀的選手可以通過訓練,達到模仿不同人或者不同

java8重新認識HashMap(轉自美團技術團隊)

java8之重新認識HashMap(轉自美團技術團隊) java8之重新認識HashMap 摘要 HashMap是Java程式設計師使用頻率最高的用於對映(鍵值對)處理的資料型別。隨著JDK(Java Developmet Kit)版本的更新,JDK1.8對HashMap底層的

GB28181技術基礎3 - RTP

同步控制 eal gb28181 格式 borde 重新 bsp 使用 復數 一. RTP協議 實時傳輸協議 RTP(Real-time Transport Protocol)是一個網絡傳輸協議,它是由IETF的多媒體傳輸工作小組1996年在RFC 1889中

上海大學數字媒體創意工程875多媒體技術基礎考研經驗分享

875多媒體技術基礎 聊個兩毛錢 相信點進來看的小朋友都是要考上海大學數字媒體創意工程專業的同學吧。 自己呢也是2018年報考的上海大學數字媒體專業,當年複試線320,我只考了306,所以遺憾未能過線,當時自己估計還以為能過線的,因為上大的招生簡章前幾年只有數字媒體創意工程(一

Gradle重新認識Gradle(專案結構、命令列、task、構建Java專案、包裝器)

前言:之前一直接觸使用Gradle完成Android專案的自動化構建,所謂重新認識Gradle是因為最近看了《Gradle IN Action》一書,對gradle進行了一次全面的重新的認識。所以決定以系列部落格,來完成自己對Gradle學習之路的一個總結。關於

研究JS執行機制重新認識JavaScript(1) ———— 認識Js執行上下文與執行機制

關於這個系列 javascript語言有很多奧祕,譬如其執行機制,內部原理,在歷史的這一段日子裡,它不僅帶來了複雜的互動效果和充分的效能效益,而且吸引了越來越多的開發者加入其中,但是隨著時間程序的發展,很多時候開發者們因為花樣繁複的JS庫與框架而忽略了JS本身的內部機制。無可厚非,這樣做是增加了效率,但是隨著

Java8系列重新認識HashMap

簡介 Java為資料結構中的對映定義了一個介面java.util.Map,此介面主要有四個常用的實現類,分別是HashMap、Hashtable、LinkedHashMap和TreeMap,類繼承關係如下圖所示: 下面針對各個實現類的特點做一些說明: (1) Has

Java 8系列重新認識HashMap

摘要 HashMap是Java程式設計師使用頻率最高的用於對映(鍵值對)處理的資料型別。隨著JDK(Java Developmet Kit)版本的更新,JDK1.8對HashMap底層的實現進行了優化,例如引入紅黑樹的資料結構和擴容的優化等。本文結合JDK1.7和J

Android多媒體認識聲音、錄音與播放(PCM)

一、對聲音的簡單認識 1、模擬訊號[摘錄於此] 模擬訊號傳輸過程中就是利用感測器把各種自然界各種連續的訊號轉換為幾乎一模一樣的電訊號。 比如說話聲音,原本是聲帶的震動。經過麥克風的採集,將聲波訊號轉換為電訊號, 電訊號波形是和原來的聲波波形一樣的。只是換種物理量來表示和傳遞。(電訊號模擬振動訊號)。 複製

JavaScript閉包(重新認識

log 變量 for 局部變量 ava logs 所在 數組函數 使用 最近又重新學習了閉包,發現之前沒有深刻理解作用域鏈,學習作用域鏈後對閉包才可以做到真正的理解。 閉包是指有權另一個函數作用域中變量的函數。要理解閉包首先理解作用域鏈。

JAVA基礎——重新認識String字符串

獲取字符串 ~~ 9.png 定義 如何 als color 每次 聲明 深入剖析Java之String字符串 在程序開發中字符串無處不在,如用戶登陸時輸入的用戶名、密碼等使用的就是字符串。 在 Java 中,字符串被作為 String 類型的對象處理。 String 類

模擬電路學習-電容,電感重新認識

呵呵 由於 img 哈哈 實驗 觀察 效果 圖片 重新 一、電容 電容是構成基礎電路的原件,它的重要性就不多說了,下面是關於電容的一些特性: 【1】線性電容端電壓和積聚的電荷量的關系是:q=Cu(其中C就是電容,單位法拉,u是電壓,單位福特,q單位庫倫) 【2】電容伏安特

JAVA基礎認識JAVA

自己已經學過java基礎了,現在想好好的總結一下。 一、JDK  JDK(Java Development Kit) 是整個JAVA的核心,包括了Java執行環境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基礎的類

web前端基礎教學技術講解css3動畫學習

關於動畫.我們學習分為三大點:     ​ 一.過渡動畫.即 2 d 變換 所謂過渡動畫,就是從初始狀態過渡到結束狀態這個過程中所產生的動畫。 ​ 過渡(transition)本身需要定義引數.否則,看不到效果.我們學到

PHP正則表示式基礎認識正則表示式

正則表示式是我們平常在程式開發過程中經常用到的一種工具,有關於它的起源以及除程式之外的應用場景咱就不贅述了,咱們只看它在程式中是如何來應用的。 這個正則表示式在我們程式中通常是把它當做一種模式去匹配一類字串,通俗地講,就是用一個字串描述一個特徵,完事驗證另外一個字串是否符合這個特徵的公式。你

web前端技術基礎課程講解淺談對soket的理解

淺談對soket的理解 定義: 網路上的兩個程式通過一個雙向的通訊鏈實現資料的交換,這個連結的一端就成為Socket 它是程序通訊的一種,即呼叫這個網路庫的api函式實現分佈在不同主機相關程序之間的資料交換,依照tcp/ip協議分給每個主機的網路地址,如果兩個主機要進行通訊,任何一個程序都要首先知道對方

web前端技術基礎課程詳解JavaScript面向物件

JavaScript中的面向物件是個老生常談的話題,但是依然有很多小夥伴處於懵逼狀態。面試時候最擔心的就是被問到面向物件相關的內容,自己看過無數的資料,依然對面向物件百思不得其解。到底什麼是原型?什麼是建構函式?什麼是繼承。。。一提到這些概念那真是欲哭無淚、悲憤交加,甚至恨的直咬牙!所以有必要談一次面向物件。

web前端技術基礎課程詳解JavaScript面向對象

面向對象 對象 而在 包含 lob 。。 運算 需要 全局屬性 JavaScript中的面向對象是個老生常談的話題,但是依然有很多小夥伴處於懵逼狀態。面試時候最擔心的就是被問到面向對象相關的內容,自己看過無數的資料,依然對面向對象百思不得其解。到底什麽是原型?什麽是構造函數

web前端技術基礎課程講解Vue.js構建方式

先介紹下Vue,它是一套用於構建使用者介面的漸進式框架。與其他大型框架不同的是Vue被設計為可以自底向上逐層應用。Vue的核心庫只關注檢視層,不僅易於上手,還方便與第三方庫或既有專案整合。另一方面當與現代化的工具鏈以及各種支援類庫結合使用時,Vue也完全能夠為複雜的單頁應用提供驅動。 Vue構建方式 有兩

軟考-多媒體基礎知識(1.聲音

@徵哥講軟考知識 軟考-多媒體基礎知識(1.聲音) 這個歡迎頁太複雜,就這樣吧。 聲音(sound),百度百科介紹其定義:聲音是物體振動產生的聲波。不要問我什麼是聲波,我再給你個解釋:聲波是發聲物體的振動傳播在在介質中。你是不是就迷糊了。所以,到此為止。 你好! 這是我第一次在