最近做了一個關于音頻處理的項目,而且要實現錄制、變聲、聲音識別、波形圖
等功能。下面針對這些功能,做一些總結。
音頻的基礎知識
在做項目之前,雖然也使用了很多的音頻相關的功能,也使用了很多音頻相關的 API,但是本沒有對音頻的相關知識有深入的了解,這次接著這個項目就好好的了解了一下音頻的基礎知識。
- 采樣位數:
由于現在我們現在的設備處理的是數字音頻,所以和所有數據一樣,我們可以用
8位、16位、24位來表示這些聲音數據,所以采樣位數可以理解數字音頻設備處
理聲音的解析度,當然這個數值越高錄制和回放的聲音就越真實。
- 音頻采樣率:
就是對聲音信息1秒鐘采樣多少次,以記錄成數字信息。如 CD 音頻是 44.1KHz采樣率,它
對聲音以每秒 44100次的頻率來記錄信息。原則上采樣率越高,聲音的質量越好。
- 比特率:
表示單位時間( 1秒)內傳送的比特數 bps(bit per second,位/秒)的速度。作為一種
數字音樂壓縮效率的參考性指標,通常使用 kbps(通俗地講就是每秒鐘 1024比特)作為單位。
- 分貝:
是一種對聲音強度的劃分,而0分貝并非指沒有聲音,而是通常人能聽見的最微弱的聲音,而
聲音的分貝高的話也能聽見,不過會對人體有害。
按普通人的聽覺
* 0-20: 分貝 很靜、幾乎感覺不到;
* 20-40: 分貝安靜、猶如輕聲絮語;
* 40-60: 分貝一般.普通室內談話;
* 60-70: 分貝吵鬧、有損神經;
* 70-90: 分貝很吵、神經細胞受到破壞.
* 90-100: 分貝 吵鬧加劇、聽力受損;
* 100-120: 分貝難以忍受、呆一分鐘即暫時致聾.
* 120分貝以上: 極度聾或全聾
音頻的語音識別功能
這個功能我們選用的是阿里云的語音識別服務,這里就不做詳細描述了,詳細的使用和集成方法,可以參考官網的 API 文檔。
音頻的變聲效果
使用的是開源框架 SoundTouch,使用方法和集成,后面更新...
音頻的波形圖
雖然這一塊的資料和 Demo,iOS 有很多可以參考,但是做的時候發現,繪制波形圖的數據不統一。
大抵分為一下 2種:
- RMS
- 分貝
相關參考資料:
持續更新