語音信號實時采集與處理


<一>基於MATLAB的語音信號采集和分析系統的可視化設計

論文摘要:設計和開發了一種基於MATLAB的語音采集與分析的可視化系統,該系統通過Realtek Ac97型聲卡和MATLAB的數據采集工具箱低成本地實現了語音信號的實時采集,並利用 MATLAB 強大的數值計算和信號處理功能高精度地完成了語音信號的分析工作。系統還使用 MATLAB 的圖形用戶界面設計工具進行了優化,通過簡單的對話框和菜單操作取代了復雜的程序修改和調試過程,使得系統的使用更加方便靈活。

論文理解:系統主要包括語音采集和處理兩部分,使用MATLAB數據采集工具箱通過筆記本自帶聲卡對外界模擬語音信號進行采集、量化獲得數字語音信號,采集到的數據暫時保存在內存或磁盤中,再利用MATLAB對數字語音信號進行相應算法的處理和分析,最后經由聲卡D/A轉換成模擬語音信號送到揚聲器播放。這種設計方案比較適用於進行算法模擬仿真,論文中的聲卡具有最高16位的采樣位數和44.1kHz的采樣速率,能夠對人的歌聲較高的保真進行采集。

 

  MATLAB有三種方式可以驅動聲卡:建立模擬輸入設備對象、wavrecord、audiorecorder。

  語音信號主要的特征參數:短時能量、短時平均幅度、短時平均過零率。

  對於如何進行實時性的處理有待進一步研究,在計算機中不可能實現完全的實時,采集到的數據一般保存到數據緩沖區,再經過算法處理,最后進行播放,在處理的這個過程中必然會有一段延遲時間。有兩個問題要考慮,第一、如何設置數據緩沖區的大小保證采集到的數據都會被處理而不被覆蓋,第二、怎樣保證經過算法處理后的聲音保持連續,這必然就要求算法處理的時間要小於數據緩沖區保存信號的播放時間。

<二>基於DSP的實時語音采集和處理系統

論文摘要:論述了基於DSP56F862 EVM開發系統的實時數字音效處理系統,在對數字音頻信號的混響、合唱、均衡等多種音效方式合成的原理和算法研究與仿真的基礎上,在硬件上實現了這些音效的處理,並能夠實時處理后播放。

論文理解:系統主要由DSP56F826和CodecCS4218組成,人的歌聲經MIC轉換為電平信號、經Codec A/D轉換成數字信號保存到輸入數據緩沖區,DSP56F826調用算法進行數據處理並輸出到輸出緩沖區,最后經Codec D/A轉換還原為模擬信號,經由功放電路輸出。這種設計方案適用於實際的設計,不同的方案使用具體的算法來進行分析,具有實際運用的意義。對於人的歌聲處理,繼而形成比較好的效果,關鍵還是在於具體算法的設計上。

  DSP56F826運算速度為40MIps、64Kx16bit程序存儲區、64Kx16bit數據存儲區、工作在70MHz時可對外部存儲器零等待存取。

  Codec包括A/D、D/A轉換器、16位立體聲、使用12.288M晶振采樣頻率為8~48kHz。

  DSP與Codec通過SSI串行通信,Codec每次向DSP發送一個16bit的采樣數據,DSP把接收的數據保存到輸入緩沖區,同時對已存入的數據進行處理,再存入輸出緩沖區,DSP的SSI輸出中斷程序會定時執行從輸出緩沖區取數,最后發送到Codec以模擬的方式輸出,從而實時處理。

  一些算法實現的效果:

  混響效果:混響音必須發生在原唱的一段時間之后,人耳對時間間隔在30~50ms以上的兩個信號才能分辨出來。(IIR濾波器)

  合唱效果:類似混響效果,所不同的是它的延遲時間函數是隨時間變化而變化的低頻信號。(最多3~4人,更多就要加入改變音色、聲音頻率等時變函數)

  均衡效果:對某一頻段內的信號進行增強或衰減以改善輸出頻響特性,提高聽覺效果。

那么該如何實現伴唱或者和聲的效果呢?我認為在原唱聲音的基礎上來進行和聲具有比較高的可行性,第一,用合成的聲音沒有原唱的聲音來得逼真,第二,伴唱是人在唱,低於或高於原唱的音調,那么將原唱進行適當的處理來生成和聲效果會比較好。雖然是類似合唱或者回音的效果,但關鍵在於什么時候需要和聲,什么時候不需要和聲?是否要對原唱進行樂理上的判定,例如主旋律,或者高潮部分進行判定?但對於實時性的系統來說,這都很難去界定。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM