zoukankan      html  css  js  c++  java
  • 变调不变速方法

    变调的方法也可以分为三类:时域法、频域法、参量法。

    时域法中,Crochiere等人于1983年提出了重采样的方法[42],该方法是实现变速变调最简单、最常用的方法之一。

    假设重采样因子为P/Q,其中,P为上采样因子,Q为下采样因子。上采样过程就是往原始信号相邻两点间内插P-1个采样点,这样使得基音周期变为原来的P倍,频谱压缩为原来的1/P倍,时长变为原来的P倍,即基频变为原来的1/P倍,音调降为原来的1/P倍,语速变为原来的1/P倍。

    同样地,下采样过程就是每隔Q-1个点进行抽取,这样会使得基音周期长度为原来的1/Q倍,频谱扩展为原来的Q倍,时长变为原来的1/Q倍,即基频变为原来的Q倍,音调升为原来的Q倍,语速变为原来的Q倍。

    综合上述两个过程,通过P/Q倍的重采样后,保持播放速率不变,重采样语音语速和音调都变为原来的Q/P倍[43]

    为了实现变调不变速,可以通过各种变速不变调处理与重采样相结合的方法[44]。如图2-4所示,变速不变调处理使语速变为原来的P/Q倍,得到输出信号y(n),然后对y(n)进行P/Q倍重采样处理,这样就得到语速正常,音调变为原来Q/P倍的最终输出语音z(n)。

    图2-4 时长规整结合重采样实现变调

    频域法中比较简单的处理就是直接对信号频谱进行插值或者抽取,实现各频率分量的扩展或者压缩。国内的研究者李力利、张晓蕊等人分别对频域的插值和抽取的方法进行了研究和扩展,这种方法的缺点在于:内插会引入不需要的频率,从而大大影响音质,变调后会有部分失真[43]。另外,比较典型的方法是利用短时傅里叶变换原理,估计出短时帧的瞬时频率,再乘以伸缩系数进行频谱伸缩[44]

    参量法中最具代表性的方法是基于正弦模型原理。正弦模型[45]是由Quatier等人在1980年提出,它是目前应用最广泛的语音模型。该模型将信号看作是一系列随时间变化的正弦信号叠加。

                      (5-1)

    其中

     

    、和分别表示第i个正弦信号的瞬时幅值、瞬时相位、瞬时频率。

    假设变速不变调系数为,规整后的时间=,则规整后的语音为:

     

    其中

     

    很显然,时间规整后瞬时频率仍然为,保证了音调不变,但是时间过程扩展为原来的倍。当>1时,对应降速,当<1时,对应加速。

    同样地,假设变调不变速系数为,则变调后的语音为:

     

    其中

     

    很显然,变调不变速处理后,各个频率成分随系数拉伸或者收缩。对应于浊音,为随时间变化的第一谐波,即基频;其他频率成分对应于其它谐波。当>1时,对应升调,当<1时,对应降调。

    由上分析可知,基于正弦模型的变调方法最大难点在于提高谐波分析的精确度,降低参数估计的复杂度[46]

  • 相关阅读:
    linux解压分卷压缩的zip文件
    centos关闭sudo的ldap认证
    IT词汇表
    IT博客汇
    os.waitpid()无法获取sys.exit()退出时的status code
    github下fork后如何同步源的新更新
    git 撤销commit
    g++编译问题:skipping incompatible /usr/lib//libboost_system.so when searching for -lboost_system
    g++动态库静态库混合链接
    thread
  • 原文地址:https://www.cnblogs.com/welen/p/3284640.html
Copyright © 2011-2022 走看看