❶ 如何採集麥克風的聲音到MATLAB
常用有2種方法:
1:wavrecord函數,比較簡單的
Fs = 11025;
y = wavrecord(5*Fs,Fs,'int16');%錄制5秒mic聲音
wavplay(y,Fs); %播放出來
2:analog input方法
AI = analoginput('winsound');
chan = addchannel(AI,1);
ration = 1; %1 second acquisition
set(AI,'SampleRate',8000)
ActualRate = get(AI,'SampleRate');
set(AI,'SamplesPerTrigger',ration*ActualRate)
set(AI,'TriggerType','Manual')
blocksize = get(AI,'SamplesPerTrigger');
Fs = ActualRate;
start(AI)
trigger(AI)
wait(AI,ration + 1)
data = getdata(AI);
delete(AI)
clear AI
❷ 電腦如何採集聲音信號
電腦採集聲音信號,其實就是聲音采樣,聲音采樣就是把模擬音頻轉成數字音頻的過程,所用到的主要設備便是模擬/數字轉換器(Analog to Digital Converter,即ADC,與之對應的是數/模轉換器,即DAC)。采樣的過程實際上是將通常的模擬音頻信號的電信號轉換成二進制碼0和1,這些0和1便構成了數字音頻文件。采樣的頻率越大則音質越有保證。由於采樣頻率一定要高於錄制的最高頻率的兩倍才不會產生失真,而人類的聽力范圍是20Hz~20KHz,所以采樣頻率至少得是20k×2=40KHz,才能保證不產生低頻失真,這也是CD音質採用44.1KHz(稍高於40kHz是為了留有餘地)的原因。
❸ 音頻信號的採集方式
電台等由於其自辦頻道的廣告、新聞、廣播劇、歌曲和轉播節目等音頻信號電平大小不一,導致節目播出時,音頻信號忽大忽小,嚴重影響用戶的收聽效果。在轉播時,由於傳輸距離等原因,在信號的輸出端也存在信號大小不一的現象。過去,對大音頻信號採用限幅方式,即對大信號進行限幅輸出,小信號不予處理。這樣,仍然存在音頻信號過小時,用戶自行調節音量,也會影響用戶的收聽效果。隨著電子技術,計算機技術和通信技術的迅猛發展,數字信號處理技術已廣泛地深入到人們生活等各個領域。其中語音處理是數字信號處理最活躍的研究方向之一,在IP電話和多媒體通信中得到廣泛應用。語音處理可採用通用數字信號處理器DSP和現場可編程門陣列(FPGA) 實現,其中DSP實現方法具有實現簡便、程序可移植行強、處理速度快等優點,特別是TI公司TMS320C54X系列在音頻處理方面有很好的性價比,能夠解決復雜的演算法設計和滿足系統的實時性要求,在許多領域得到廣泛應用。在DSP的基礎上對音頻信號做AGC演算法處理可以使輸出電平保持在一定范圍內,能夠解決不同節目音頻不均衡等問題。
TI公司DSP晶元TMS320VC5402具有獨特的6匯流排哈佛結構,使其能夠6條流水線同時工作,工作頻率達到100MHZ。利用VC5402的2個多通道緩沖串列口(McBSP0和McBSP1)來實現與AIC23的無縫連接。VC5402的多通道帶緩沖的串列口在標准串口的基礎上加了一個2K的緩沖區。每次串口發送數據時,CPU自動將發送緩沖中的數據送出;而當接收數據時,CPU自動將收到的數據寫入接收緩存。在自動緩沖方式下,不需每傳送一個字就發一次中斷,而是每通過一次緩沖器的邊界,才產生中斷至CPU,從而減少頻繁中斷對CPU的影響。
音頻晶元採用TLV320 AIC23,它是TI公司的一款高性能立體聲音頻A/D,D/A放大電路。AIC23的模數轉換和數模轉換部件高度集成在晶元內部,採用了先進的過采樣技術。AIC23的外部硬體介面分為模擬口和數字口。模擬口是用來輸入輸出音頻信號的,支持線路輸入和麥克風輸入;有兩組數字介面,其一是由/CS、SDIN、SCLK和MODE構成的數字控制介面。AIC23是一塊可編程的音頻晶元,通過數字控制口將晶元的控制字寫入AIC23內部的寄存器,如采樣率設置,工作方式設置等,共有12個寄存器。音頻控制口與DSP的通信主要由多通道緩沖串列口McBSP1來實現。
AIC23通過數字音頻口與DSP的McBSP0完成數據的通信,DSP做主機,AIC23做從機。主機提供發送時鍾信號BCLKX0和發送幀同步信號BFSX0。在這種工作方式下,接收時種信號BCLKR0和接收幀同步信號BFSR0實際上都是由主機提供的。圖1是AIC23與VC5402的介面連接。
AIC23的數字音頻介面支持S(通用音頓格式)模式,也支持DSP模式(專與TIDSP連接模式),在此採用DSP模式。DSP模式工作時,它的幀寬度可以為一個bit長。圖2是音頻信號採集的具體電路圖。
電路的設計和布線是信號採集過程中一個很重要的環節,它的效果直接關繫到後期信號處理的質量。對於DSP達類高速器件,外部晶體經過內部的PLL倍頻以後可達上百兆。這就要求信號線走等長線和繪制多層電路板來消除電磁干擾和信號的反射。在兩層板的前提下,可以採取頂層與底層走交叉線、盡量加寬電源線和地線的寬度、電源線成樹杈型、模擬區和數字區分開等原則,可以達到比較好的效果。
❹ 如何採集一幀音頻
本文重點關注如何在Android平台上採集一幀音頻數據。閱讀本文之前,建議先讀一下我的上一篇文章《Android音頻開發(1):基礎知識》,因為音頻開發過程中,經常要涉及到這些基礎知識,掌握了這些重要的概念後,開發過程中的很多參數和流程就會更加容易理解。
Android SDK 提供了兩套音頻採集的API,分別是:MediaRecorder 和 AudioRecord,前者是一個更加上層一點的API,它可以直接把手機麥克風錄入的音頻數據進行編碼壓縮(如AMR、MP3等)並存成文件,而後者則更接近底層,能夠更加自由靈活地控制,可以得到原始的一幀幀PCM音頻數據。
如果想簡單地做一個錄音機,錄製成音頻文件,則推薦使用 MediaRecorder,而如果需要對音頻做進一步的演算法處理、或者採用第三方的編碼庫進行壓縮、以及網路傳輸等應用,則建議使用 AudioRecord,其實 MediaRecorder 底層也是調用了 AudioRecord 與 Android Framework 層的 AudioFlinger 進行交互的。
音頻的開發,更廣泛地應用不僅僅局限於本地錄音,因此,我們需要重點掌握如何利用更加底層的 AudioRecord API 來採集音頻數據(注意,使用它採集到的音頻數據是原始的PCM格式,想壓縮為mp3,aac等格式的話,還需要專門調用編碼器進行編碼)。
1. AudioRecord 的工作流程
首先,我們了解一下 AudioRecord 的工作流程:
(1) 配置參數,初始化內部的音頻緩沖區
(2) 開始採集
(3) 需要一個線程,不斷地從 AudioRecord 的緩沖區將音頻數據「讀」出來,注意,這個過程一定要及時,否則就會出現「overrun」的錯誤,該錯誤在音頻開發中比較常見,意味著應用層沒有及時地「取走」音頻數據,導致內部的音頻緩沖區溢出。
(4) 停止採集,釋放資源
2. AudioRecord 的參數配置
上面是 AudioRecord 的構造函數,我們可以發現,它主要是靠構造函數來配置採集參數的,下面我們來一一解釋這些參數的含義(建議對照著我的上一篇文章來理解):
(1) audioSource
該參數指的是音頻採集的輸入源,可選的值以常量的形式定義在 MediaRecorder.AudioSource 類中,常用的值包括:DEFAULT(默認),VOICE_RECOGNITION(用於語音識別,等同於DEFAULT),MIC(由手機麥克風輸入),VOICE_COMMUNICATION(用於VoIP應用)等等。
(2) sampleRateInHz
采樣率,注意,目前44100Hz是唯一可以保證兼容所有Android手機的采樣率。
(3) channelConfig
通道數的配置,可選的值以常量的形式定義在 AudioFormat 類中,常用的是 CHANNEL_IN_MONO(單通道),CHANNEL_IN_STEREO(雙通道)
(4) audioFormat
這個參數是用來配置「數據位寬」的,可選的值也是以常量的形式定義在 AudioFormat 類中,常用的是 ENCODING_PCM_16BIT(16bit),ENCODING_PCM_8BIT(8bit),注意,前者是可以保證兼容所有Android手機的。
(5) bufferSizeInBytes
這個是最難理解又最重要的一個參數,它配置的是 AudioRecord 內部的音頻緩沖區的大小,該緩沖區的值不能低於一幀「音頻幀」(Frame)的大小,而前一篇文章介紹過,一幀音頻幀的大小計算如下:
int size = 采樣率 x 位寬 x 采樣時間 x 通道數
采樣時間一般取 2.5ms~120ms 之間,由廠商或者具體的應用決定,我們其實可以推斷,每一幀的采樣時間取得越短,產生的延時就應該會越小,當然,碎片化的數據也就會越多。
在Android開發中,AudioRecord 類提供了一個幫助你確定這個 bufferSizeInBytes 的函數,原型如下:
int getMinBufferSize(int sampleRateInHz, int channelConfig, int audioFormat);
不同的廠商的底層實現是不一樣的,但無外乎就是根據上面的計算公式得到一幀的大小,音頻緩沖區的大小則必須是一幀大小的2~N倍,有興趣的朋友可以繼續深入源碼探究探究。
實際開發中,強烈建議由該函數計算出需要傳入的 bufferSizeInBytes,而不是自己手動計算。
3. 音頻的採集線程
當創建好了 AudioRecord 對象之後,就可以開始進行音頻數據的採集了,通過下面兩個函數控制採集的開始/停止:
AudioRecord.startRecording();
AudioRecord.stop();
一旦開始採集,必須通過線程循環盡快取走音頻,否則系統會出現 overrun,調用的讀取數據的介面是:
AudioRecord.read(byte[] audioData, int offsetInBytes, int sizeInBytes);
❺ 如何收集音頻素材
軟體,如Adobe_Audition_
❻ 常見的收集數據的方法有什麼
1、調查法
調查方法一般分為普查和抽樣調查兩大類。
2、觀察法
觀察法是通過開會、深入現場、參加生產和經營、實地采樣、進行現場觀察並准確記錄(包括測繪、錄音、錄相、拍照、筆錄等)調研情況。主要包括兩個方面:一是對人的行為的觀察,二是對客觀事物的觀察。觀察法應用很廣泛,常和詢問法、搜集實物結合使用,以提高所收集信息的可靠性。
3、文獻檢索
文獻檢索就是從浩繁的文獻中檢索出所需的信息的過程。文獻檢索分為手工檢索和計算機檢索。
按性質分為:
①定位的,如各種坐標數據;
②定性的,如表示事物屬性的數據(居民地、河流、道路等);
③定量的,反映事物數量特徵的數據,如長度、面積、體積等幾何量或重量、速度等物理量;
④定時的,反映事物時間特性的數據,如年、月、日、時、分、秒等。
按表現形式分為:
①數字數據,如各種統計或量測數據。數字數據在某個區間內是離散的值。
②模擬數據,由連續函數組成,是指在某個區間連續變化的物理量,又可以分為圖形數據(如點、線、面)、符號數據、文字數據和圖像數據等,如聲音的大小和溫度的變化等。
❼ 數字化音頻的採集的方式有哪些
將音頻數字化,其實就是將聲音數字化。最常見的方式是透過脈沖編碼調制pcm(數字化的最大好處是資料傳輸與保存的不易失真。記錄的資料只要數字大小不改變