基频的文字定义以及如何用librosa提取wav文件基频

基频的文字定义以及如何用librosa提取wav文件基频

今天就跟大家聊聊有关基频的文字定义以及如何用librosa提取wav文件基频,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

1. 音高和基频

2. 基频定义

3.谐波

泛音(overtones) == 谐波 (Harmonics)

根据这个, 可以解耦音色和内容

  • 第一共振峰, 第二共振峰...等的位置, 特别是相对位置, 决定了发音内容TODO需要讨论|不同元音对不同倍数泛音共振加强不同, 体现的也有一部分是能量的大小相对差异

  • 基频的高度, 共振峰的绝对高度, 也一定程度和发音内容相关, 但是需要减掉说话人的平均基频值, 再去看

  • 人的基频, 共振峰等的绝对高度, 和音色相关, 比如性别的不同, F0范围的不同

  • 共振峰的相对位置, 最大的信息时发音内容, 但是相同发音内容, 又会有每个人的发音习惯和口腔结构, 所以次要信息也有音色信息. 这点和speaker identity更像, ASV特征

  • 真正的"厚实, 亮, 尖, 好听"也算作音色, 但是是同一个人也可以模拟的, 比如单人多角色小说 唱歌等. 不同共振峰频率分配的能量, 会导致听感. 人和人之间区别很大, 也可以导致ASV

  • 因此, 1-如果对mel谱每个人, 进行每个频率独立的能量的norm(0, 1), 则一定程度能去掉个人的声音特性, 并且保留发音信息(这个好好想, 涉及到位置和位置的能量)| 这个过程相当于去掉人的口腔特征对特定发音的"人加重"

  • 接着上面的, 2-如果能抽离出每一时刻的f0和各个共振峰, 将这些位置也随着f0的位置做归一化, 也能一定程度去掉音色, 并且保留发音信息 || 这个过程相当于去掉人的声带特征对特定发音的"人加重"

提一个问题, 合唱的时候大家都哼"哼", 同一个调, 用此来分析

(

  • 音色:音色的区别是由于各种振动,其总能量在泛音各音级上能量分配不同而造成的。

)

回答:

只让人哼同一个字, 相当于把人"退化", 或者"类比"为小提琴, 每个人都是小提琴, 但是男的和女的, 男高音和男低音, 是天性不同的小提琴, 对泛音的能量分配就算哼同一个字, 天生分配也不同. 不过差距并不大(相比于哼不同字)罢了

再提一个问题, 男生说的ba和女生说的ba的频率和共振峰位置一样么?是不是需要norm之后, 就一样的, 每个人声带的结构和胸腔肌肉力量不同

图上的水平线含义:水平线表示一个歌手在某个音高上持续了一段时间。越亮的线表示振幅越大,听感上当然就音量大了

直线就是一个长直音,考察长直音主要看稳定度,整个线越直则这个长音越稳定。如果大抖就是破音,如果小抖就是不稳。如果歪了,那就是音准没把握好 TODO, 需要讨论

波浪线就是颤音。波浪越大则颤音越大。看颤音也是看稳定度,如果颤的不稳就是气息出现问题,控制不好

3.1. 如何观察和评价泛音/谐波

  • 看泛音主要看三点:丰富与否;分布情况;泛音的音量。对比泛音主要是看与基频的对比。因为音频文件的音量是可以调整的,单纯的看泛音大小没多大意义,以基频为参照才比较有实际意义。(低频的共鸣情况取决于元音的类型,每一个元音都有自己的特定的共鸣特性。一般来说,基频被共鸣强化的情况比较少)

  • 此例中第一泛音巨大(看多了就知道,一般都是第一泛音最大),在3000左右的三个泛音也很强

另一种观察方法就是和伴奏比,人声线越明显则人声越强,越能穿透伴奏. 之后作者有举例, 我就略了.....偷个懒

4. librosa概述

5. librosa提取F0

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)importmatplotlib.pyplotaspltD=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='pYINfundamentalfrequencyestimation')fig.colorbar(img,ax=ax,format="%+2.fdB")ax.plot(times,f0,label='f0',color='cyan',linewidth=3)ax.legend(loc='upperright')

看完上述内容,你们对基频的文字定义以及如何用librosa提取wav文件基频有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

发布于 2022-01-06 23:27:12
收藏
分享
海报
0 条评论
61
上一篇:常用ASCII码对应6X8字体实例分析 下一篇:服务器信息安全有哪些特征
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码