《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 基于DSP的便携式音乐分析仪的设计与实现

基于DSP的便携式音乐分析仪的设计与实现

2009-04-14
作者:翟景瞳, 王 玲, 杜秀伟,

??? 摘? 要: 設計了一款便攜式音樂分析儀,對一段音樂信號進行音高和時值特征分析,將分析結果以MIDI格式符號記錄下來,通過MIDI音頻合成芯片回放音樂旋律的同時可將音符信息解析成五線譜并由LCD顯示。介紹了部分主要硬件電路接口和核心算法的軟件設計。?

??? 關鍵詞: DSP; ARM; 音樂分析

?

??? 隨著多媒體技術的發展和音頻數據的膨脹,音樂分析在音樂數據庫檢索技術、樂器調音技術和自動記譜技術中有很重要的應用價值。目前有很多類似Cakewalk的應用軟件都集成了音樂分析功能,通過檢測音頻的音高和音符長短,把音頻信號轉變為MIDI格式符號記錄下來[1]。但這些應用軟件都需要以PC機為載體,這給廣大音樂愛好者和創作者帶來了極大不便。本文利用DSP芯片TMS320VC5502的快速運算能力和低功耗特點,設計了以TMS320VC5502為核心運算處理模塊,以對音高和音長的檢測來實現對音樂信號的實時分析的便攜式音樂分析儀。?

1 儀器工作原理?

??? 音樂信號與語音信號一樣是短時相關的,可用語音信號識別的相關知識來解決音樂信號的識別。音高和音符時長是音樂信號主旋律的兩大要素。本儀器系統設計就是由音頻信號采集模塊采集音樂信號,通過DSP對音樂信號的運算處理來檢測音符的音高和時值長短,將音樂信號轉變為MIDI格式的數據,存儲到ARM的Flash中。ARM將音頻信號通過MIDI芯片回放的同時可將MIDI格式數據轉化為五線譜并驅動LCD顯示。?

2 系統硬件設計?

??? 便攜式音樂分析儀的系統硬件結構如圖1所示,由音頻信號采集、DSP音樂信號處理、CPU控制、顯示與鍵盤接口等部分組成。核心處理器選用TMSC20VC5502,系統CPU選用ARM S3C44B0X,LCD選用適合便攜式開發的SHARP公司的LQ043T3DX02,音頻AD選用24位低功耗專用語音模數轉換芯片CS53L21,MIDI芯片選用合成能力優異的YAMAHA724。?

?

?

2.1 音頻信號采集部分?

??? CS53L21是Cirrus Logic公司推出的24位低功耗專用語音模數轉換芯片,可提供4kHz~96kHz范圍的采樣頻率的設置,支持左/右聲道音頻獨立控制,包括數字音量控制和混音、自動電平控制,具有用于DC測量的高通濾波能力。CS53L21基于多位△-∑架構,通過前端模擬集成提供雙軌高質量信號轉換,可進而簡化設計并削減設計所需的昂貴器件。?

??? CS53L21的接口電路如圖2所示。作為本儀器的外部接口, MICI以單通道的方式與CS53L2芯片的AIN3B引腳相連接(由于CS53L21提供差分輸入選擇,還可考慮用AIN1B和AIN3A將MICI接成差分方式輸入以進一步抑制噪聲),由AIN2B提供偏置電壓。偏置電壓具有0.8×VA、0.7×VA、0.6×VA和0.5×VA四種電平模式,可通過設置MIC Control寄存器的MICBIAS_LVL[1:0]位來選擇其中一種偏置。?

?

?

??? CS53L21與TMS320VC550的接口電路分為控制端口和音頻端口兩部分。控制端口的連接是將CS53L21的串行控制端口SCL和SDA直接與TMS320VC5502的IIC模塊的SCL和SDA相連。TMS320VC5502的內部時鐘信號SYSCLK2作為IIC通信的時鐘信號控制SDA上的數據傳輸。CS53L21的寄存器的初始化需要TMS320VC5502以IIC通信協議對其進行訪問和操作來實現。音頻端口的連接是將CS53L21的串行音頻接口MCLK、SCLK、LRCK和SDOUT與TMS320VC5502的多通道緩沖串口0(MCBSP0)相連。MCLK與ELCKOUT2相連用于將TMS320VC5502的內部時鐘信號SYSCLK3輸入CS53L21的MCLK引腳作為其主時鐘信號。SCLK與CLKR0、CLKX0連接用于向CS53L21提供串行音頻接口的串行時鐘,其中,CLKR0和CLKX0短接可使CS53L21主從方式均可使用。本系統設計是采取將CS53L21配置為從機的方式。LRCK與FSR0和FSX0相連用于向CS53L21提供必需的幀同步脈沖信號。SDOUT與DR0相連用于將采樣數據以IIS格式從CS53L21向TMS320VC5502傳輸。?

2.2 CPU控制部分?

??? CPU S3C44B0X與TMS320VC5502的接口設計電路如圖3所示,TMS320VC5502通過主機接口HPI與S3C44B0X相連時,除了8位數據總線及控制信號線外,不需要附加其他的邏輯電路。S3C44B0X作為系統的CPU以尋址TMS320VC5502的RAM的方式來讀取信號分析結果,并將結果通過MIDI合成芯片回放的同時解析成五線譜送LCD顯示。本系統采用多路復用8位HPI模式,主機S3C44B0X必須讀/寫2個連續的8位數據整合為16位數據,通過地址線A0提供HBIL信號指示當前傳輸的是第一字節還是第二字節。控制信號HCNTL0 和HCNTL1用于指示訪問哪一個HPI 內部寄存器,HCS 作為HPI 的基本輸入使能信號,與HDS1、HDS2信號一起控制HPI的數據傳輸。?

?

?

3 軟件設計及核心算法分析?

??? 系統軟件設計主要有ARM上電引導及初始化、DSP通過主機接口HPI自舉引導及系統初始化(包括系統時鐘CLK初始化、I2C模塊初始化、MCBSP0初始化)[2]和系統功能執行。?

??? DSP音樂信號處理的軟件流程如圖4 所示。DSP自舉引導、初始化系統后開啟定時器0和AD,然后開始接收采樣數據。當檢測到音符起止位置后,對音符進行音長時值記錄和音高識別,DSP將識別結果存儲到主機ARM可訪問的RAM區域,由ARM通過HPI口讀取并保存結果,直到音樂信號結束。?

?

?

??? 音高分析過程中的FFT變換是耗費存儲空間和運算時間的主要部分。TMS320VC5502擁有32K×16位的片上RAM,將DSP從AD接收采樣數據的程序設計成循環隊列的方式,可節省很大一部分存儲空間,除去4 096點FFT所需的8KB空間外足夠供程序段和數據段分配使用,不需外擴存儲器。程序整體設計采取C語言與匯編語言混合編程,對于FFT部分采用匯編代碼實現,可進一步減少運算時間以滿足實時性要求。?

3.1 音符音高分析算法設計?

??? 音樂的音高(音調)是指聲音的高低,可通過計算信號基頻得出。首先從信號幅度包絡上檢測到音符的起止位置,然后由如圖5所示的音高檢測算法流程起止位置映射音符的原始數據。若原始數據大于4 096個點,就取前4 096個點作為音符有效數據,若不夠4 096個點,就補零到4 096個,然后對4 096點數據做FFT變換,采取置信度[3]的方法即可找到音符音高。?

?

?

3.2 音符時值分析算法設計?

??? 音樂信號的特征是時域波形在節奏點上幅度大、能量相對集中。因此系統設計采取在12kHz的采樣頻率下將接收的語音數據以128個點(大概10ms)分為一幀,幀間重疊64點(約5ms)數據,通過求短時能量得到理想的波形包絡,在此基礎上設立門限來找出音符起止位置[4]。計算音符時長的算法流程如下:?

??? (1)設立初始門限值。假定音樂信號開始的前N幀信號為純背景噪聲,計算前10幀的短時能量的平均值的1.2倍作為初始門限。?

??? (2)判定音符的起止位置,并記錄起止時刻。若當前幀的短時能量超過了前面計算出的門限值,且此后連續5幀都超過了該門限值即認為找到了音符起始位置。同樣,在找到音符的起始位置后,如果有信號能量值回落到門限以下,且此后連續5幀都低于該門限值即認為找到了音符結束位置。?

??? (3)計算音符時長。根據上一步得到的音符的起始、結束時刻,由T=T2-T1得到該音符時長。?

??? (4)門限更新。由式Hi=βHi-1+(1-β)E進行門限的更新。式中β取0.9,Hi-1為前一音符的門限值,E為當前N幀信號短時能量值的幾何平均值的1.2倍。 ?

??? (5)回到第(2)步,直到整個音樂信號分析結束。?

4 系統測試?

??? (1)音頻合成器產生的頻率為440Hz的鋼琴“標準音”,經本儀器采集、做4 096點FFT變換后得到的頻譜如圖6 所示。可以看出其頻譜為理想頻譜,最大峰值即為基音。對應序號K=150,根據基頻計算公式得:f0=fs/N×K=12 000/4 096×150=439.5Hz,可見測試結果很準確。?

?

?

??? 圖7所示為一段2/4拍、1拍2音的節奏音樂信號經本儀器采集、處理得到的理想包絡,在此基礎上由前面提到的時值分析算法可準確找到音符的起止位置。?

?

?

??? (2) 利用本儀器對一段含有60個音符的音樂信號進行分析,檢測到的音符個數為57個。根據十二平均率,連續的兩個半音之間的頻率比為1.059 46,即頻率偏差率為5.946%,而本儀器音高識別的平均誤差絕對值遠小于5.946%,檢測出的音符都可以正確對應到其標準頻率。因此,對檢測出的57個音符的識別率是百分之百,儀器的識別率為57/60=95%,樂曲本身演奏速度為1分鐘完成120個四分音符,即每個四分音符的時值為60/120=0.5s=500ms。本儀器對于57個音符的時長分析的平均絕對值誤差為13.5ms,最大絕對值誤差為25.6ms。測試表明了本儀器高效、可靠。?

??? 便攜式音樂分析儀采用具有超強快速運算能力的DSP作為核心運算模塊和24位音頻模數轉換芯片作為音頻采集模塊,實現對音樂信號的高速采集和實時分析。由于采用了4 096點FFT算法,可實現對大部分音符音調的精確識別。如果待測音符為低音,則需要采取抽取的方法來降低采樣頻率,從而改善頻域分辨率以達到精確識別的目的。經實踐測試表明,該儀器對于有規律的節奏音樂可實現完美檢測。系統設計合理,性能穩定,可靠性高,具有良好實用和推廣價值。?

參考文獻?

[1] 楊士穎.計算機音樂制作與數字音頻[M].上海:上海大學出版社,2001.?

[2] 胡慶鐘,李小剛,吳鈺淳.TMS320C55X DSP原理、應用與設計[M].北京:機械工業出版社,2005.?

[3] 顧亦然,秦軍,王鎖平.幾種音樂識別算法的比較[J].南京郵電學報,1998,18(2).?

[4] 果永振,何遵文,畢志明.基于DSP實現語音端點檢測.[J].電聲技術,2002(12).

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产99久久久欧美黑人| 欧美日韩福利在线观看| 久久精品在线免费视频| 中文字幕精品在线播放| 日韩手机在线观看视频| 久久伊人色综合| 日本精品va在线观看| 中文字幕制服丝袜在线| 国产精品视频不卡| 国产美女被下药99| 高清av免费一区中文字幕| 91精品久久久久久久久久久久久| 久久资源av| 99高清视频有精品视频| 91精品久久久久| 欧美乱妇高清无乱码| 久久99久久精品国产| 国产高清不卡av| 欧美日韩亚洲一区二区三区四区| 久久精品视频亚洲| 欧美日韩一区二区三区在线视频| 国产精品视频久久久| 啊v视频在线一区二区三区| 欧美日韩精品久久久免费观看| www久久99| 日本久久亚洲电影| 久久精品国产精品亚洲精品色| 一区二区免费在线视频| 九九久久九九久久| 69国产精品成人在线播放| 国产麻豆一区二区三区在线观看| 日韩在线中文视频| 欧美亚洲日本网站| 欧美日韩一道本| 欧美精品亚洲| 日韩日本欧美亚洲| 97成人在线免费视频| 国产精品视频99| 国产精品久久999| 午夜精品蜜臀一区二区三区免费| 日韩无套无码精品|