iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0

https://ithelp.ithome.com.tw/upload/images/20181017/20089358a50CSkwWe6.png
圖片來源:馬克

正文開始

首先最一開始的文章,咱們要來討論聲音的採集這個主題,但是我覺得比較準備的說法是下面這種說明:

要如何採集聲音到電腦中呢 ?

要理解這個問題,咱們就需要從最源頭開始說起,什麼是聲音呢 ? 知道以後,咱們還要思考那電腦又是如何知道聲音是啥呢 ? 最後咱們會理一理當你採集了一段聲音,它需要花費多少的空間來儲放它呢 ?

本篇文章將分成以下三段如下:

  • 聲音是啥呢 ?
  • 要如何將聲音採集到電腦裡,而且電腦也看的懂呢 ? ( PCM )
  • PCM 所採集到的聲音有多大呢 ?

聲音是啥呢 ?


它是一種震動所產生的聲波。

聲波就是當一個人在說話時,它發出的聲音震動到空氣中,使得聲音周圍的空氣產生了變化,然後產生的一種波,這個就是所謂的聲波。

然後說到了振動,就該說到頻率,通常咱們用來描述它振動的多快的單位就是赫茲(Hz)它的定義如下:

赫茲(Hz)代表單位時間內周期性事件發生的事件

ex. 1Hz = 1/s (就是一秒動一次的意思)

咱們人耳可以聽到的範例約為 20 ~ 2萬赫茲,高於它的就被稱為超音波。

要如何將聲音採集到電腦裡,而且電腦也看的懂呢 ? ( PCM )


就是使用麥克風,然後將聲音轉成數位訊號,也就是 0 與 1。

這裡我們就要提到一個叫PCM 脈波編碼調變的東東,它是一種將類比訊號數位化的方法。

類比訊號是啥 ? 它就是一種連續的訊號,像聲音與電壓都是屬於這類型,而數位訊號就是將連續的訊號進行加工,讓它只有 0 與 1 的非連續的訊息。

回來到 PCM 來看它的處理過程如下圖,總共有三個流程分別為抽樣、量化、編碼。

https://ithelp.ithome.com.tw/upload/images/20181017/20089358dRVdcs5d91.png

PCM 過程進行中,首先會先將聲音進行定期性的採樣,來看看當時的頻率是多少,那我們的採樣的頻率要多高呢 ? 像咱們人類能聽到的聲音最大為 20kHz(2萬赫茲),也就是代表 1 秒振動 2 萬次,那這樣的話通常會進行 4 萬次的採樣(By 採樣定理),才能確保有採集到人類可以聽到的聲音樣本數。而採樣率就會用 40kHz 來表達。

採樣完成後,接下來是將這些資料進行量化也就是所謂的離散化,哼哼 ~ 有沒懷念大學時的危機分,雖然在抽樣時以時間軸來看的確是離散型資料,但是問題是還是有些誤差,主要問題是採樣率與採樣大小,反正這裡你就想成還要在離散化一次就對囉 ~ 想深入了解為啥的可以看看這篇文章

https://ithelp.ithome.com.tw/upload/images/20181017/20089358Hm02b32QYH.jpg
圖片來源: 電腦王-mp3不是最高的聲音格式
https://addpipe.com/blog/audio-constraints-getusermedia/

最後會用 PCM 的自訂格式來將每一組量化值表示為一組二進位,而這就是電腦所可以理解的聲音。

備註

上面說的 PCM 嚴格來說有兩種意義,首先第一種 PCM 它是指方法,它將聲音由類比轉成數位訊號,而第二種 PCM 是指編碼,也就是聲音 PCM 完後所產生的 PCM 編碼,它就是一組 PCM 所產生出來的 0 與 1 的集合,像在網路上常說什麼編碼轉成 PCM 編碼的就是指第二種意思。

純 PCM 所採集到的聲音會有多大呢 ??


注意一下: 下面如果是用大寫的如 KB 指的是 (Kilobyte) 而小寫就是 kb (kilobit)

先定義一下,通常在聲音中我們是使用位元率 bps (bit Per Second)來當做你要花費多少空間的單位,假設你看到說有段聲音 bps 為 10 bps ,那就代表這段聲音 1 秒中共有 10 bit 的資料量。

而 PCM 的 bps 公式如下:

位元率 (bps) = 採樣率(hz) x 採樣大小(bit) x 通道

位元率

就是咱們用來衡量一個音訊的品質,越高就代表質量越好,但相對的就代表所耗空間越大,像如果是 32000 bit/sec = 32 kbps 就代表你每秒鐘要處理 32 kbit 的量,如果放到檔案裡,就代表這個檔案如果有 10 秒就要花 32 * 10 = 320 kbit 的空間。

採樣率

這東東我們上面有提到,也就是一秒鐘會抓取幾次的概念,如果以上面的章節說的 40kHz 為例,就代表一秒會抓取 40 萬次,這東東越高,代表聲音越高大尚的優質。

P.S 下表為在聲音的領域常用的採樣率

8,000 Hz => 電話所用的採樣率
22,050 Hz => 無線電廣播所用的採樣率
44,100 Hz => 音樂 CD 的所有的採樣率
96,000 ~ 192,000 Hz => 高大尚的藍光或啥 HD-DVD 的採樣率

採樣大小

這東東可以理解為對聲音的解析度,這東東越高,就代表解析度越高。常用的有 8、16、32 bit,其中 16 位元為主流,像 cd 的就是 16 位元的。

通道

就是聲音的通道數,像咱們常聽到的雙聲道,就是算 2。

範例

假設咱們有個聲音採樣的數據如下:

採樣率: 44.1 KHz
採樣大小: 16 bit
聲道: 2

位元率 = 44100 * 16 * 2 = 1,411,200 bps = 1,411.2 kbps = 176 KB/s

這也代表這如果你要錄製 1 分鐘的上述條件的聲音需要的空間,大約為 10 MB 的大小,如下計算。

176 * 60 = 10,560 KB = 10 MB

目前平均一首歌大約為 4 分鐘,所以如果以上述條件來看,一首歌就需要花 40 MB,想當然而這當然是太大囉,因此後來專家們就開發出各種壓縮的方法來解決這個問題囉。壓縮這部份我們之後的文章中會說明到。

結論


這篇文章中,咱們學習了三個重點:

  • 聲音是啥迷 ? 它就是自然界的震動。
  • 電腦如何理解聲音 ? 使用 PCM 將類比聲音轉換為數位訊號。
  • 使用 PCM 所採集的聲音有多大呢 ? 請看上面。

最後有個重點要補充一下,那就是在音頻世界 PCM 所代表的意思:

它就是最接近原始聲音的編碼,所以通常要比較一個聲音的音質,那就是指和 PCM 相比,它事實上就是聲音的 raw data。

參考資料



上一篇
30-01之開篇的心得感言
下一篇
30-03之聲音的編碼與壓縮
系列文
30天之即時網路影音開發攻略(小白本)30

尚未有邦友留言

立即登入留言