【论文笔记之 PYIN】PYIN, A Fundamental Frequency Estimator Using Probabilistic Threshold Distributions

这篇具有很好参考价值的文章主要介绍了【论文笔记之 PYIN】PYIN, A Fundamental Frequency Estimator Using Probabilistic Threshold Distributions。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文对 Matthias MauchSimon Dixon 等人于 2014 年在 ICASSP 上发表的论文进行简单地翻译。如有表述不当之处欢迎批评指正。欢迎任何形式的转载,但请务必注明出处。

论文链接https://www.eecs.qmul.ac.uk/~simond/pub/2014/MauchDixon-PYIN-ICASSP2014.pdf

1. 论文目的

提出一种改进的 YIN 算法—PYIN,其估计基频的效果更好。

2. 摘要

我们提出了一种用于基频估计的 Probabilistic YIN(PYIN) 算法,它是在 YIN 算法上改进而来的。传统 YIN 算法是一种简单有效的逐帧单通道的 F0 估计方法,并且仍是该领域流行的算法之一。为了消除个别误差,通常会对频率估计器的输出做后处理,来得到更加平滑的音高轨迹。YIN 算法的缺点之一是它对于每帧音频只输出一个估计值,限制了后处理的发挥空间。为了解决这个问题,我们改进了 YIN,以使其输出多个与概率相关的音高候选值(PYIN 算法的第一个阶段)。这些概率来自于 YIN 阈值参数的先验分布。我们将这些概率作为隐马尔可夫模型中的观测概率,使用维特比算法对其解码以得到改进的音高轨迹(PYIN 算法的第二个阶段)。我们证明了将两个阶段结合可以显著提升召回率和精确率。PYIN 相比于 YIN 所增加的计算复杂度是较低的。我们在网站上开源了其 C++ 代码。

3. 介绍

从单通道人声信号中估计基频(F0)是综合分析语音和歌唱中的语调的先决条件。由于逐帧音高估计不完全可靠,因此,经常使用后处理来提升原始的音高轨迹。尽管已有算法的成功率很高,但该过程通常存在缺陷,因为在逐帧估计阶段所丢弃的频率候选值无法在平滑阶段恢复,因此,在进行后处理平滑之前,应该使用多个逐帧音高候选值。

在语音处理领域,研究者们已经提出了很多 F0 估计方法。在这些方法中,YIN 算法在语音处理领域之外也很受欢迎,尤其是在歌唱分析方面。Babacan 等人比较了 F0 估计算法在歌唱方面的性能,结果显示 YIN 算法是效果最好的,而且特别擅长精细的音高识别。

原始的 YIN 算法论文提到了一个不使用逐帧估计,而是追踪基础周期性函数的低值的平滑过程。在本文中,我们在 YIN 的基础上,以概率的方式修改了其逐帧估计过程,输出了多个与概率相关的音高候选值,因此减少了平滑之前有用信息的损失。然后,我们应用隐马尔可夫模型来得到一个更平滑的音高轨迹。我们的算法即保留了 YIN 的高精度,又能达到一个更高的召回率和精确率。

4. 方法

本章描述了我们提出的 PYIN 算法,它分为两个阶段:(1)逐帧抽取多个与概率相关的音高候选值,(2)使用 HMM 得到更平滑的音高轨迹。接下来将依次介绍这两个阶段。

4.1 阶段 1:F0 候选值

PYIN 的第一个阶段与原始的 YIN 算法的步骤类似,不同之处仅在于阈值这个阶段,前者假设了一个阈值分布,而后者依赖于单个阈值(见图 1)。

pyin - a fundamental frequency estimator for monophonic audio centre for dig,基频提取,音频信号处理,基频提取算法 PYIN,音高提取算法 PYIN,自相关算法,平均幅度差函数,HMM
YIN 算法基于以下理论,在信号 x i ,   i = 1 , ⋯   , 2 W , x_i, \, i=1,\cdots, 2W, xi,i=1,,2W, 中,如果信号近似以 τ = 1 / f 0 \tau=1/f_0 τ=1/f0 为基本周期,那么差分
d t ( τ ) = ∑ j = 1 W ( x j − x j + τ ) 2 , \begin{align} d_t(\tau) = \sum_{j=1}^{W}(x_j-x_{j+\tau})^2, \tag{1} \end{align} dt(τ)=j=1W(xjxj+τ)2,(1)

的值将会很小。该差分的值可以通过计算自相关函数(ACF)来得到
r t ( τ ) = ∑ j = t + 1 t + W x j x j + τ , \begin{align} r_t(\tau) = \sum_{j={t+1}}^{t+W} x_j x_{j+\tau}, \tag{2} \end{align} rt(τ)=j=t+1t+Wxjxj+τ,(2)

( 1 ) (1) (1) 可以用下式来计算
d t ( τ ) = r t ( 0 ) + r t + τ ( 0 ) − 2 r t ( τ ) . \begin{align} d_t(\tau) = r_t(0) + r_{t+\tau}(0) - 2r_t(\tau). \tag{3} \end{align} dt(τ)=rt(0)+rt+τ(0)2rt(τ).(3)

上述两个计算包含了原始 YIN 算法的前两个步骤,如图 1 所示。原始 YIN 算法的第三步是对 ( 1 ) (1) (1) 中的差分进行归一化,来得到累积均值归一化差分函数 d ′ ( τ ) d^{'}(\tau) d(τ)(为了方便说明,忽略下标 t t t)。

原始 YIN 算法的第四步是从差分函数 d ′ d^{'} d 中找到与基本周期对应的凹陷。具体做法是,找到使得 d ′ d^{'} d 取局部最小值并且 d ′ ( τ ) < s d^{'}(\tau) < s d(τ)<s 的最小的 τ \tau τ,其中 s s s 是固定阈值(通常 s = 0.1 s=0.1 s=0.1 s = 0.15 s=0.15 s=0.15)。如果所有的 d ′ ( τ ) > s d^{'}(\tau)>s d(τ)>s,那么原始的 YIN 论文将 arg min ⁡ τ d ′ ( τ ) \argmin_{\tau}d^{'}(\tau) argminτd(τ) 作为周期估计;或者可以认为不存在音高。我们将 YIN 估计的周期表示为 Y ( x t , s ) Y(x_t,s) Y(xt,s)

pyin - a fundamental frequency estimator for monophonic audio centre for dig,基频提取,音频信号处理,基频提取算法 PYIN,音高提取算法 PYIN,自相关算法,平均幅度差函数,HMM
因为阈值的选择以及当所有的值都大于阈值时所采用的策略会影响最终的结果。所以,我们放弃使用单阈值,并提出使用一个由 P ( s i ) P(s_i) P(si) 给出的先验参数分布 S S S,其中 s i ,   i = 1 , ⋯   , N s_i, \, i=1,\cdots,N si,i=1,,N 是可选阈值。我们选择的阈值范围从 0.01 0.01 0.01 1 1 1,且步长为 0.01 0.01 0.01,也就是说 N = 100 N=100 N=100。我们实验中使用的分布是均值为 0.1 ,   0.15 ,   0.2 ( α = 1   且   β = 18 ,   11 1 3 ,   8 ) 0.1, \, 0.15, \, 0.2(\alpha=1 \, \text{且} \, \beta=18, \, 11\frac{1}{3}, \, 8) 0.1,0.15,0.2α=1β=18,1131,8Beta 分布,如图 2 所示。给定这样的分布,以及使用绝对最小值策略的先验概率 p a p_a pa,我们就能根据 YIN 来定义周期 τ \tau τ 是基本周期 τ 0 \tau_0 τ0 的概率
P ( τ = τ 0 ∣ S , x t ) = ∑ i = 1 N a ( s i , τ ) P ( s i ) [ Y ( x t , s i ) = τ ] , \begin{align} P(\tau=\tau_0|S,x_t) = \sum_{i=1}^{N}a(s_i,\tau)P(s_i)[Y(x_t,s_i)=\tau], \tag{4} \end{align} P(τ=τ0S,xt)=i=1Na(si,τ)P(si)[Y(xt,si)=τ],(4)

其中 [ ⋅ ] [\cdot] []the Iverson bracket,如果表达式为真,其返回值为 1 1 1;否则,返回值为 0 0 0
a ( s i , τ ) = { 1 , if    d ′ ( τ ) < s i p a , otherwise. (5) a(s_i,\tau) = \begin{cases} 1, & \text{if} \; d^{'}(\tau) < s_i \\ p_a, & \text{otherwise.} \tag{5} \end{cases} a(si,τ)={1,pa,ifd(τ)<siotherwise.(5)

我们使用 p a = 0.01 p_a=0.01 pa=0.01。注意到如果 p a < 1 p_a<1 pa<1,那么 ( 4 ) (4) (4) 的和就不一定是 1 1 1 1 − ( 4 ) 1-(4) 1(4) 式的结果可以解释为该帧是非语音的概率。

任何使得 P ( τ = τ 0 ∣ S , x t ) > 0 P(\tau=\tau_0|S,x_t) > 0 P(τ=τ0S,xt)>0 τ \tau τ 都会生成一个基频候选值 f = 1 / τ f=1/\tau f=1/τ。与原始 YIN 算法一样,PYIN 也对差分函数 d ′ d^{'} d 进行抛物线插值来提升频率估计。

基频候选值的集合与其对应的概率一起作为 PYIN 算法第一阶段的输出。它有着以下几个吸引人的属性:

  • 任何位于差分函数 d ′ d^{'} d 局部最小值处且使得 ( 4 ) (4) (4) 为非零值的 τ \tau τ 都是某个阈值 s s s 所对应的真实的 YIN 频率估计。
  • 可以在原始 YIN 算法的基础上以最小的计算代价得到概率估计。
  • 传统的 YIN 估计位于这些候选值之中,也就是说 PYIN 至少包含了与 YIN 一样多的真实基频估计。

最后一点是我们方法的主要动机,在原始 YIN 算法中,一旦估计值是错误的,真实值将不会被恢复。我们的改进是基于我们观察到在很多情况下,存在一个未知的阈值,能使得 YIN 输出正确的音高,如表 1 所示:PYIN 的候选值集合相比 YIN 的任何参数都具有更高的音高召回率。稍后我们将会证明,这大大提高了 PYIN 的第二阶段中音高追踪的有效性。

pyin - a fundamental frequency estimator for monophonic audio centre for dig,基频提取,音频信号处理,基频提取算法 PYIN,音高提取算法 PYIN,自相关算法,平均幅度差函数,HMM

4.2 阶段 2: 基于 HMM 的音高追踪

音高追踪步骤在每一帧上至多选出一个合适的音高候选值。我们将音高范围划分成 M = 480 M=480 M=480 个频点,横跨了四个八度从 55 Hz(A1) 55\text{Hz(A1)} 55HzA1 880 Hz(A5) 880\text{Hz(A5)} 880HzA5,步长为 10 10 10 个音分( 0.1 0.1 0.1 个半音)。

这些音高频点可以被建模为隐马尔可夫模型(HMM)中的状态。模型将直接把在 PYIN 第一阶段中计算得到的音高候选值的概率作为观测概率:每个观测到的音高候选值的概率将被分配给最接近其估计频率的频点;这将会产生一个稀疏的观测向量 p m ∗ ,   m = 1 , ⋯   , M p_m^{*}, \, m=1,\cdots,M pm,m=1,,M,只有其中的非零元素是最接近音高候选值的。我们使用该思路,并且在一个已有的音符追踪方法的启发下,开发出了一个更实用的 HMM,其中每个音高对应语音( v = 1 v=1 v=1)和非语音( v = 0 v=0 v=0)状态(也就是有 2 M 2M 2M 个音高状态)。假设处于语音或非语音状态的先验概率是 P ( v = 1 ) = P ( v = 0 ) = 0.5 P(v=1) = P(v=0) = 0.5 P(v=1)=P(v=0)=0.5,我们将我们模型的观测概率定义为
p m , v = { 0.5    ⋅    p m ∗ , for    v = 1 0.5    ⋅    ( 1 − ∑ k P k ∗ ) for    v = 0. (6) p_{m,v} = \begin{cases} 0.5 \; \cdot \; p_m^{*}, & \text{for} \; v=1 \\ 0.5 \; \cdot \; (1-\sum_k P_k^{*}) & \text{for} \; v = 0.\tag{6} \end{cases} pm,v={0.5pm,0.5(1kPk)forv=1forv=0.(6)

模型的转移概率有两个主要目的:偏好更平滑的音高轨迹,以及偏好语音和非语音之间较少的变化。我们将此编码为与发音过渡和音高过渡相关的两个分布:
p v = P ( v t ∣ v t − 1 ) = { 0.99 , if no change 0.01 , otherwise, and p i j = P ( pitch t = j ∣ pitch t − 1 = i ) \begin{align} p_v &= P(v_t|v_{t-1}) \notag \\ &= \begin{cases} 0.99, & \text{if no change} \\ 0.01, & \text{otherwise, and} \tag{7} \end{cases} \\ p_{ij} &= P(\text{pitch}_t = j | \text{pitch}_{t-1} = i) \tag{8} \end{align} pvpij=P(vtvt1)={0.99,0.01,if no changeotherwise, and=P(pitcht=jpitcht1=i)(7)(8)

后者被实现为三角形权重分布,它让音高最多跳跃 25 25 25 个频点,对应于相邻两帧之间最多差 2.5 2.5 2.5 个半音。最高的似然峰值位于 0 0 0 半音处。对三角窗始终进行归一化,使得其和为 1 1 1。更多的信息可以参考源码。假设 ( 7 ) (7) (7) ( 8 ) (8) (8) 所描述的两个状态是独立的,那么,这两个状态之间的实际转移概率就是两个独立概率的乘积。初始概率被设置为在非语音状态上的均匀分布,并且使用高效版本的维特比算法(利用转移矩阵的稀疏性)对 HMM 进行解码。

5. 结果

我们基于 RWC 音乐数据库提供的 F0 音高轨迹合成歌唱音频,并将其保存为采样率等于 44.1kHz 的线性 PCM wav 文件。这些曲目涵盖了数据库中流行音乐部分的 100 首完整歌曲。为了模拟更真实的情况,除了这些原始 wav 文件之外,我们还使用 Audio Degradation Toolbox 中的五个预设来降低音频的质量。最终,整个数据集包含了超过 30 个小时的音频数据。后续所有的结果均基于此数据集。

我们实验了三个不同 Beta 参数分布(均值分别为 0.10 ,   0.15 ,   0.20 0.10, \, 0.15, \, 0.20 0.10,0.15,0.20,见图 2)下的 PYIN 算法。作为对比,我们还对参数分布 S S S 另取了三个不同的版本,该分布下只有一个非零元素 s i s_i si(同样也是 0.10 ,   0.15 ,   0.20 0.10,\, 0.15, \, 0.20 0.100.15,0.20)。由于这实际上简化为原始的 YIN 算法加平滑处理,我们将其表示为 YIN+S。基线是有着三个不同阈值参数 s = 0.10 ,   0.15 ,   0.20 s=0.10, \, 0.15, \, 0.20 s=0.10,0.15,0.20 的原始 YIN 算法。所有方法都在 Vamp 插件的实现中运行,其步长为 256 ( 5.8 ms) 256(5.8\text{ms}) 2565.8ms,帧长为 2048 ( 46.4 ms) 2048(46.4\text{ms}) 204846.4ms

5.1. 对合成数据的定量分析

Recall. 我们希望有较高的召回率。如果估计值在真实频率的一个半音以内,我们就认为正确地检测到了音高。

pyin - a fundamental frequency estimator for monophonic audio centre for dig,基频提取,音频信号处理,基频提取算法 PYIN,音高提取算法 PYIN,自相关算法,平均幅度差函数,HMM
3a 的结果表明任意 beta 分布下的 PYIN( . 10 ,   . 15 ,   . 20 .10, \, .15, \, .20 .10,.15,.20 估计明显优于 YIN 的估计值。与任何传统的 YIN 算法(中值均低于 0.951 0.951 0.951)相比,PYIN 算法的召回率中值( 0.977 ,   0.982 ,   0.984 0.977, \, 0.982,\, 0.984 0.9770.9820.984)更接近全部候选值覆盖的正确音高数量给出的上限( 0.98 0.98 0.98)。

注意到 YIN+S 的召回率要比原始 YIN 算法的召回率差。这是因为每帧音频只有一个 YIN 估计值用于平滑,因此召回率收到 YIN 算法能力的限制。

Precision and F Score. 除了召回率还需要高精确率。如图 3b 所示,所有的 PYINYIN+S 都要优于原始的 YIN 算法。注意到 YIN+S 的精确率最高,因为它可以将较少的帧识别为浊音。图 3c 给出了一个权衡了召回率和精确率的综合指标— F F F score 的结果, F = 2 precision × recall precision+recall F=2\frac{\text{precision} \times \text{recall}}{\text{precision+recall}} F=2precision+recallprecision×recall,可以看到 PYIN 算法取得了最优结果。

Octave Errors and Voicing Detection. PYIN 算法针对 octave errors 具有很好的鲁棒性(分别是 0.5 % ,   0.9 % 0.5\%, \, 0.9\% 0.5%,0.9% 1.7 % 1.7\% 1.7%),很好的发声检测召回率(分别是 92.5 % ,   94.1 % 92.5\%, \, 94.1\% 92.5%,94.1% 95.0 % 95.0\% 95.0%)和 specificity(分别是 91.9 % ,   90.6 % 91.9\%, \, 90.6\% 91.9%,90.6% 88.9 % 88.9\% 88.9%)。

pyin - a fundamental frequency estimator for monophonic audio centre for dig,基频提取,音频信号处理,基频提取算法 PYIN,音高提取算法 PYIN,自相关算法,平均幅度差函数,HMM

5.2. 真实的人声歌唱:定性的例子

4 给出了由 YIN .15PYIN .15 提取的歌曲 “Happy Birthday” 的最后四个音符的音高轨迹。该录音由一位女歌手演唱,用于音调研究。虽然两个算法几乎完美地估计出了前两个音符(到 59 59 59 秒)的音高,但 YIN 算法在后半部分出现较多的 octave errors。这可能是由歌手不寻常的呼吸音色造成的。PYIN 更鲁棒正确估计出了音高。

6. 结论

我们提出了 PYIN 算法,它是 YIN 算法的一种改进,它基于 YIN 的概率解释联合考虑了多个音高候选值。YIN 阈值参数的先验分布生成了一组与概率相关的音高候选值,这些候选值也由 YIN 计算得到。将这些候选概率作为 HMM 中的观测概率,并使用维特比算法对其进行解码,就可以得到时间上更平滑的音高轨迹。我们证明了在超过 30 30 30 小时的合成歌唱音频上,PYIN 的召回率和精确率都要高于 YIN。由于 PYINYIN的阈值分布进行了参数化,因此,它对分布选择的鲁棒性比 YIN 对阈值选择的鲁棒性更强。文章来源地址https://www.toymoban.com/news/detail-851317.html

到了这里,关于【论文笔记之 PYIN】PYIN, A Fundamental Frequency Estimator Using Probabilistic Threshold Distributions的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 论文笔记:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting

    2022 ICML 长时间序列问题是一个研究很广泛的问题 RNN以及变体会遇到梯度消失/梯度爆炸,这会在很大程度上限制他们的表现 Transformer的方法会导致很高的计算复杂度,以及很大的内存消耗,这也会使得在长时间序列上使用Transformer很吃力 近来有方法优化Transformer,使其计算复

    2024年02月11日
    浏览(31)
  • SRDiff: Single Image Super-Resolution with Diffusion Probabilistic Models 论文笔记

    由于大多数基于卷积神经网络或者Attention机制的超分辨模型大部分都是PSNR主导的,即用PSNR作为损失函数进行训练,这会导致超分辨图像过度平滑的问题,也就是超分辨后的图像高频信息不能很好保留,并且超分辨的图像较为固定,对于超分辨这种不适定问题来说不太合适。

    2024年02月11日
    浏览(37)
  • 论文笔记Autoregressive Denoising Diffusion Models for Multivariate Probabilistic Time Series Forecasting

    论文针对多元概率时间序列预测(multivariate probabilistic time series forecasting)任务,提出了TimeGrad模型。 有开源的代码:PytorchTS 概率预测如下图所示,对未来的预测带有概率: TimeGrad模型基于Diffusion Probabilistic Model,Diffusion Probabilistic Model这里不再介绍,可以简单认为是一个可以

    2024年02月07日
    浏览(31)
  • 论文阅读《thanking frequency fordeepfake detection》

    项目链接:https://github.com/yyk-wew/F3Net 这篇论文从频域的角度出发,提出了频域感知模型用于deepfake检测的模型 整体架构图: 1.FAD: 频域感知分解,其实就是利用DCT变换,将空间域转换为频域,变换后的图像低频信息在左上角,高频信息在右下角,同时高频表示细粒度的伪造痕

    2024年02月20日
    浏览(28)
  • 【论文笔记】SwinIR: Image Restoration Using Swin Transformer

    声明 不定期更新自己精度论文,通俗易懂,初级小白也可以理解 涉及范围:深度学习方向,包括 CV、NLP、Data Fusion、Digital Twin 论文标题:SwinIR: Image Restoration Using Swin Transformer 论文链接:https://arxiv.org/abs/2108.10257v1 论文代码:https://github.com/jingyunliang/swinir 发表时间:2021年8月

    2023年04月25日
    浏览(35)
  • DREAMFUSION TEXT-TO-3D USING 2D DIFFUSION 论文笔记

    Recent breakthroughs in text-to-image synthesis have been driven by diffusion models trained on billions of image-text pairs. Adapting this approach to 3D synthe- sis would require large-scale datasets of labeled 3D data and efficient architectures for denoising 3D data, neither of which currently exist. In this work, we circum- vent these limitations by usi

    2024年02月07日
    浏览(41)
  • 【论文阅读笔记】Detecting AI Trojans Using Meta Neural Analysis

    个人阅读笔记,如有错误欢迎指出! 会议:2021 SP        Detecting AI Trojans Using Meta Neural Analysis | IEEE Conference Publication | IEEE Xplore 问题:         当前防御方法存在一些难以实现的假设,或者要求直接访问训练模型,难以在实践中应用。 创新:         通过元分类器

    2024年01月23日
    浏览(34)
  • 论文学习笔记:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows

    论文阅读:Swin Transformer: Hierarchical Vision Transformer using Shifted Windows 今天学习的论文是 ICCV 2021 的 best paper,Swin Transformer,可以说是 transformer 在 CV 领域的一篇里程碑式的工作。文章的标题是一种基于移动窗口的层级 vision transformer。文章的作者都来自微软亚研院。 Abstract 文章的

    2024年02月08日
    浏览(29)
  • 论文笔记--Learning Political Polarization on Social Media Using Neural Networks

    标题:Learning Political Polarization on Social Media Using Neural Networks 作者:LORIS BELCASTRO, RICCARDO CANTINI, FABRIZIO MAROZZO, DOMENICO TALIA AND PAOLO TRUNFIO 日期:2020 期刊:IEEE   文章提出了一种基于神经网络对政治两极化观点进行分析的方法IOM-NN, 基于两组case的分析结果表明该方法相比于传统

    2024年02月03日
    浏览(45)
  • 论文笔记_InP_photonic_circuits_using_generic_integration

    时间:2015年5月 基于InP四元化合物(比如InGaAsP和InGaAlAs)的光子集成芯片可以制成性能很高的光子基本元件 passive components:optical splitters, filters, multiplexers, combiners active components such as optical amplifiers, lasers, modulators, detectors. 集成电路技术提高了电路的性能: 减少了电路组装过

    2024年02月04日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包