ntnuie hyw 0716rportal.lib.ntnu.edu.tw/bitstream/20.500.12235/98985/3/n...過i2c 來對codec...

16
34 第三章 研究系統架構 第一節 簡介 CPU IC 設計的快速進步,使得系統產品開發的腳步也隨之加 快,而在此同時每家 IC 公司所推出的晶片都各有著不同的硬體周邊 和市場規劃。在時間就是金錢的情況下,選擇適當的 SOC 平台可以 有效的節省開發時間並且提早進入市場卡位才能在這競爭當中脫穎 而出。一般在傳統的 SOC 當中必定具有一組 ICE 基本控制單元,但 現在因 SOC 晶片速度越來越快,記憶體空間都多達 MB 等級,以至 於採用傳統 ICE 設計方法越來越不可行,而會產生許多瓶頸。例如: Timing 失真,CPU 匹配不良,模擬記憶體不足等。因此現在我們會 ICE 控制單元包含於 SOC 晶片當中,這樣設計對於整個 SOC 而言, ICE 控制單元只佔用非常小比例的晶圓面積,但是其卻可以存取到晶 片內外所有的記憶體空間。而達到解決了 ICE 要模擬數 MB 記憶體的 問題。 我們在嵌入式硬體實做平台的選擇上之所以沒有選擇 DSP 作為 運算處理器而是採用 ARM 的緣故為因為現在的嵌入式系統通常會具 有雙處理器的架構,最常見的即是 ARM 加上 DSP 的雙重核心(dual core)機制,但是 DSP 通常會用作為影像編碼或影像移動補償之加速 處理,所以聲音的處理我們通常會透過 ARM 來運算。舉例來說,目 前最熱門的 Apple iPod iPod mini 為例,其構成組件主要是用 PortalPlayer 公司的 PP5502 晶片,圖 3-1 為該晶片的功能方塊圖,該 晶片的執行核心並非是用 DSP,而是用 32-bit ARM7TDMI 微處理 器架構。此晶片的功能我們可以參考該公司網站之圖片來加以說明。

Upload: others

Post on 21-Mar-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 34

    第三章 研究系統架構

    第一節 簡介

    CPU 與 IC 設計的快速進步,使得系統產品開發的腳步也隨之加

    快,而在此同時每家 IC 公司所推出的晶片都各有著不同的硬體周邊

    和市場規劃。在時間就是金錢的情況下,選擇適當的 SOC 平台可以

    有效的節省開發時間並且提早進入市場卡位才能在這競爭當中脫穎

    而出。一般在傳統的 SOC 當中必定具有一組 ICE 基本控制單元,但

    現在因 SOC 晶片速度越來越快,記憶體空間都多達 MB 等級,以至

    於採用傳統 ICE 設計方法越來越不可行,而會產生許多瓶頸。例如:

    Timing 失真,CPU 匹配不良,模擬記憶體不足等。因此現在我們會

    把 ICE 控制單元包含於 SOC 晶片當中,這樣設計對於整個 SOC 而言,

    ICE 控制單元只佔用非常小比例的晶圓面積,但是其卻可以存取到晶

    片內外所有的記憶體空間。而達到解決了 ICE 要模擬數 MB 記憶體的

    問題。

    我們在嵌入式硬體實做平台的選擇上之所以沒有選擇 DSP 作為

    運算處理器而是採用 ARM 的緣故為因為現在的嵌入式系統通常會具

    有雙處理器的架構,最常見的即是 ARM 加上 DSP 的雙重核心(dual

    core)機制,但是 DSP 通常會用作為影像編碼或影像移動補償之加速

    處理,所以聲音的處理我們通常會透過 ARM 來運算。舉例來說,目

    前最熱門的 Apple iPod、 iPod mini 為例,其構成組件主要是用

    PortalPlayer 公司的 PP5502 晶片,圖 3-1 為該晶片的功能方塊圖,該

    晶片的執行核心並非是用 DSP,而是用 32-bit 的 ARM7TDMI 微處理

    器架構。此晶片的功能我們可以參考該公司網站之圖片來加以說明。

  • 35

    圖 3-1 PP5502 晶片功能方塊圖(圖片來源:PortalPlayer.com)

    由圖 3-1 我們可以得知,此晶片的 CPU 與協同處理器(COP)皆為

    ARM7 系列。其之所以捨棄 DSP 而就 ARM 的主要考量是 ARM 處理

    器非常適用於低耗電系統,而且其所需之運算處理效能以 ARM7 系

    列之 MCU 即已經夠用。

    又,我們觀察如圖 3-2 所示一般數位相機的影音處理流程圖也可

    得知,通常音訊的部分以及整個系統流程控制的部分都是交由 ARM

    來負責,在此同時 DSP 將會負責處理影像流程的部分。而我們現在

    的工作相對於數位相機上的音訊處理就如同是在 Audio Noise

    Filtering 的階段,此階段於數位相機亦屬於 ARM 負責處理之部分。

  • 36

    圖 3-2 數位相機影音處理流程圖

    在嵌入式系統平台上通常我們仍然習慣採用 C 語言作為開發語

    言,而適用於 ARM SOC 平台的 C 語言編譯器(C Compiler)有 IAR、

    ARM公司自己的編譯器以及透過GPL發佈的開放原始碼(open source)

    的 ARM-Linux-GCC。如此廣泛而多樣的選擇也造就了 ARM 系列於

    嵌入式系統市場的高佔有率。加上 DSP 通常設計為特定複雜而重複

    運算所使用,其並不像 ARM 的應用有如此多元化的彈性。這套由新

    華電腦所推出的 Creator PreSOC Development Kit 開發平台(以下簡稱

    為 Creator)使用 32 位元 RISC 架構之 ARM CPU 作為控制之核心,配

    置了大量的記憶體空間供作業系統與應用程式使用,並且具有多樣的

    周邊,例如:網路、通訊、語音、影像、擴充介面支援大記憶體容量

    以及 FPGA 和多樣化的人機介面等。本平台是一個完整的嵌入式發展

    工具解決方案,其包含了:

    C apture C CD Raw Data

    Audio Raw D ataInput

    Audio N oise Filtering ARM

    D M A In terrupt

    Im age Resize &Processing

    S tore Im age to Fram e B uffers

    CC D Controller

    L ive V iew E ngine

    G lobal M otion Vector C alcu lation D S P

    Live V iew E ngine

    Video Data Com press ion

    D S PAudio D ataC om press ion ARM

    V ideo and Audio B it S tream S ynchronizationAR M

    AE /AW B Prediction andAdjustm ent

    AR M

    W rite to Flash M em oryD M A

    D M A

    V ertical S ync In terrupt

    M PEG F ile w ith AVI form at

    B it Rate Contro l

  • 37

    1. 線路實體模擬器(In-Circuit Emulator,ICE):又稱為 Carrier

    ICE。就是模擬CPU 動作的硬體裝置,利用PC伺服端來 下載obj code

    用來模擬執行的狀況,也是一個極高效率的除錯工具。

    2. 系統發展平台(Development Platform):由硬體廠商所提供的設

    計樣本,下游的產品開發者可以做軟體開發與功能驗証,加速自己的

    研發進度。

    3. 應用程式整合開發除錯工具(Debugger):方便的整合開發環

    境,也有助於程式碼的管理、開發及除錯。新華提供的 Domingo 就

    是一個很好的應用程式整合開發、除錯環境(IDE)。

    4. 編譯器(Compiler)等工具:就是編譯 Linux 核心、模組及使用

    者應用程式的開發環境。在此我們可以利用 Linux 或於 Windows 底下

    安裝 Cygwin 來模擬 Linux 的工作環境,以進行編譯 Linux 核心、模

    組等工作。

  • 38

    圖 3-3 新華 Pre-SOC 嵌入式平台外觀

    第二節 Creator-S3C4510 系統簡介

    3.2.1 平台介紹(軟硬體規格)

    Pocket-ARM ICE出廠支援Creator上之ARM7 S3C4510系列RISC

    CPU。[28]

    採取 stand alone 設計,與 PC 傳輸採取並聯 Printer Port 界面。其

    周邊硬體環境如下所述:

  • 39

    記憶體 (Memory)部分:

    2M Bytes Flash ROM, 16M Bytes SDRAM support byte ,

    half-word, word size ; Access compact flash card(compact flash card

    optional) ,SDRAM memory expansion connector。

    通訊傳輸(Communication) 部分:

    RS232C port for Debug console ; RS232 port for application ;

    RJ-45 10/100 Base-T Ethernet interface ; USB 1.1 interface 。

    人機界面 (Human-Machine Interface):

    Codec function with speaker ; Microphone circuit ; CMOS Camera

    Module ; 4X 4 Keypad;LED Lamp X 8; 7-Seg LED X 4; 8 Pin DIP

    Switch Graphic LCD Display by 4 level 。

    系統支援 (Board System):

    S3C4510 ARM7 TDMI RISC CPU ;1*system reset switch ;

    1*JTAG connector Real time clock by I2 C interface ;EEPROM 128 X 8

    Bit ;Clock changeable for CPU 。

    其中可針對 CPU, memory, LCD, Compact Flash, CMOS

    sensor, Codec, USB, UART, Ethernet 作電流量測。

    Connector for CPU board Changeable;Create FPGA-XC2S 板:

    功能: Clock generator, FPGA download。

    周邊硬體可進行以下實驗 : UART, ADC+可調式電阻,

  • 40

    7SEG+LED Lamp, Audio 錄放, Basic Logic, Sequential Logic,

    Serial to Parallel, Parallel to Serial。

    而下圖 3-4 為 S3C4510B 之系統方塊圖。

    圖 3-4 S3C4510B 系統方塊圖

    3.2.2 編譯及除錯環境(Domingo)

  • 41

    除錯是嵌入式系統發展當中一個很重要的環節,除錯開發環境更

    是嵌入式系統工程師最常接觸到的使用者介面,因此一個好的視窗環

    境不但需要透明的顯示出 CPU 的靜態、動態資訊,以及各個暫存器

    空間的使用情況,並且提供使用 ICE 硬體資源時的設定管道。亦必須

    擁有使用者自訂的人機介面來安排自己所喜好的視窗顯示風格。新華

    科技所提供的除錯、編譯器(Debugger/Compiler)不但符合上列需求

    更有著以下的優點:

    1.IDE 整合發展環境可支援 ARM ADS、IAR EW 及 GNU GCC 等 C

    Compiler, 提供發展板之 C原始碼範例程式。

    2.Domingo IDE 提供在 Windows 系統平台中發展 uClinux, 不需

    佔用另一 PC 資源。

    3.針對 GNU GCC 提供 Template (Stand Alone, Console or

    uClinux);針對 uClinux 提供 NFS 及 TFTP 之快速下載除錯格式。

    4.uClinux 支援 C 及 C++之發展及 uClinux build image 之常用

    命令。

    5.採視覺化 IDE 操作,可自專案-->編輯-->編譯-->連結-->自動

    下載-->除錯於同一視窗環境中完成。

    6.提供一圖形化使用者介面,具 Dockable Tabsheet 彈性規劃能

    7.提供自動 Make & Load 機制,可 Make/Build 單一 Target 或

    build 所有 Target 並自動下載 HEX、BIN、OMF、UBROF、ELF…等除錯

    格式。

  • 42

    8.提供 Composite View 功能,可依需求自訂多重組合式視窗除

    錯。

    9.可作 Call Stack,記錄所有經呼叫副程式之完整流程,Domingo

    IDE function windows 。

    10.支援 Flash 燒錄功能並支援周邊配置管理器(Peripheral

    Configuration Manager),可自行針對新晶片設定記憶體配置, Bus

    寬度等。

    圖 3-5 Domingo Debugger 執行畫面

    3.2.3 ARM CPU 編譯器

    要編譯 Linux kernel image 之前必須先安裝 Toolchain,以提供在

  • 43

    編譯時所需的工具,我們在這裡使用的是 GNU 為了 ARM 所做的

    Cross Compiler Toolchain,Cross Compiler 就是在「某個類型的處理

    器平台」中產生在「其他種類處理器」可執行檔的編譯器。GNU Cross

    Compiler Toolchain 就是 GNU 所提供的開發工具鍊。透過此 Toolchain

    我們可以在 LINUX 或 Cygwin 底下,以 X86 架構的 CPU 產生出符合

    RISC 架構的 ARM CPU 硬體環境的 Image 檔案。這個產生出來的

    Image 檔案再透過 Domingo 燒錄到 Creator-S3C4510 的 Flash 當中。

    第三節 語音相關之軟硬體

    3.3.1 音訊晶片

    Creator board 支援 CODEC 的晶片型號為 TLV320AIC12,由德州

    儀器(TI)所出產的語音專用晶片,功能方塊圖見下圖 3-6。其聲音處

    理規格為 16bit 的聲音輸出入以及 26K-SPS 之取樣率。Creator CPU 透

    過 I2C 來對 Codec 晶片進行包含取樣率、輸出入增益、輸入通道選擇

    及 Filter 特性等各種設定。

    我們對於聲音或是數據資料的存取,則是透過一個 16bit 的並列

    通道來完成的。

  • 44

    圖 3-6 AIC12 音訊晶片系統功能方塊圖

    3.3.2 語音格式

    由上述 Creator 的母板所錄製之語音訊號經過 TLV320AIC12 晶片

    處理後可得到 16bit 語音輸出/入以及 26k~8PS 之取樣率之音訊訊號。

    此語音訊號若要經由 Windows 播放則必須加上檔頭以供 Windows 辨

    認之用。由於此訊號本身並未壓縮,故我們於二元原始檔案本身加上

    WAV 之檔頭即可。對於 WAV 檔頭之規格介紹如下:

    WAV 為 Waveform(波形)的縮寫。音效檔案的結構如表 3-1 所示,

    "RIFF"的格式辨別碼為"WAVE"。整個檔由兩個 chunk 所組成:辨別

    碼"fmt "(fmt 後含有最後一個空白字元這樣才符合每個 chunk 有 4 個

    byte)及第二辨別碼"data"。

  • 45

    偏移位址 位元組數 資料類型 內 容

    00H 4 char "RIFF"標誌

    04H 4 long int 文件長度

    08H 4 char "WAVE"標誌

    0CH 4 char "fmt"標誌

    10H 4 過渡位元組(不定)

    14H 2 int 格式類別(10H 為 PCM 形式的

    聲音資料)

    16H 2 int 通道數,單聲道為 1,雙聲道

    為 2

    18H 2 int 採樣率(每秒樣本數),表示

    每個通道的播放速度,

    1CH 4 long int

    波形音頻資料傳送速率,其值

    為通道數×每秒資料位元數×

    每樣本的資料位元數/8。播

    放軟體利用此值可以估計緩

    衝區的大小。

    20H 2 int

    資料塊的調整數(按位元組算

    的),其值為通道數×每樣本

    的資料位元值/8。播放軟體

    需要一次處理多個該值大小

    的位元組資料,以便將其值用

    於緩衝區的調整。

    22H 2

    int

    每樣本的資料位元數,表示每

    個聲道中各個樣本的資料位

    元數。如果有多個聲道,對每

    個聲道而言,樣本大小都一

    樣。

    24H 4 char 資料標記符"data"

    W A V文

    28H 4long int 語音資料的長度

    表 3-1 WAVE 文件格式說明表

  • 46

    第四節 演算法系統架構

    首先我們探討語音辨識之系統架構如下

    (a) Speaker identification

    (b) Speaker verification

    圖 3-7 語者辨認系統基本架構

    (a)語者識別 (b) 語者驗證

    Input speech

    Feature extraction

    Similarity

    Reference Model

    Speaker #1

    Similarity

    Reference ModelSpeaker #N

    MaximumSelection

    Speech enhancement

    IdentificationResult

    (Speaker #ID)Input

    speechFeature

    extraction

    Similarity

    Reference Model

    Speaker #1

    Similarity

    Reference ModelSpeaker #N

    MaximumSelection

    Speech enhancement

    IdentificationResult

    (Speaker #ID)

    Input speech

    Feature extraction Similarity

    Reference Model

    Speaker #M

    DecisionSpeech enhancement

    Speaker ID(#M)

    Threshold

    Verification Result

    Accept y/n ?

    Input speech

    Feature extraction Similarity

    Reference Model

    Speaker #M

    DecisionSpeech enhancement

    Speaker ID(#M)

    Threshold

    Verification Result

    Accept y/n ?

  • 47

    由上兩圖可以得知,我們所要處理的就是在這些語音辨識或語者

    辨識上的語音增強此一步驟。語音增強不外乎濾除不必要的噪音以及

    對語音作正規化並增加其增益的動作。由於在相同的硬體環境下,若

    外在因素不變,則所錄製的語音應該是具有高度的一致性的。則我們

    幾乎可以避免掉正規化的步驟而只專注於噪音消除的處理上。

    噪音消除處理當中我們首重頻率的分析。若就噪音的頻率成分而

    言,一般環境噪音會有兩種形式,一種是窄頻的噪音(narrowband

    noise),另一種是寬頻的噪音(broadband noise),其中寬頻的噪音源

    大都來自於周圍環境的隨機噪音,因其量測受到非單一頻率的噪音源

    影響,且有突波噪音的產生,使得它的量測較為困難複雜,也因此在

    噪音消除控制中,效果常不如預期;而相對之窄頻的噪音源,因其能

    量較一致且集中,且頻率是週期性或近似週期性的形式,因此較容易

    加以消除。這種噪音源一般在轉動或者反覆運動的機械上較常為看

    到,比如引擎、冰箱壓縮機,以及抽水幫浦等設備。由前一章節的相

    關研究可以發現之前所有的論文、文獻都是在針對高頻以及能量相對

    於原始訊號較小的雜訊作降噪的處理。或者是對於窄頻噪音具有較好

    的處理效果,而寬頻的噪音則必須但是在研究的過程當中我們也發現

    若然噪音是多頻帶混合的非週期性雜訊,則目前並無一個有效的消除

    技術能針對其做處理。我們的研究就是建立在此一寬頻噪音的分析與

    消除之上。因此我們先針對本論文所提出噪音消除演算法的完整架構

    作說明,並於下一章節將所運用到的觀念與理論詳加解釋。

    首先我們先透過統計的方式取出穩定的特徵建立出噪音的標準

    樣本。接著透過觀察一般語音增強的步驟不外乎是先進行音框切割之

    後對頻譜作刪減,頻譜刪減(spectral subtraction)為估算出噪音的功

    率頻譜密度後,將其從含噪語音頻譜當中減去。這個刪減的動作可以

  • 48

    在功率頻譜密度當中進行,也可以在自相關函數中進行,因為兩者只

    是時域和頻域間的對應關係。然而頻譜刪減必須找到噪音於音訊中真

    正的插入位置方可進行,因此我們提出一套搜尋正確插入點的演算

    法,Diff-RMS 演算法,來找到真正的插入點位置。並且經過多種方

    式的嘗試,確認離散餘弦轉換比起小波轉換更適用於本噪音的消除處

    理上,於是將噪音樣本以及含噪訊號皆透過離散餘弦轉換轉移至頻域

    上。由於噪音樣本並不會完全吻合當時所被混入的噪音,而且為了解

    決聲音漂移的現象,因此我們提出了調適性係數相減演算法,對前後

    各兩個位移點作分析以確認何者才會是最適合相減的值。最後在經過

    反離散餘弦轉換將減去噪音後的音訊轉換回時域。但是此時若有未濾

    除乾淨的噪音(約還有 10~15%尚未濾除)則我們人耳能依稀可聽

    聞,因此我們在時域上加上了一個線性平滑濾波器,務求將噪音抑制

    在 10%以下而使得人耳不可聽聞。

    Noise Corrupted Audio Signal

    Noise Cancelled Audio Signal

    圖 3-8 本論文之調適性固定噪音消除演算法流程圖

    下圖為噪音消除演算法於時域上的波形圖。如圖 3-9 所示,若有

    一原始聲音,我們在時域上的原始訊號當中疊加一個噪音訊號後,則

  • 49

    透過我們所提出的演算法可以濾除此一噪音而得到一個與原始訊號

    十分相近的重建訊號。

    圖 3-9 於時域中所見之噪音消除示意圖

    第一節簡介第二節Creator-S3C4510 系統簡介第三節語音相關之軟硬體第四節演算法系統架構