今天就跟大家聊聊有關(guān)基頻的文字定義以及如何用librosa提取wav文件基頻,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
站在用戶的角度思考問題,與客戶深入溝通,找到興賓網(wǎng)站設(shè)計(jì)與興賓網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋興賓地區(qū)。
泛音(overtones) == 諧波 (Harmonics)
根據(jù)這個, 可以解耦音色和內(nèi)容
第一共振峰, 第二共振峰...等的位置, 特別是相對位置, 決定了發(fā)音內(nèi)容TODO需要討論|不同元音對不同倍數(shù)泛音共振加強(qiáng)不同, 體現(xiàn)的也有一部分是能量的大小相對差異
基頻的高度, 共振峰的絕對高度, 也一定程度和發(fā)音內(nèi)容相關(guān), 但是需要減掉說話人的平均基頻值, 再去看
人的基頻, 共振峰等的絕對高度, 和音色相關(guān), 比如性別的不同, F0范圍的不同
共振峰的相對位置, 最大的信息時發(fā)音內(nèi)容, 但是相同發(fā)音內(nèi)容, 又會有每個人的發(fā)音習(xí)慣和口腔結(jié)構(gòu), 所以次要信息也有音色信息. 這點(diǎn)和speaker identity更像, ASV特征
真正的"厚實(shí), 亮, 尖, 好聽"也算作音色, 但是是同一個人也可以模擬的, 比如單人多角色小說 唱歌等. 不同共振峰頻率分配的能量, 會導(dǎo)致聽感.人和人之間區(qū)別很大, 也可以導(dǎo)致ASV
因此, 1-如果對mel譜每個人, 進(jìn)行每個頻率獨(dú)立的能量的norm(0, 1), 則一定程度能去掉個人的聲音特性, 并且保留發(fā)音信息(這個好好想, 涉及到位置和位置的能量)| 這個過程相當(dāng)于去掉人的口腔特征對特定發(fā)音的"人加重"
接著上面的, 2-如果能抽離出每一時刻的f0和各個共振峰, 將這些位置也隨著f0的位置做歸一化, 也能一定程度去掉音色, 并且保留發(fā)音信息 | | 這個過程相當(dāng)于去掉人的聲帶特征對特定發(fā)音的"人加重"
提一個問題, 合唱的時候大家都哼"哼", 同一個調(diào), 用此來分析
(
音色:音色的區(qū)別是由于各種振動,其總能量在泛音各音級上能量分配不同而造成的。
)
回答:
只讓人哼同一個字, 相當(dāng)于把人"退化", 或者"類比"為小提琴, 每個人都是小提琴, 但是男的和女的, 男高音和男低音, 是天性不同的小提琴, 對泛音的能量分配就算哼同一個字, 天生分配也不同. 不過差距并不大(相比于哼不同字)罷了
再提一個問題, 男生說的ba和女生說的ba的頻率和共振峰位置一樣么?是不是需要norm之后, 就一樣的, 每個人聲帶的結(jié)構(gòu)和胸腔肌肉力量不同
圖上的水平線含義:水平線表示一個歌手在某個音高上持續(xù)了一段時間。越亮的線表示振幅越大,聽感上當(dāng)然就音量大了
直線就是一個長直音,考察長直音主要看穩(wěn)定度,整個線越直則這個長音越穩(wěn)定。如果大抖就是破音,如果小抖就是不穩(wěn)。如果歪了,那就是音準(zhǔn)沒把握好 TODO, 需要討論
波浪線就是顫音。波浪越大則顫音越大??搭澮粢彩强捶€(wěn)定度,如果顫的不穩(wěn)就是氣息出現(xiàn)問題,控制不好
看泛音主要看三點(diǎn):豐富與否;分布情況;泛音的音量。對比泛音主要是看與基頻的對比。因?yàn)橐纛l文件的音量是可以調(diào)整的,單純的看泛音大小沒多大意義,以基頻為參照才比較有實(shí)際意義。(低頻的共鳴情況取決于元音的類型,每一個元音都有自己的特定的共鳴特性。一般來說,基頻被共鳴強(qiáng)化的情況比較少)
此例中第一泛音巨大(看多了就知道,一般都是第一泛音最大),在3000左右的三個泛音也很強(qiáng)
另一種觀察方法就是和伴奏比,人聲線越明顯則人聲越強(qiáng),越能穿透伴奏. 之后作者有舉例, 我就略了.....偷個懶
https://librosa.org/doc/main/generated/librosa.pyin.html
y, sr = librosa.load(librosa.ex('trumpet')) f0, voiced_flag, voiced_probs = librosa.pyin(y, fmin=librosa.note_to_hz('C2'), fmax=librosa.note_to_hz('C7')) times = librosa.times_like(f0) import matplotlib.pyplot as plt D = librosa.amplitude_to_db(np.abs(librosa.stft(y)), ref=np.max) fig, ax = plt.subplots() img = librosa.display.specshow(D, x_axis='time', y_axis='log', ax=ax) ax.set(title='pYIN fundamental frequency estimation') fig.colorbar(img, ax=ax, format="%+2.f dB") ax.plot(times, f0, label='f0', color='cyan', linewidth=3) ax.legend(loc='upper right')
看完上述內(nèi)容,你們對基頻的文字定義以及如何用librosa提取wav文件基頻有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。