签到

05月06日
尚未签到

共有回帖数 0

    告别旧巷

    等级:


    EpR(Excitation plus Resonance)是一个用于构建语音频谱形状的模型。于2001年由庞培法布拉大学Music Technology Group与Yamaha Advanced System Development Center合作发表。在Vocaloid系列歌声合成软件中被用来处理音渡、改变语音特性。


    这篇帖子与其说是教程,不如说是讨论。因为我也有一些问题要问。写此帖目的有三:
    1. 混精
    2. 我正考虑用EpR代替CVE3中使用的LCFESOLA,向其他开发者介绍这种算法(似乎网上除了少数几篇论文找不到其他介绍了)。
    3. 探讨如何对EpR作改进。


    我会先根据我的理解(有错误请指正),写一个EpR的教程,并附上一个octave、C++混编实现的EpR滤波器。
    然后提出一些问题和论文中没有提及的研究方向。



    参考文献:


    Bonada, Jordi, et al. "Singing voice synthesis combining excitation plus resonance and sinusoidal plus residual models." Proceedings of International Computer Music Conference. 2001.
    Sanjaume, Jordi Bonada. Voice processing and synthesis by performance sampling and spectral models. Diss. Universitat Pompeu Fabra, 2008.

    Serra, X. 1989. "A System for Sound Analysis/Transformation/Synthesis based on a Deterministic plus Stochastic Decomposition" Ph.D. Thesis. Stanford University.


    以上都可以在UPF网站上下载到:
    http://mtg.upf.edu/node/219
    http://mtg.upf.edu/node/1231
    http://mtg.upf.edu/node/304
    话说MTG真是厉害……这么多关键技术都是他们搞出来的。



    此坑大概要拖一段时间,先把帖子开在这,有空就写。





    其实EpR模型除了频谱包络,还能生成相位。不过SMS合成中相位不是必须的,我就没继续看下去。有兴趣的读者可以自行阅读。


    下面为了方便表示,我用首字母缩写表示图上的各部分。

    ---
    EpR其实不适合纯参数控制的语音合成,除了它只是针对元音的频谱包络建模外,它的输入参数限制了它的应用。除了一些数字,比如共振峰频率和带宽外,EpR还需要一个[根据这些参数生成的预测包络]和[实际语音信号的频谱包络]的差值包络。因此EpR主要用于语音的修改而不是凭空生成。
    如图,我把预测包络称为Estimated Envelope,差值包络叫做Differential Envelope。那么最终生成的包络是EE和DE的叠加。





    左边稍微臃肿了点。意思是,我们给定一段语音信号(OV: Original Voice)要修改它的特性,对OV进行分析获得OV的频谱包络(OSE: Original Spectral Envelope)。
    同时我们给OV拟合出它的参数(OP: Original Parameters),然后用OP生成EOE: Estimated Original Envelope。拿EOE减去OSE即获得DE。


    如果我们给EpR一组新参数(NP: New Parameters),EpR内部会用NP生成ENE: Estimated New Envelope,再把ENE和DE叠加,作为最终的频谱包络SE: Spectral Envelope输出。
    如果NP = OP,那么ENE = EOE,SE = DE + ENE = DE + EOE = OSE。此时合成的语音和原始语音在听觉上相等(因为忽略了相位所以仅在听觉上相等)。
    2. 频谱包络的生成
    EpR滤波器由三个子滤波器组成,除了上面提到的Differential Filter外,Esitmated Envelope可以拆成两个Filter的叠加:
    1. Excitation: 激励。
    2. Resonance: 共振。
    所以才叫作Excitation plus Resonance。


    我们都知道人发声时,声门先产生一个脉冲(Glottal Pulse),这个脉冲在声道(Vocal Tract, 包括喉腔、咽腔、口腔)中被滤波。
    玩过语音处理的读者应该知道,无论发音特征,语音的频谱中能量聚集在相对低频(5000Hz以下)区域,向高频递减。大致上声门脉冲的频谱形状亦是如此,为一串谐波,幅度随频率升高平滑递减。


    (1)EpR Source Filter

    声门脉冲的频谱和三角波挺像,为了建立直观概念,我把维基百科里三角波的配图拿来用下:


    不过声门脉冲的递减比上图还要夸张一些。
    Excitation即是对声门脉冲的建模。


    在进行数学定义前,我先说明下文中所有频谱纵轴的单位是【分贝】,除非另行描述。
    分贝和幅值的转换关系:
    DB = 20 * log10(Magnitude)


    一般对Excitation的频谱曲线建模如下:
    Excitation(f) = Gain + SlopeDepth(e ^ (Slope * f) - 1)
    这是一个指数递减函数。f代表频率,Gain/SlopeDepth/Slope是三个参数,分别代表增益、深度和斜率。论文[1]里这张插图描述了曲线的大致形状。


    论文[1]并未提及如何获得这三个参数,原文仅说“This curve is obtained from an approximation to the harmonic spectral shape (HSS) determined by the harmonics identified in the SMS analysis”。
    而论文[2]中提到“Gain, Slope and SlopeDepth values are obtained from a linear regression of the harmonic peaks in the logarithmic frequency spectrum.”
    我正在尝试对Excitation参数的自动提取,将在本帖最后讨论。



    为了更符合实际频谱的低频形状,EpR在Excitation(f)的基础上增加了一个位于低频的频谱突起:


    楼主 2016-04-09 15:02 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知