1.本发明属于语音处理领域,涉及一种语音采样率转换方法。
背景技术:
2.人的语音的有效频率在20khz以下,保留8khz的语音信号就可以保证语音可懂度。为了节省传输带宽或存储容量,实际使用的语音采样率有16khz、44.1kh、48khz等。在使用不同采样率时,系统间传输语音需要进行采样率转换。采样率转换常用的转换方法有整数倍的升采样与整数倍降采样。如44.1khz进行160倍升采样后进行147倍降采样可以实现到48khz 的采样率变换。
3.在同源时钟系统中,由于采样率转换的输入时钟与输出时钟没有频偏,可以用以上方法进行高精度的信号采样。但是在不同源时钟的系统,比如信号发送端与信号接收端使用同频率的不同个体的时钟晶振,或者信号发送端与信号接收端使用不同频率的不同个体的时钟晶振时,由于晶振个体差异,晶振工作温度与工作电压差异,导致信号发送端与信号接收端的时钟频率出现1%以内的频率偏差。如果信号发送端时钟频率高于信号接收端的时钟频率,必然导致语音数据过多,信号接收端将定期丢弃语音数据,导致语音信号质量下降。如果信号发送端时钟频率低于信号接收端的时钟频率,必然导致语音数据过少,信号接收端将定期重复语音数据,也会导致语音信号质量下降。
4.常用的电子系统中24mhz或27mhz的晶振的频率不是44.1khz或48khz的整倍数或简单分数倍,(如44.1khz的612.5倍频率是27.01125mhz,不等于27mhz),无法实现精准的采样率转换。由于音频采样率的特殊性,为了提高语音质量,通常需要增加使用特殊频率的晶振或需要使用高成本的小数分频的pll实现高精度的时钟变换。这样就提高了电子系统的复杂度与成本。
技术实现要素:
5.本发明的目的就是针对现有使用通用24mhz或27mhz晶振的电子系统的特点,提供一种高质量的音频采样率转换方法。
6.本发明方法包括写过程和读过程。
7.写过程具体是:采样率转换前语音信号利用信号发送端的语音信号频率f1整数倍或分数倍的信号发送端时钟,通过多个串接的整数倍升采样滤波器和整数倍降采样滤波器进行升采样,所述的采样率转换前语音信号的频率f1为44.1hz或48hz的整数倍或分数倍,整数倍即乘以正整数的值,分数倍即除以正整数的值;升采样后的语音信号频率f2与目标语音信号频率f3的误差将升采样后的语音信号以频率f2写入先进先出数据缓存器fifo。 fifo具有读指针和写指针,本发明方法在此基础上,增加设置上警戒指针和下警戒指针,每写入1个语音数据,写指针、上警戒指针和下警戒指针的地址值均加1。系统复位时,上警戒指针落后写指针n个地址,读指针落后上警戒指针m个地址,下警戒指针落
后读指针k个地址,n,m,k∈[1,5]。
[0008]
读过程具体是:信号接收端利用信号接收端时钟,以目标语音信号频率f3从fifo中读取语音数据。
[0009]
如f3>f2,当读指针地址值等于上警戒指针地址值时,随机数发生器生成一个随机自然数在后续的s1+1个读操作中,前s1个读操作,每读出1个语音数据,fifo的读指针地址值加1,第s1+1个读操作时,fifo的读指针地址值不变。
[0010]
如f3<f2,当读指针地址值等于下警戒指针地址值时,随机数发生器生成一个随机自然数s2∈[1,500],在后续的s2+1个读操作中,前s2个读操作,每读出1个语音数据,fifo的读指针地址值加1,第s2+1个读操作时,fifo的读指针地址值加2。
[0011]
当读指针地址值小于上警戒指针地址值,且大于下警戒指针地址值时,每读出1个语音数据,fifo的读指针地址值加1。
[0012]
系统的采样率转换点发生在24mhz或27mhz的高速时钟上,由fifo的读指针地址值加2引起的跳点或fifo的读指针地址值不变引起的重复点产生的信号误差远小于在44.1khz或 48khz的低速采样率上进行语音信号跳点或重复点产生的信号误差。采用本发明方法,由于增加了随机数的延时,实现采样率转换时不会产生周期性的跳点和重复点操作,就不会产生由于周期性的跳点和重复点操作引起的谐波,提高了接收语音信号质量。语音接收系统由于不需要输入采样率整数倍或简单分数倍的精准时钟,即不需要增加使用特殊频率的晶振或使用高成本的小数分频的pll实现高精度的时钟变换,节约了电子系统的成本。
具体实施方式
[0013]
下面结合实施例对本发明进行进一步描述。以下实施例仅为本发明的具体实施例,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于本发明的保护范围。
[0014]
以下以输入为44.1khz的语音信号,接收系统晶振为27mhz及目标语音频率为27mhz的情况,及输入为44.1khz的语音信号,接收系统晶振为24mhz及目标语音频率为24mhz的情况说明语音采样率转换方法。
[0015]
输入为44.1khz的语音信号,接收系统晶振为27mhz及目标语音频率为27mhz的情况:
[0016]
使用1个升2倍滤波器,2个升5倍滤波器,2个升7倍滤波器,2个降2倍滤波器串联,可以将输入的44.1khz的语音信号升采样到27.01125mhz。因此fifo以27.01125mhz的速度写入升采样后的语音数据。接收系统以目标语音频率27mhz的时钟读出语音数据。由于写fifo 速度高于读fifo速度,下警戒指针将慢慢追上读指针。当读指针等于下警戒指针时,读指针移动控制模块采样一个随机数s,并在延时s个时钟后将读指针加1,从而跳过1个语音数据。随后读指针大于下警戒指针,进行正常读写,直到下一次下警戒指针将追上读指针。这样实现27.01125mhz向27mhz的采样率转换。
[0017]
输入为44.1khz的语音信号,接收系统晶振为24mhz及目标语音频率为24mhz的情况:
[0018]
使用2个升2倍滤波器,3个升3倍滤波器,1个升5倍滤波器串联,可以将输入的44.1khz 的语音信号升采样到23.814mhz。因此fifo以23.814mhz的速度写入升采样后的语音数据。接收系统以目标语音频率24mhz的时钟读出语音数据。由于写fifo速度低于读fifo速度,读指针将慢慢追上警戒指针。当读指针等于上警戒指针时,读指针移动控制模块采样一个随机数s,并在延时s个时钟后将读指针停止1次加1操作,令读出语音数据重复1次。随后读指针小于下警戒指针,进行正常读写,直到下一次读指针等于上警戒指针。这样实现23.814mhz向24mhz 的采样率转换。
技术特征:
1.语音采样率转换方法,包括写过程和读过程,其特征在于,所述的写过程具体是:采样率转换前语音信号利用信号发送端的语音信号频率f1整数倍或分数倍的信号发送端时钟,通过多个串接的整数倍升采样滤波器和整数倍降采样滤波器进行升采样;升采样后的语音信号频率f2与目标语音信号频率f3的误差将升采样后的语音信号以频率f2写入先进先出数据缓存器fifo;所述的先进先出数据缓存器fifo具有读指针、写指针、上警戒指针和下警戒指针,每写入1个语音数据,写指针、上警戒指针和下警戒指针的地址值均加1;系统复位时,上警戒指针落后写指针n个地址,读指针落后上警戒指针m个地址,下警戒指针落后读指针k个地址;所述的读过程具体是:信号接收端利用信号接收端时钟,以目标语音信号频率f3从fifo中读取语音数据;如f3>f2,当读指针地址值等于上警戒指针地址值时,随机数发生器生成一个随机自然数在后续的s1+1个读操作中,前s1个读操作,每读出1个语音数据,fifo的读指针地址值加1,第s1+1个读操作时,fifo的读指针地址值不变;如f3<f2,当读指针地址值等于下警戒指针地址值时,随机数发生器生成一个随机自然数s2∈[1,500],在后续的s2+1个读操作中,前s2个读操作,每读出1个语音数据,fifo的读指针地址值加1,第s2+1个读操作时,fifo的读指针地址值加2;当读指针地址值小于上警戒指针地址值,且大于下警戒指针地址值时,每读出1个语音数据,fifo的读指针地址值加1。2.如权利要求1所述的语音采样率转换方法,其特征在于:所述的采样率转换前语音信号的频率f1为44.1hz或48hz的整数倍或分数倍。3.如权利要求1所述的语音采样率转换方法,其特征在于:所述的先进先出数据缓存器fifo中各指针地址间距n,m,k∈[1,5]。
技术总结
本发明公开了一种语音采样率转换方法。本发明方法包括写过程和读过程。写过程是将转换前语音信号进行升采样后写入FIFO,升采样后的语音信号频率F2与目标语音信号频率F3的误差小于等于0.01,FIFO具有顺序设置的写指针、上警戒指针、读指针、下警戒指针。读过程是信号接收端以频率F3从FIFO中读取语音数据。如F3>F2,当读指针与上警戒指针地址值相等,随机生成一个随机数S1,第S1+1个读操作时,FIFO的读指针地址值不变。如F3<F2,当读指针与上警戒指针地址值相等,随机生成一个随机数S2,第S2+1个读操作时,FIFO的读指针地址值加2。本发明方法采样率转换时不会产生周期性的跳点和重复点操作,提高了接收语音信号质量,同时节约了电子系统的成本。子系统的成本。
技术研发人员:梁骏 叶丰 卢娜 邱宇琦
受保护的技术使用者:杭州国芯科技股份有限公司
技术研发日:2021.12.09
技术公布日:2022/3/8