发明名称 一种基于听觉感知特性的数字语音实时分解/合成方法
摘要 本发明公开了一种基于听觉感知特性的数字语音实时分解/合成方法,涉及语音信号处理领域。本方法包括用N级级联的二阶带通滤波器构成一个N阶的伽马通滤波器再构建任意阶的伽马通数字滤波器模型及其参数,语音分解阶段用M路伽马通滤波器采用浮点算法或定点算法将输入语音分解为M路信号;语音合成阶段在伽马通滤波器组中引入延时,以更加符合人耳特性,人耳基底膜延时与频率成反比关,最后进行语音合成操作。本发明参考了人耳的等响度曲线特性,改进了语音分解合成方法,使得最终语音合成效果接近了理想带通滤波器的效果。本发明可应用在手机、人工耳蜗、助听器等语音设备中。
申请公布号 CN106601249A 申请公布日期 2017.04.26
申请号 CN201611026399.6 申请日期 2016.11.18
申请人 清华大学 发明人 李冬梅;杨有为;贾瑞;刘润生
分类号 G10L15/24(2013.01)I;G10L21/0208(2013.01)I;G10L21/0224(2013.01)I;G10L13/00(2006.01)I 主分类号 G10L15/24(2013.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 廖元秋
主权项 一种基于听觉感知特性的数字语音实时分解/合成方法,其特征在于,该方法具体步骤如下:1)构建任意阶的伽马通数字滤波器模型:假设滤波器组数目为M,该M组滤波器对应着人耳基底膜上的M个位置,并在人耳基底膜上是均匀分布的,在频域上是对数分布的;具体包括:1.1)已知输入语音的采样率为f<sub>s</sub>;设通过滤波器的语音频率范围为[f<sub>L</sub>,f<sub>H</sub>],0≤f<sub>L</sub><f<sub>H</sub>≤f<sub>s</sub>/2;1.2)根据表达式(1‑2):<img file="FDA0001156792210000011.GIF" wi="606" he="94" />得出中心频率f<sub>c</sub>在ERBs域上的值分布为[ERBs(f<sub>L</sub>),ERBs(f<sub>H</sub>)],将其均分成M-1份得到等间距的M个ERBs值如式(1)所示:<maths num="0001"><math><![CDATA[<mrow><msub><mi>ERBs</mi><mi>m</mi></msub><mo>=</mo><mi>E</mi><mi>R</mi><mi>B</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>L</mi></msub><mo>)</mo></mrow><mo>+</mo><mrow><mo>(</mo><mi>m</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mfrac><mrow><mi>E</mi><mi>R</mi><mi>B</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>H</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>E</mi><mi>R</mi><mi>B</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>L</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>M</mi><mo>-</mo><mn>1</mn></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000012.GIF" wi="1262" he="96" /></maths>其中,m∈[1,M],代表通道号;1.3)根据式(1)的计算结果得到M组滤波器的中心频率f<sub>c</sub>在ERBs域上的值如式(2)所示:<maths num="0002"><math><![CDATA[<mrow><msub><mi>f</mi><mi>c</mi></msub><mrow><mo>(</mo><msub><mi>FRBs</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1000</mn><mn>4.37</mn></mfrac><mo>&times;</mo><mrow><mo>(</mo><msup><mn>10</mn><mfrac><mrow><msub><mi>ERBs</mi><mi>m</mi></msub></mrow><mn>21.4</mn></mfrac></msup><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000013.GIF" wi="1117" he="110" /></maths>1.4)针对b(f<sub>c</sub>)与ERB(f<sub>c</sub>)的关系:基于b=ERB(f<sub>c</sub>),根据帕塞瓦尔(Paseval)定理,得出N阶伽马通滤波器中滤波器的中心频率f<sub>c</sub>的带宽函数b(f<sub>c</sub>)表达式如式(2a)所示:<maths num="0003"><math><![CDATA[<mrow><mi>b</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mo>(</mo><mi>N</mi><mo>-</mo><mn>1</mn><mo>)</mo><msup><mo>!</mo><mn>2</mn></msup></mrow><mrow><mi>&pi;</mi><mrow><mo>(</mo><mn>2</mn><mi>N</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow><mo>!</mo><msup><mn>2</mn><mrow><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>N</mi><mo>-</mo><mn>2</mn><mo>)</mo></mrow></mrow></msup></mrow></mfrac><mi>E</mi><mi>R</mi><mi>B</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>a</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000014.GIF" wi="1125" he="109" /></maths>其中,b代表函数的带宽,N为任意正整数;1.5)用N级级联的二阶带通滤波器构成一个N阶的伽马通滤波器;对每个伽马通滤波器的时域表达式(1‑3):<img file="FDA0001156792210000015.GIF" wi="890" he="71" />进行Laplace变换得到s域表达式如式(2b)所示:<img file="FDA0001156792210000016.GIF" wi="1134" he="126" />将式(2b)分解成零极点相乘得到如表达式(2c)所示:<maths num="0004"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Pi;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>g</mi><mi>n</mi></msub><msub><mi>H</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>s</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Pi;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>g</mi><mi>n</mi></msub><mfrac><mrow><mi>s</mi><mo>-</mo><msub><mi>s</mi><mi>n</mi></msub></mrow><mrow><msup><mrow><mo>(</mo><mi>s</mi><mo>+</mo><msub><mi>B</mi><mi>c</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msubsup><mi>w</mi><mi>c</mi><mn>2</mn></msubsup></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>c</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000017.GIF" wi="1379" he="95" /></maths>使用冲激响应不变法得到N阶伽马通数字滤波器的z域表达式(2d):<maths num="0005"><math><![CDATA[<mrow><mi>G</mi><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Pi;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>g</mi><mi>n</mi></msub><msub><mi>H</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Pi;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><msub><mi>g</mi><mi>n</mi></msub><mfrac><mrow><msub><mi>a</mi><mi>n</mi></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow><mrow><msub><mi>b</mi><mn>2</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>2</mn></mrow></msup><mo>+</mo><msub><mi>b</mi><mn>1</mn></msub><msup><mi>z</mi><mrow><mo>-</mo><mn>1</mn></mrow></msup><mo>+</mo><mn>1</mn></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>d</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000021.GIF" wi="1374" he="110" /></maths>其中n=1,2,…,N,s<sub>n</sub>为表达式分子的零点,a<sub>n</sub>、b<sub>1</sub>、b<sub>2</sub>的含义分别为各级滤波器的抽头系数;a<sub>n</sub>的表达式如(1‑10)所示:<img file="FDA0001156792210000022.GIF" wi="910" he="102" />b<sub>1</sub>、b<sub>2</sub>的表达式如(1‑11)所示:<img file="FDA0001156792210000023.GIF" wi="775" he="71" />1.6)计算归一化参数g<sub>n</sub>:伽马通滤波器各级的二阶滤波器的最大增益如式(2e)所示:<maths num="0006"><math><![CDATA[<mrow><mtable><mtr><mtd><mrow><msub><mi>Gain</mi><mi>n</mi></msub><mo>=</mo><msqrt><mrow><msub><mi>H</mi><mi>n</mi></msub><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>&times;</mo><msubsup><mi>H</mi><mi>n</mi><mo>*</mo></msubsup><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow></mrow></msqrt><msub><mo>|</mo><mrow><mi>z</mi><mo>=</mo><msup><mi>e</mi><mrow><mo>-</mo><msub><mi>jw</mi><mi>c</mi></msub><mi>T</mi></mrow></msup></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>=</mo><msqrt><mfrac><mrow><msubsup><mi>b</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>b</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><mn>2</mn><msub><mi>b</mi><mn>2</mn></msub><mi>cos</mi><mrow><mo>(</mo><mn>2</mn><msub><mi>w</mi><mi>c</mi></msub><mi>T</mi><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mrow><mo>(</mo><msub><mi>b</mi><mn>2</mn></msub><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>b</mi><mn>1</mn></msub><mi>cos</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>c</mi></msub><mi>T</mi><mo>)</mo></mrow></mrow><mrow><msubsup><mi>a</mi><mi>n</mi><mn>2</mn></msubsup><mo>+</mo><mn>1</mn><mo>+</mo><mn>2</mn><msub><mi>a</mi><mi>n</mi></msub><mi>cos</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>n</mi></msub><mi>T</mi><mo>)</mo></mrow></mrow></mfrac></msqrt></mrow></mtd></mtr></mtable><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>e</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000024.GIF" wi="1318" he="247" /></maths>归一化参数g<sub>n</sub>如式(2f)所示:<maths num="0007"><math><![CDATA[<mrow><msub><mi>g</mi><mi>n</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><msub><mi>Gain</mi><mi>n</mi></msub></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mi>f</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000025.GIF" wi="872" he="102" /></maths>1.7)根据步骤1.5)中得到的N级级联的二阶带通滤波器来构成任意阶的伽马通数字滤波器模型,并获取模型的各参数值:用m表示第m组伽马通滤波器组,则由表达式(1‑10)、(1‑11)、(2e)和(2f)分别得出各个滤波器组的参数<img file="FDA0001156792210000026.GIF" wi="389" he="62" />的值,其中<img file="FDA0001156792210000027.GIF" wi="282" he="65" />是各个通道的滤波器抽头系数,<img file="FDA0001156792210000028.GIF" wi="72" he="66" />为各个通道的归一化系数,如式(3)‑式(6)所示:<maths num="0008"><math><![CDATA[<mrow><msubsup><mi>a</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><msub><mi>a</mi><mi>n</mi></msub><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>(</mo><mrow><msub><mi>ERBs</mi><mi>m</mi></msub></mrow><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000029.GIF" wi="1037" he="77" /></maths><maths num="0009"><math><![CDATA[<mrow><msubsup><mi>b</mi><mn>1</mn><mi>m</mi></msubsup><mo>=</mo><msub><mi>b</mi><mn>1</mn></msub><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>(</mo><mrow><msub><mi>ERBs</mi><mi>m</mi></msub></mrow><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00011567922100000210.GIF" wi="1028" he="77" /></maths><maths num="0010"><math><![CDATA[<mrow><msubsup><mi>b</mi><mn>2</mn><mi>m</mi></msubsup><mo>=</mo><msub><mi>b</mi><mn>2</mn></msub><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>(</mo><mrow><msub><mi>ERBs</mi><mi>m</mi></msub></mrow><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>5</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00011567922100000211.GIF" wi="1030" he="75" /></maths><maths num="0011"><math><![CDATA[<mrow><msubsup><mi>g</mi><mi>n</mi><mi>m</mi></msubsup><mo>=</mo><msub><mi>g</mi><mi>n</mi></msub><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>(</mo><mrow><msub><mi>ERBs</mi><mi>m</mi></msub></mrow><mo>)</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA00011567922100000212.GIF" wi="1038" he="78" /></maths>2)语音分解阶段;利用步骤1)构建的伽马通数字滤波器模型,模仿人耳基底膜对语音进行分解:将输入语音实时地分解到M个子带上,使用M路伽马通滤波器采用浮点算法或定点算法将输入语音分解为M路信号;3)语音合成阶段;在伽马通滤波器组中引入延时,以更加符合人耳特性,人耳基底膜延时与频率成反比关系,伽马通滤波器的群延时用表达式(16)来描述:<maths num="0012"><math><![CDATA[<mrow><msub><mi>t</mi><mi>m</mi></msub><mo>=</mo><mfrac><mrow><mi>N</mi><mo>-</mo><mn>1</mn></mrow><mrow><mn>2</mn><mi>&pi;</mi><mi>b</mi><mrow><mo>(</mo><msub><mi>f</mi><mi>c</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>16</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000031.GIF" wi="1022" he="103" /></maths>式中,m通道群延时t<sub>m</sub>的单位是秒,第m组滤波器的中心频率f<sub>c</sub>的单位是Hz;具体步骤包括:3.1)计算各通道延时:语音的采样率为f<sub>s</sub>,则采样后的各个通道的延时d<sub>m</sub>用如表达式(17)、(18)来进行计算:d<sub>m</sub>=D‑[f<sub>s</sub>t<sub>m</sub>]  (17)<maths num="0013"><math><![CDATA[<mrow><mi>D</mi><mo>=</mo><munder><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow><mrow><mn>1</mn><mo>&le;</mo><mi>m</mi><mo>&le;</mo><mi>M</mi></mrow></munder><mo>&lsqb;</mo><msub><mi>f</mi><mi>s</mi></msub><msub><mi>t</mi><mi>m</mi></msub><mo>&rsqb;</mo><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>18</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000032.GIF" wi="1006" he="87" /></maths>其中D为[f<sub>s</sub>t<sub>m</sub>]中的最大值;3.2)对各个通道在总滤波器中所占比重进行加权,则合成语音用表达式(8)来计算;设m通道的权重为w<sub>m</sub>,该权重合并到g<sub>N</sub>中,调增后的g<sub>N</sub>用如下表达式计算:<maths num="0014"><math><![CDATA[<mrow><msub><mi>g</mi><mi>N</mi></msub><mo>=</mo><msub><mi>w</mi><mi>m</mi></msub><mo>/</mo><msub><mi>Gain</mi><mi>N</mi></msub><mo>=</mo><msub><mi>w</mi><mi>m</mi></msub><msqrt><mfrac><mrow><msubsup><mi>a</mi><mi>N</mi><mn>2</mn></msubsup><mo>+</mo><mn>1</mn><mo>+</mo><mn>2</mn><msub><mi>a</mi><mi>N</mi></msub><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>c</mi></msub><mi>T</mi><mo>)</mo></mrow></mrow><mrow><msubsup><mi>b</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>b</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><mn>2</mn><msub><mi>b</mi><mn>2</mn></msub><mi>cos</mi><mrow><mo>(</mo><mn>2</mn><msub><mi>w</mi><mi>c</mi></msub><mi>T</mi><mo>)</mo></mrow><mo>+</mo><mn>2</mn><mrow><mo>(</mo><msub><mi>b</mi><mn>2</mn></msub><mo>+</mo><mn>1</mn><mo>)</mo></mrow><msub><mi>b</mi><mn>1</mn></msub><mi>c</mi><mi>o</mi><mi>s</mi><mrow><mo>(</mo><msub><mi>w</mi><mi>c</mi></msub><mi>T</mi><mo>)</mo></mrow></mrow></mfrac></msqrt><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>19</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000033.GIF" wi="1477" he="126" /></maths>此时,最终合成语音输出如式(20)所示:<maths num="0015"><math><![CDATA[<mrow><mover><mi>x</mi><mo>&OverBar;</mo></mover><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>=</mo><msubsup><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></msubsup><msup><mi>y</mi><mi>m</mi></msup><mrow><mo>(</mo><mi>k</mi><mo>-</mo><msub><mi>d</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>20</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001156792210000034.GIF" wi="1158" he="69" /></maths>其中,当k≤d<sub>m</sub>时y<sup>m</sup>(k‑d<sub>m</sub>)=0;语音实时分解、合成任务完成。
地址 100084 北京市海淀区清华园1号
您可能感兴趣的专利