转载自:https://www.cnblogs.com/welen/p/3782896.html

变速变调原理与方法总结

变调和变速原理

自然语音的产生可以简化为图2-1模型,激励源出来的声门波信号与声道模型进行卷积,最后通过嘴唇辐射模型产生语音。其中,激励源决定说话人的基频的大小,即音调的高低。声道模型反映“润色”的频谱信息,具体的讲,共振峰决定了语义信息,谐波分布决定了音色,单位时间的音节数决定了语速。

图2-1 语音产生模型

下面将根据语音产生模型来阐述变速变调的基本原理。

变速变调的改变可以包括变速不变调和变调不变速两个部分。

语音变速不变调是指保持音调和语义保持不变,语速变快或变慢[28]。该过程表现为语谱图在时间轴上如手风琴般压缩或者扩展。那也就是说,基频值几乎不变,对应于音调不变;整个时间过程被压缩或者扩展,声门周期的数目减小或者增加,即声道运动速率发生改变,语速也随之变化。对应于语音产生模型,激励和系统经历与原始发音情况几乎相同的状态,但持续时间相比原来或长或短[29]

严格地讲,基频和音调是两个不同的概念,基频是指声带振动的频率,音调是指人类对基频的主观感知,但是两者变化基本一致,即基频越高,音调越高,基频越低,音调越低,音调是由基频决定的[30]。因此,语音变调不变速就是指改变说话人基频的大小[44],同时保持语速和语义不变,即保持短时频谱包络(共振峰的位置和带宽)和时间过程基本不变[31]。对应于语音产生模型,变调改变了激励源;声道模型的共振峰参数几乎不变,保证了语义和语速不变。

综上所述,变速改变声道运动速率,力求保持激励源不变;变调改变激励源,力求保持声道的共振峰信息不变。但是声源和声道不是相互独立的,在改变声源时,必然也会非线性的影响声道,同样地,改变声道时也会或多或少的影响声源,两者之间相互影响,相互作用。

变调不变速方法

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

时域法中,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)。

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

参量法中最具代表性的方法是基于正弦模型原理。正弦模型[45]是由Quatier等人在1980年提出,它是目前应用最广泛的语音模型。该模型将信号看作是一系列随时间变化的正弦信号叠加。 很显然,时间规整后瞬时频率不变,保证了音调不变,但是时间过程扩展为原来的倍。很显然,变调不变速处理后,各个频率成分随系数拉伸或者收缩。对应于浊音,为随时间变化的第一谐波,即基频;其他频率成分对应于其它谐波。

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

变速不变调方法

语音变速不变调,即语音时长规整,是指不改变原说话人的音调及语义信息,只改变说话人的语速。

语音变速不变调算法有三大类:时域法、频域法、参量法,如表2-1所示。

表2-1 变速不变调算法分类

时域法

频域法

参量法

剪贴法

LSEE-MSTFTM

相位声码器

SOLA、SOLA-FS

正弦模型

TD-PSOLA

时域法包括:剪贴法、同步波形叠加法(Synchronized Overlap-Add, SOLA)、固定同步波形叠加法(Synchronized Overlap-Add and Fixed Synthesis, SOLAFS)、时域基音同步叠加法(Time-Domain Pitch Synchronized Overlap-Add, TD-PSOLA) 波形相似叠加法(waveform similarity overlap-and-add, WSOLA)等。

剪贴法[32]由Fairbanks等人在1958年提出,其基本思想是将语音划分为若干连续不重叠帧,然后重复或者丢弃其中某些语音帧,来实现语速变慢或者加快。

这种方法只是简单的重复或者丢弃语音帧,这样会造成相邻两帧之间波形不连续,基音发生断裂,因此语音质量较差。

为了减小波形不连续现象,Gabor等人改善了剪贴法,在相邻两帧部分进行平滑处理,但是基音断裂现象仍然存在。

为了在改善波形不连续的同时,减小基音断裂现象,S.Roucos等人在提出了同步波形叠加法(SOLA)[33]。该算法主要分为分解、合成两个阶段。

分解阶段完成原始语音信号的分帧任务,为了减小不连续现象,一般在分帧的同时进行加窗平滑处理,分解后的所有帧用于合成变速语音,这里假设帧长为N,分析帧移为Sa。合成阶段则可以分成两个步骤:

第一步,确定初步合成重叠距离。按照变速因子a=Ss/Sa,改变分解阶段相邻两帧的帧移距离,Ss=Sa*a,即保持分解阶段的第一帧位置不变,移动之后的各帧,使得相邻两帧的距离由为Sa变为Ss,这样便可获得初步合成帧。

第二步,确定最终合成帧的起始位置。如果将初步合成帧直接进行叠加合成,则会造成基音断裂。为了减小该现象,通过在已合成第m帧第Ss个采样点的邻域[-kmax, kmax]内移动搜索和分解阶段第m帧信号的波形相关最大的位置k(m),如式2-1,确定最终合成帧的初始位置,保证叠加部分波形相似,减小基频断裂。

(2-1)

其中,k(m) [-kmax, kmax],表示搜索偏移量,表示原始语音信号,表示合成变速后的输出语音信号,L表示分解阶段第m帧信号与已合成信号的重叠区域长度。

由于偏移量k(m)的存在,所以SOLA算法不能精确的改变语音的时间长度。

为了解决该问题,D.J.Hejna提出了固定同步波形叠加法(SOLAFS)[34],该算法与SOLA算法很相似,不同的是在合成时固定了合成步长Ss,而在分解阶段第m帧的邻域[-kmax, kmax]内移动搜索与已合成第m帧信号波形相关最大的位置k(m)。即使式2-2最大。

为了进一步达到基音同步的目的,Moulines提出了基音同步波形叠加算法(PSOLA)[35],著名的语音分析软件Praat的变速功能就是基于此原理[36]。在该算法中,变速和变调是两个独立的过程,由不同的参数控制。其主要做法是首先进行基音同步分析,标记基音周期一系列位置点,以这些标记为中心,将原始语音划分成若干合成语音单元。通过重复或者省略合成单元来实现语速时长的控制,通过改变相邻合成单元的重叠长度或者重采样结合变速来改变语音的基频。该算法主要缺点有两点,首先基音周期及其起始点的判定误差会严重影响PSOLA技术的效果,另外计算量大,很难满足实时的变速与变调处理。

同样地,为了减小基音断裂和相位不连续问题,Verhelst和Roelands 提出了波形相似叠加法(WSOLA)[37],该方法计算量低于PSOLA,同时输出的语音质量高。Grofit对该方法进行了改进,使其也适用于音乐信号的变速处理[38]

频域法中最具代表性的方法是LSEE-MSTFTM(The Least-Square Error Estimation From the Modified Short-Time Fourier Transform Magnitude)[39],该算法是基于短时傅里叶变换来实现的,利用最小均方误差原则,寻找一个时域信号的短时傅里叶变换幅度谱逼近理想变速信号的频谱。

参数法是指对语音信号建立模型,然后根据需要修改模型相关参数来达到改变音调和语速的目的。它包括相位声码器[40]和正弦模型法。相位声码器是将语音通过带通滤波器组分解成若干正弦信号,然后对正弦信号随时间变化的幅度和相位通过内插和抽取进行时域压扩,最后经过合成便完成变速不变调。正弦模型法与相位声码器方法相似,需要估算出模型的瞬时幅度、瞬时频率、瞬时相位等参量,合成效果较好,但是复杂度较高。

变速变调原理与方法总结相关推荐

  1. 音频变速变调原理及 soundtouch 代码分析

    音频变速变调原理及 soundtouch 代码分析 作者:floer rivor 2021 年 4 月 30 日 本文字数:5066 字 阅读完需:约 17 分钟 概述 音频变速变调在不同的场景可以分 ...

  2. 音频变速播放原理分析及实现方案

    [时间:2019-05] [状态:Open] [关键词:音频,audio,倍速,变速,变调,soundtouch,sonic] 音频变调变速原理分析 先来一段语音处理的理论: 变速变调可分为:变速不变 ...

  3. 【信号处理】Matlab实现语音变速变调

    1 内容介绍 一种实现声音变速变调的系统,该系统由以下4个部分组成:输入缓存模块,将待处理声音信号数据读入缓存;变调处理模块,对声音信号进行变调处理以改变声音的音调;变速不变调处理模块,对声音信号进行 ...

  4. c++程序设计原理与实践_课程思政水资源系统优化原理与方法课程思政元素的探索...

    案例说明+课程基本信息 案例说明: 水资源系统优化原理与方法的思政教育目标是要让学生建立一种科学思维方式,用辩证和历史唯物主义的观点去观察和分析问题,培养其规则意识和约束观念,以社会主义核心价值观来进 ...

  5. 中文路径_中文分词的原理、方法与工具

    海德格尔说"词语破碎处,无物可存在".中文句子不像英文那样的词与词之间有显示空格边界,使得词和词组边界模糊. 为了让计算机更容易理解文本,通常中文信息处理的第一步是中文分词.中文分 ...

  6. x12arima季节调整方法_《时间序列X-12-ARIMA季节调整:原理与方法》

    对时间序列进行季节调整是经济分析的基础性工作.人民银行组织力量对季节调整基本方法进行了研究,结合调整中国特有的移动假日--春节的需要,提出了不同的处理模型,对各国较为通用的季节调整软件X-12-ARI ...

  7. 《异构信息网络挖掘: 原理和方法(1)》一第2章 基于排名的聚类

    本节书摘来自华章出版社<异构信息网络挖掘: 原理和方法(1)>一书中的第2章,作者[美]孙艺洲(Yizhou Sun)韩家炜(Jiawei Han),更多章节内容可以访问云栖社区" ...

  8. linux怎么查看数据库性能,正确评估SQL数据库性能,你必须知道的原理和方法!...

    原标题:正确评估SQL数据库性能,你必须知道的原理和方法! 作者:阿特 来源: http://blog.csdn.net/capsicum29/article/details/71480799 数据库 ...

  9. 正确评估SQL数据库性能,你必须知道的原理和方法!

    作者简介: Max Shen(阿特),为了成为数据专家而努力,万一实现了呢! 昨天写了一篇如何监视数据库性能,了解数据库的运行状态.被有人质疑,说没有用.说要直接用数据库的profile和monito ...

最新文章

  1. 修改360浏览器 标题栏 显示的文字
  2. C语言如何使用函数交换两个变量的值
  3. Java方法中的参数太多,第7部分:可变状态
  4. react(96)--switch做判断
  5. pycharm -- 小技巧1 (显示文件的代码结构以及错误提示)
  6. Android Spinner设置默认选中的值
  7. inotify监控文件变化
  8. 各省简称 拼音 缩写_省份简称拼音
  9. php 阻止ip代码,php – 如何阻止100,000个独立的IP地址
  10. HTML实现百度换肤
  11. 使用docker下载搭建TeamCity容器并使用
  12. Java根据纯真IP库获取具体的地址信息
  13. 我的第一堂职业素质课
  14. java正则校验密码 长度不少于8位且至少包含大写字母、小写字母、数字和特殊符号中的四种组合 或者 其中任意三种组合
  15. 手机端html5网页音乐播放,js实现移动端H5页面音乐播放,兼容微信 safari浏览器...
  16. res.send和res.sendFile
  17. poj 2456 Aggressive cows 【二分+最大化最小值】
  18. 图卷积神经网络GCN中的关键公式推导---干货
  19. Matlab 颜色、线型、标记符号和希腊字母表
  20. 【店小蜜】基础介绍-全自动模式

热门文章

  1. FOTA升级apply_patch解析
  2. 单片机与gsm通信c语言,实现51单片机与GSM模块通信介绍
  3. MacBook Pro 耗电严重的终极解决办法2022年
  4. 推荐几个黑白照片上色软件给大家
  5. C++ -- 基于多态的后宫管理系统(其实就是职工管理或者图书管理系统根据我自己的需求改编,毕竟追我的人太多了,要好好管理一下)
  6. 计算机个人swot分析报告,个人swot分析报告.doc
  7. window php 本地播放视频遇到的问题
  8. 自学python:完整入门python书单!(大福利))
  9. SMTP协议解读以及如何使用SMTP协议发送电子邮件
  10. 微信砍价活动的软件以及一篇微信砍价策划方案详解