语音变速的方法

文档序号:2829743阅读:551来源:国知局
专利名称:语音变速的方法
技术领域
本发明是一种语音变速的方法,别是一种基于语音信号的基本周期的语 音变速的方法。
背景技术
具备语言学习功能的电子设备,可以将所欲学习的语言会话预先录制在 该设备中,而该电子设备可为便携式,让使用者可以随时随地进行语言的学 习。然而,每一位使用者的程度并不相同,造成一段播放速度相同的会话, 有些使用者听起来会觉得阅读速度适当而可以听懂,但却有些使用者会觉得 阅读速度过快而听不懂。因此变速播放的功能成为语言学习机所具备的功能 之一。
所谓变速播放指的是语言学习机在语音播放时,可以依使用者的需求而 变更播放的速度,而且当速度变更时音调却不变。因此理想上,不论变速播 放是变慢或变快,使用者在聆听上都可以听得清楚,而这一项功能对于语言 学习有很大的帮助。
传统语言学习机虽然具有变速播放的功能,但往往经过变速播放后其所 播放出来的语音便会失真。由于语音信号是连续性的模拟信号,随着不同人 的发声或不同的音源所产生的声纹频率并不相同。 一般公知的语音变速的技 术的做法是将取样而得的语音数据重复播放,或以间隔的方式跳跃播放,而 达到播放速度的变更。这样的做法虽然可以达到播放速度变慢或变快,且与 原语音的信号包格线相同,但是会造成回音与机械音。同时造成声纹频率降 低,效果就如同将录音机马达转速变慢或变快一样,使得语音明显失真。
因此,如何让使用者在语言学习机上操作变速播放的功能时,语音变速 后能维持原音的音调而不失真,为一亟待解决的问题。

发明内容
有鉴于此本发明提出一种语音变速的方法,针对语音信号进行处理,让 使用者按照自己的需求加速或减速语音的播放,而语音经过变速后输出到使 用者的耳朵, 一样能清楚而不失原音调的语音。
本发明所提出的一种语音变速的方法,包含下列步骤接收一原始语音 信号;计算出该原始语音信号的一基本周期;依据该基本周期定义一搜寻范 围;在该原始语音信号的每个该搜寻范围内寻找一最大值;依据该最大值将 该原始语音信号划分为多个语音区段;依据一变速指令对该原始语音信号的 每个该语音区段进行一变速运算,而取得一变速语音信号;及输出该变速语 音信号。
如本发明所述的语音变速的方法,其中该基本周期系利用一总和振幅 差异函数计算出。
如本发明所述的语音变速的方法,其中该基本周期系利用一平均振幅 差异函数计算出。
如本发明所述的语音变速的方法,其中该变速指令为减速时,该变速 运算复制部分该语音区段,使该变速语音信号长于该原始语音信号。
如本发明所述的语音变速的方法,其中该变速指令为加速时,该变速 运算删除部分该语音区段,使该变速语音信号短于该原始语音信号。
如本发明所述的语音变速的方法,其中该变速运算包含下列步骤将 该原始语音信号的每个该语音区段乘以一比重函数,成为一比重区段;及叠 加该比重区段。
如本发明所述的语音变速的方法,其中该变速运算更包含下列步骤 插入叠加后的该比重区段在该语音区段之间。
如本发明所述的语音变速的方法,其中该变速运算更包含下列步骤 以叠加后的该比重区段取代该语音区段。
如本发明所述的语音变速的方法,其中该比重函数在每一该搜寻范围 内,在该最大值之前为递增函数,在该最大值之后为递减函数。
如本发明所述的语音变速的方法,其中该比重函数为三角波函数。
如本发明所述的语音变速的方法,其中该语音区段大小不同时,该语 音区段的重叠部分乘以该比重函数,未重叠部分不需乘以该比重函数。、
本发明一开始先将原始语音信号区分为多个语音区段。所分割的区段并 不是如传统技术一般为固定的,而是根据总和振幅差异函数(Sum of Magnitude Difference Function, SMDF)或平均振幅差异函数(Average of Magnitude Difference Function, AMDF),先取得原始语音信号的基本周期 (pitch period),再根据基本周期左右附近的数据去寻找最大值。接着利用 寻找出的最大值将原始语音信号划分为多个语音区段。上述作法的好处是, 将语音信号以最细小的基本周期单位进行后续的变速处理。因此,本发明采 用更精确的方法来改良相关的语音变速质量。


图1是语音变速的方法的流程图。 图2是语音信号的基本周期。
图3是利用总和振幅差异函数(SMDF)计算出基本周期的示意图。
图4是原始语音信号的语音区段划分图。
图5是变速指令为减速时的变速运算示意图。
图6是变速指令为加速时的变速运算示意图。
图7是变速运算的细部流程图。
图8是变速运算叠加后的插入语音区段示意图。
图9是变速运算叠加后的取代语音区段示意图。
图IO是语音区段大小不同的叠加示意图。
其中附图标记说明如下
步骤S10:接收原始语音信号。
步骤S20:计算出原始语音信号的基本周期。
步骤S30:依据基本周期定义搜寻范围。
步骤S40:在原始语音信号的每个搜寻范围内寻找最大值。
步骤S50:依据最大值将原始语音信号划分为多个语音区段。
步骤S60:依据变速指令对原始语音信号的每一语音区段进行变速运算,
而取得变速语音信号。
步骤S62:将原始语音信号的每一语音区段乘以比重函数,成为比重区段。
步骤S64:叠加比重区段。
步骤S70:输出变速语音信号。 具体实旌方式
以下参照附图,解释有关本发明的较佳实施例及其功效。 请参照图1语音变速的方法的流程图,包含下列步骤
步骤S10:接收原始语音信号。原始语音信号为语言朗读,例如英语、 日语会话等。
步骤S20:计算出原始语音信号的基本周期(pitch period)。人声的音 高范围大约在50Hz至1000Hz之间。而朗读同样内容的一段会话,每个人所 念出来的语音都会有所不同,这就是每个人的音色不同。音色的不同代表基 本周期的波形不同,所以每个不同的语音信号都有其不同的基本周期。由于 音色是每个人所特有的,同一个人所发出的语音信号即使语音的内容不同, 其基本周期大致上会差不多。
请参照图2语音信号的基本周期。由图2所示, 一段语音信号即使有高 低起伏的变化,但是找到基本周期后,就可以清楚发现语音信号即是由多段 的基本周期所组成。所以进行语音变速处理的一开始,先找出语音信号的基 础组成单位"基本周期",可以更精确的提升语音变速的质量。
请参照图3利用总和振幅差异函数(SMDF)计算出基本周期的示意图。 将原始语音信号位移,和原本的原始语音信号的重叠部分进行点对点的相 减、取绝对值及相加,重复n次后会得到n个点积值,这就是所谓的总和振 幅差异函数(Sum ofMagnitude Difference Function, SMDF)。
另外,上述的SMDF计算方式,由于重叠的波形越来越短,因此SMDF 的曲线会越来越小。为了避免此种情况,我们可以求取归一化SMDF,也就 是将重叠部分的点积再除以重叠的点数,这就是传统的平均振幅差异函数 (Average of Magnitude Difference Function, AMDF)。所以,禾拥SMDF 或AMDF都可以计算出原始语音信号的基本周期。
步骤S30:依据步骤S20所计算出的基本周期,定义搜寻范围。虽然一 段原始的语音信号是由多段的基本周期所组成。但由于语音内容的不同(语 言朗读内容的不同),产生高低音的差别,所以每段基本周期的周期^:小会 有些微的差异。因此,计算出基本周期后,在该基本周期左右附近定i一个
搜寻范围。以方便接下来要进行的搜寻动作。
步骤S40:在原始语音信号的每一搜寻范围内寻找最大值。以步骤S30 所定义出的搜寻范围为单位,搜寻原始语音信号。在原始语音信号的每一搜 寻范围内,将所找到的最大值记录下来。
步骤S50:依据最大值将原始语音信号划分为多个语音区段。请参照图
4原始语音信号的语音区段划分图。如图4所示,利用步骤S40所搜寻到的 最大值,将原始语音信号划分为多个区域,而每个区域即是本发明所称的语 音区段。
步骤S60:依据变速指令对原始语音信号的每一语音区段进行变速运算, 而取得变速语音信号。变速指令由使用者所下达,当使用者觉得语音信号的 播放速度太快时,可以下达减速的变量指令。当变速指令为减速时,变速运 算复制部分语音区段,使变速语音信号长于原始语音信号。请参照图5变速 指令为减速时的变速运算示意图。假设原始语音信号划分为6个语音区段, 当使用者下达减速2倍的变速指令时,变速运算将每段语音区段都复制一次, 取得的变速语音信号为12个语音区段。如此,变速语音信号长于原始语音 信号的2倍,所以达到播放的速度减速2倍。
相对的,当变速指令为加速时,变速运算删除部分语音区段,使变速语 音信号短于原始语音信号。请参照图6变速指令为加速时的变速运算示意图。 同样假设原始语音信号划分为6个语音区段,当使用者下达加速2倍的变速 指令时,变速运算删除掉偶数段语音区段,取得的变速语音信号为3个语音 区段。如此,变速语音信号只有原始语音信号的一半,所以达到播放的速度 加速2倍。
步骤S70:最后输出变速语音信号,即完成整个语音变速的流程。
请参照图7变速运算的细部流程图。上述步骤S60的变速运算,简单的 利用复制与删除部分语音区段来达到语音信号的减速与加速。但为了改善不 连续音或回音的产生,因此步骤S60的变速运算,包含下列步骤
步骤S62:将原始语音信号的每一语音区段乘以比重函数,成为比重区 段。其中,比重函数在每一搜寻范围内,在最大值之前为递增函数,在最大 值之后为递减函数。所以,比重函数可以为三角波函数。 -
步骤S64:叠加比重区段。由于每一个语音区段都乘以一个比重函数,
成为比重区段,之后再依照变速指令叠加这些比重区段。如此,可以让变速 后的变速语音信号与原始语音信号一样清楚而不失真,也不会有不连续音与 回音的现象产生。
上述釆用叠加的变速运算方式更包含下列步骤插入叠加后的比重区段 在该语音区段之间。请参照图8变速运算叠加后的插入语音区段示意图。假 设变速指令为减速2倍,先将每一语音区段乘以比重函数成为比重区段,如 图8所示比重函数为三角波函数。将比重区段1与比重区段2进行叠加,然 后插入区1与区2之间。此时,如果原始语音信号区分为1、 2...n的语音区 段,经过叠加插入后的变速语音信号变为1、 1+2、 2、 2+3、 3…n。
相对的,叠加的变速运算方式包含另一个步骤以叠加后的比重区段取 代该语音区段。请参照图9变速运算叠加后的取代语音区段示意图。假设变 速指令为加速2倍,先将每一语音区段乘以比重函数成为比重区段,同样的 比重函数为三角波函数。再将比重区段两两叠加后,取代叠加前的语音区段。 例如,叠加后的比重区段1与比重区段2 (区1+2),取代语音区段1与语 音区段2 (区1、区2)。
最后,请参照图10语音区段大小不同的叠加示意图。语音区段大小不 相同乘以比重函数,而比重函数为三角波函数在进行叠加时,会有两种状况
产生。状况一区1比区2大;状况二区2比区1大。不论是状况一或是
状况二,语音区段大小不同要进行叠加时,只要语音区段的重叠部分乘以比 重函数,未重叠部分不需乘以比重函数。如此,可确保叠加时,重叠的部分
区1 (区2)的最大值可以对到区2 (区1)的最小值,或区1 (区2)的最 小值可以对到区2 (区1)的最大值。这样的作法可以使变速运算经由叠加 后的变速语音信号,能让使用者听起来与原始语音信号一样平顺。
虽然本发明的技术内容已经以较佳实施例揭露如上,然其并非用以限定 本发明,任何本领域技术人员,在不脱离本发明的精神所作些许的更动与润 饰,皆应涵盖在本发明的范畴内,因此本发明的保护范围当视后附的权利要 求所界定者为准。
权利要求
1.一种语音变速的方法,包含下列步骤接收一原始语音信号;计算出该原始语音信号的一基本周期;依据该基本周期定义一搜寻范围;在该原始语音信号的每个该搜寻范围内寻找一最大值;依据该最大值将该原始语音信号划分为多个语音区段;依据一变速指令对该原始语音信号的每个该语音区段进行一变速运算,而取得一变速语音信号;及输出该变速语音信号。
2. 如权利要求1的语音变速的方法,其中该基本周期系利用一总和 振幅差异函数计算出。
3. 如权利要求1的语音变速的方法,其中该基本周期系利用一平均 振幅差异函数计算出。
4. 如权利要求1的语音变速的方法,其中该变速指令为减速时,该 变速运算复制部分该语音区段,使该变速语音信号长于该原始语音信号。
5. 如权利要求1的语音变速的方法,其中该变速指令为加速时,该 变速运算删除部分该语音区段,使该变速语音信号短于该原始语音信号。
6. 如权利要求1的语音变速的方法,其中该变速运算包含下列步骤 将该原始语音信号的每个该语音区段乘以一比重函数,成为一比重区段;及叠加该比重区段。
7. 如权利要求6的语音变速的方法,其中该变速运算更包含下列步 插入叠加后的该比重区段在该语音区段之间。
8. 如权利要求6的语音变速的方法,其中该变速运算更包含下列步 以叠加后的该比重区段取代该语音区段。
9. 如权利要求6的语音变速的方法,其中该比重函数在每一该搜寻 范围内,在该最大值之前为递增函数,在该最大值之后为递减函数。
10. 如权利要求9的语音变速的方法,其中该比重函数为三角波函数。
11. 如权利要求10的语音变速的方法,其中该语音区段大小不同时, 该语音区段的重叠部分乘以该比重函数,未重叠部分不需乘以该比重函数。
全文摘要
一种语音变速的方法包含下列步骤接收原始语音信号;计算出该原始语音信号的基本周期;依据该基本周期定义搜寻范围;在该原始语音信号的每个该搜寻范围内寻找最大值;依据该最大值将该原始语音信号划分为多个语音区段;依据变速指令对该原始语音信号的每个该语音区段进行变速运算,而取得变速语音信号;及输出该变速语音信号。上述方法的好处是,将语音信号以最细小的基本周期单位进行后续的变速处理。
文档编号G10L21/00GK101202048SQ20061016467
公开日2008年6月18日 申请日期2006年12月15日 优先权日2006年12月15日
发明者颜睿余, 颜铭祥, 高光前 申请人:微星科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1