EE103(1):librosa實(shí)現(xiàn)音頻基本處理+樂(lè)音三要素原理解析

聲音的向量表示

原理

  1. 向量x\in R^N表示時(shí)間區(qū)間上的音頻信號(hào)拳缠,x_i表示t=h_i時(shí)的聲壓x_i=\alpha p(h_i),i=1,...,N
  2. 每個(gè)x_i稱(chēng)為樣本
  3. h(>0)為采樣時(shí)間
  4. 1/h為采樣率月培,典型的采樣率為1/h=44100/sec48000/sec
  5. \alpha被稱(chēng)為比率因子

使用python的librosa庫(kù)可以讀取音頻信號(hào),并用matplotlib顯示波形

y,sr = librosa.load("MUSIC STEM.wav",sr=None)   #y為長(zhǎng)度等于采樣率sr*時(shí)間的音頻向量
plt.figure()
librosa.display.waveplot(y, sr) #創(chuàng)建波形圖
plt.show()  #顯示波形圖

結(jié)果

在這里插入圖片描述

分析

音頻信號(hào)每一位分別對(duì)應(yīng)一個(gè)采樣點(diǎn),其位數(shù)等于“采樣率*音頻時(shí)長(zhǎng)(以秒為單位)”,記錄了每個(gè)樣本上音頻的振幅信息

縮放音頻信號(hào)

原理

音頻的響度由音頻信號(hào)每個(gè)樣本的數(shù)值絕對(duì)值大小決定,因此對(duì)音頻信號(hào)作代數(shù)乘法運(yùn)算松逊,可以增減音頻的響度

numpy數(shù)組提供的代數(shù)乘法功能可以用于增減音頻響度,并利用librosa庫(kù)將音頻向量寫(xiě)回文件

y=2*y   #增加一倍振幅
y=0.5*y #減小振幅為原來(lái)一半
y=-y    #翻轉(zhuǎn)振幅
y=10*y  #大幅增加振幅
librosa.output.write_wav(dir,y,sr)  #將音頻向量寫(xiě)回文件

結(jié)果

四種操作結(jié)果的波形分別如圖所示

在這里插入圖片描述
  1. y=2*y時(shí)肯夏,得到的音頻響度略大于原音頻
  2. y=0.5*y時(shí)经宏,得到的音頻響度略小于原音頻
  3. y=-y時(shí),得到的音頻響度與原音頻一致
  4. y=10*y時(shí)驯击,得到的音頻響度遠(yuǎn)大于原來(lái)音頻

分析

  1. 音頻信號(hào)每個(gè)樣本的數(shù)值反應(yīng)了振動(dòng)離開(kāi)平衡點(diǎn)的距離烁兰,即振幅,振幅越大徊都,聲音具有的能量越大沪斟,聲音聽(tīng)起來(lái)響度就越大
  2. 對(duì)樣本數(shù)值進(jìn)行倍增,若倍增系數(shù)絕對(duì)值大于1則聲音響度增加,若倍增系數(shù)絕對(duì)值小于1則聲音響度下降
  3. 由于振動(dòng)離開(kāi)平衡點(diǎn)的距離是一個(gè)絕對(duì)值主之,因此倍增系數(shù)為負(fù)數(shù)時(shí)效果與倍增系數(shù)是其相反數(shù)時(shí)一致

線性組合和混音

原理

  1. 對(duì)多個(gè)音頻信號(hào)進(jìn)行線性運(yùn)算y=a_1x_1+a_2x_2+...+a_kx_k可以實(shí)現(xiàn)混音

  2. 此時(shí)每個(gè)音頻信號(hào)x_k稱(chēng)為音軌

  3. 混合后的結(jié)果y稱(chēng)為混合

  4. 每個(gè)系數(shù)a_k是音軌在混合中的權(quán)重

numpy數(shù)組提供的線性運(yùn)算功能可以用于實(shí)現(xiàn)混音

再嘗試人聲與伴奏的混合务冕,取一段人聲軌和一段伴奏軌便贵,分別賦予權(quán)重(0.25,0.75)校摩、(0.5,0.5)败晴、(0.4,0.6)進(jìn)行線性混合

y=0.25*x1+0.75*x2
y=0.5*x1+0.5*x2
y=0.6*x1+0.4*x2

結(jié)果

波形圖如下所示:


在這里插入圖片描述

得到的音頻為在伴奏上加上人聲的效果

分析

  1. 音頻是線性相加,得到的波形圖中無(wú)法直觀分出人聲和伴奏粤攒,但由于人聲和伴奏中各頻率諧波分量與伴奏中不同所森,線性相加在頻域被分配到了各頻率諧波上,所以可以在頻譜圖上清晰區(qū)分出來(lái)

  2. 為了得到足夠清晰的混音音頻夯接,需要不斷更改每個(gè)混音音軌的權(quán)重以得到最適合的混合模式

拓展

雖然人聲和伴奏中諧波分量基本不同焕济,但相同頻率上的相加也容易導(dǎo)致撞頻的發(fā)生,使得混合的人聲和伴奏難以區(qū)分盔几,因此對(duì)于雙聲道音頻晴弃,我們常常采用偏置的方法,為兩個(gè)聲道中人聲和伴奏設(shè)不同的權(quán)重(通常一個(gè)聲道人聲大问欠,一個(gè)聲道伴奏聲大)

形狀為(2,n)的numpy數(shù)組可以用于容納雙聲道音頻信號(hào)肝匆。兩個(gè)聲道分別取權(quán)重(0.4,0.6)、(0.6,0.4)進(jìn)行混合顺献,波形如下:


在這里插入圖片描述

樂(lè)音

  1. 對(duì)于聲音信號(hào)p(t),若滿足p(t+T)\approx p(t)枯怖,其中周期T取值在0.0005秒到0.01秒之間注整,則p被視為樂(lè)音
  2. 周期長(zhǎng)短(決定頻率并)決定音高
  3. 每個(gè)周期內(nèi)波形的特點(diǎn)決定了音色
  4. 樂(lè)音的能量決定了響度,即聲壓

音高

原理

  1. f=440Hz是中央A
  2. 一個(gè)八度在頻率上翻了一倍
  3. 十二平均律中度硝,每個(gè)半音在頻率上翻了2^{1/12}
  4. 每個(gè)半音的距離就是黑白鍵上兩個(gè)鍵之間的距離肿轨,從do到升do,各白鍵之間的差音為全全半全全全半蕊程,而每個(gè)全音中的半音被分到了黑鍵上
  5. 任意兩個(gè)音之間的距離稱(chēng)為音程椒袍,音程的單位是,相同單音之間音程為1度藻茂,之后每差一個(gè)音級(jí)增加1度

實(shí)驗(yàn)步驟:

  1. 設(shè)置基頻f為440Hz驹暑,用numpy以440Hz生成正弦函數(shù)
  2. 每隔1/44100s設(shè)置一個(gè)采樣點(diǎn),每間隔1s生成1s的440Hz正弦波
  3. 在這基礎(chǔ)上辨赐,第n次生成時(shí)再生成1s頻率為440·2^{(n-1)/12}Hz的正弦波优俘,與原正弦波線性相加進(jìn)行和弦,從而模擬小二度到純八度的所有音程
x=np.empty((0,))    #生成空數(shù)組
for i in range(0,13):
    x1=np.linspace(0,1, num=44100, endpoint=True, dtype=float)  #生成采樣點(diǎn)
    x1=5*np.sin(2*np.pi*440*np.power(2,i/12)*x1)+5*np.sin(2*np.pi*440*x1)   #生成波形與和弦
    x2=np.zeros((44100,))   #留空部分
    x=np.concatenate((x,x1,x2),axis=0)  #連接數(shù)組

結(jié)果

生成的26s音頻中有13段不同音程的和弦掀序,有的和弦聽(tīng)起來(lái)和諧帆焕,有的和弦聽(tīng)起來(lái)不和諧

分析

  1. 小二度音程(相差一個(gè)半音)、大七度音程(相差五個(gè)全音一個(gè)半音)是極不協(xié)和音程
  2. 大二度音程(相差一個(gè)全音)不恭、小七度音程(相差五個(gè)全音)叶雹、三全音(三個(gè)全音)是不協(xié)和音程
  3. 小三度音程(相差一個(gè)全音一個(gè)半音)财饥、大三度音程(相差兩個(gè)全音)、小六度音程(相差四個(gè)全音)折晦、大六度音程(相差四個(gè)全音一個(gè)半音)是不完全協(xié)和音程
  4. 純四度音程(相差兩個(gè)全音一個(gè)半音)佑力、純五度音程(相差三個(gè)全音一個(gè)半音)是完全協(xié)和音程
  5. 純八度音程(相差六個(gè)全音)是極完全協(xié)和音程

音色

  1. 對(duì)于周期性信號(hào)p(t)=\displaystyle \sum_{k=1}^K (a_kcos(2\pi fkt)+b_ksin(2\pi fkt)),每個(gè)分解信號(hào)為諧波泛音

  2. f為頻率

  3. a與b為諧波系數(shù)

  4. 在K足夠大時(shí)筋遭,任意周期性信號(hào)都可以通過(guò)積分變換為這種形式

  5. 諧波振幅的配比決定了音色打颤,對(duì)于每個(gè)頻率由k決定的諧波,其諧波振幅為c_k=\sqrt{a_k^2+b_k^2}漓滔,因此諧波振幅可以組成一個(gè)長(zhǎng)度為k的向量c=(0.3,0.4,...)编饺,足夠多的諧波以不同振幅數(shù)值混合可以組成不同音色

在220-11000Hz之間分別生成1、5响驴、10透且、20、50個(gè)頻段的正弦豁鲤、余弦信號(hào)秽誊,隨機(jī)生成諧波系數(shù)

結(jié)果

五種情況下混合波形圖如下所示:

在這里插入圖片描述

得到一段每隔1s播放1s不同音色音頻的音頻文件

分析

  1. 使用不同足夠多的諧波以不同諧波系數(shù)混合可以組成不同音色音頻
  2. 現(xiàn)實(shí)中已知樂(lè)器也可以利用頻譜分析提取音色特征,供計(jì)算機(jī)再現(xiàn)
  3. 利用諧波原理可以制作各種各樣的電子合成器琳骡,供作曲家使用
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末锅论,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子楣号,更是在濱河造成了極大的恐慌最易,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件炫狱,死亡現(xiàn)場(chǎng)離奇詭異藻懒,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)视译,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)嬉荆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人酷含,你說(shuō)我怎么就攤上這事鄙早。” “怎么了第美?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蝶锋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我什往,道長(zhǎng)扳缕,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮躯舔,結(jié)果婚禮上驴剔,老公的妹妹穿的比我還像新娘。我一直安慰自己粥庄,他們只是感情好丧失,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著惜互,像睡著了一般布讹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上训堆,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天描验,我揣著相機(jī)與錄音,去河邊找鬼坑鱼。 笑死膘流,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鲁沥。 我是一名探鬼主播呼股,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼画恰!你這毒婦竟也來(lái)了彭谁?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤阐枣,失蹤者是張志新(化名)和其女友劉穎马靠,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體蔼两,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年逞度,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了额划。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡档泽,死狀恐怖俊戳,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馆匿,我是刑警寧澤抑胎,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站渐北,受9級(jí)特大地震影響阿逃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一恃锉、第九天 我趴在偏房一處隱蔽的房頂上張望搀菩。 院中可真熱鬧,春花似錦破托、人聲如沸肪跋。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)州既。三九已至,卻和暖如春萝映,著一層夾襖步出監(jiān)牢的瞬間吴叶,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工锌俱, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留晤郑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓贸宏,卻偏偏與公主長(zhǎng)得像造寝,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吭练,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 聲音是因物體的振動(dòng)而產(chǎn)生的一種物理現(xiàn)象诫龙。振動(dòng)使物體周?chē)目諝饫@動(dòng)而形成聲波,聲波以空氣為媒介傳入人的耳朵鲫咽,于是人們...
    liwuwuzhi閱讀 2,783評(píng)論 0 1
  • SoX(即 Sound eXchange)是一個(gè)跨平臺(tái)(Windows签赃,Linux,MacOS 等)的命令行實(shí)用程...
    rollingstarky閱讀 36,271評(píng)論 0 22
  • 音頻技術(shù)開(kāi)發(fā)分尸,我們得對(duì)聲音有所了解锦聊,掌握音頻的基礎(chǔ)知識(shí),這才能更好地去做技術(shù)開(kāi)發(fā)箩绍。首先介紹音頻基礎(chǔ)知識(shí)孔庭,然后介紹音...
    安仔夏天勤奮閱讀 7,454評(píng)論 3 18
  • 今天,是一個(gè)令我激動(dòng)的日子材蛛! 昨天圆到,更是個(gè)令我激動(dòng)的日子!卑吭! 真心的芽淡,超級(jí)開(kāi)心^0^~ 我從來(lái)沒(méi)想過(guò)自己會(huì)收...
    奈何薇薇閱讀 366評(píng)論 2 1
  • 今天 起床:4:00 就寢:10:30 天氣:晴 心情:澀澀的眼睛,睜開(kāi)刺眼~ 任務(wù)清單 昨日完成的任務(wù)豆赏,最重要的...
    早起布谷鳥(niǎo)閱讀 73評(píng)論 0 1