一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时钟不同步的补偿方法、装置、存储介质以及电子设备与流程

2022-04-24 23:34:03 来源:中国专利 TAG:


1.本技术实施例涉及计算机领域,特别是涉及一种时钟不同步的补偿方法、装置、存储介质以及电子设备。


背景技术:

2.在中大型会议室中,音视频会议系统通常有两个自带本地时钟的电子设备,采集声音的麦克风和播放对方声音的扬声器。在温度变化及理化环境不同等因素的影响下,两个设备的时钟会累积产生一定的时钟偏移。若时钟漂移过高,会导致随着时间的累计,麦克风采集的声音和扬声器播放的声音之间的延时差会逐渐增加,从而影响回声消除的效果。因此,在远程会议中,音频会议系统需建立良好的信号检测与补偿机制来消除扬声器与麦克风之间的时钟不同步带来的影响。
3.在相关技术中,时钟补偿是在微控制器上建立实用的时钟机制来获得足够的精度,如soc(系统级芯片)通过实时计算温度并向时钟误差校准寄存器写入温度补偿值;但是,这类方法依赖于精密的温敏电阻等传感器反馈,并且要对封装好的黑盒节点硬件驱动进行修改,操作复杂,特别对二次开发不友好。在另外一个相关的技术中,通过线性插值、丢弃样点等方式对语音信号采样样点进行周期处理,但该类方法失真严重。


技术实现要素:

4.为克服相关技术中存在的问题,本技术提供一种时钟不同步的补偿方法、装置、存储以及电子设备,其时钟不同步补偿失真小,可提高不同步时钟补偿的实时性和可靠性,降低数据丢失的概率。
5.根据本技术实施例的第一方面,提供一种时钟不同步的补偿方法,包括如下步骤:获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧。
6.根据本技术实施例的第二方面,提供一种钟不同步的补偿装置,包括:插值数据获取模块,用于获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;
插值区间数据获取模块,用于根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;目标插值样点获取模块,用于根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;样条值获取模块,用于根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;补偿信号获取模块,用于根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧。
7.根据本技术实施例的第三方面,提供一种电子设备,包括处理器和存储器;所述存储器存储有计算机程序,所述计算机程序适于由所述处理器加载并执行如上述所述的时钟不同步的补偿方法。
8.根据本技术实施例的第四方面,提供一种计算机可读存储介质,其上储存有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上述所述的时钟不同步的补偿方法。
9.本技术实施例通过获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧,进而可对扬声器中的所有音频信号帧进行补偿,得到补偿后的扬声器的远端音频信号,从而再对补偿后的扬声器的远端音频信号和麦克风的近端音频信号进行回声消除。
10.本技术基于麦克风与扬声器之间的时钟偏移值,将从扬声器的播放数据缓存中取出的一帧音频信号通过样条插值方法进行不同步时钟补偿,相比于线性插值和丢弃样点的方式,可降低补偿后的音频信号失真,提高不同步时钟补偿的实时性和可靠性,降低数据丢失的概率。进一步地,相比于通过微控制建立使用的时钟机制的方式,本技术实施例通过时钟偏移值来动态获取目标插值样点,可以提高时钟不同步补偿的灵活性。
11.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。
12.为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
13.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1为本技术一个实施例示出的时钟不同步的补偿方法的应用环境示意图;
图2为本技术一个实施例示出的时钟不同步的补偿方法的流程图;图3为本技术一个实施例示出的获取样条多项式的方法的流程图;图4为本技术一个实施例示出的获取插值区间以及对应的节点数据的方法的流程图;图5为本技术一个实施例示出的获取目标插值样点的方法的流程图;图6为本技术一个实施例示出的时钟不同步的补偿装置的示意框图;图7为本技术一个实施例示出的电子设备的结构示意图。
具体实施方式
15.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施例方式作 进一步地详细描述。
16.应当明确,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术实施例保护的范围。
17.下面的描述涉及附图时,除非另有表示,各个附图中的相同数字表示相同或相似的要素。 在本技术的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本技术中的具体含义。在本技术和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。在此所使用的词语
ꢀ“
如果”/“若
”ꢀ
可以被解释成为
ꢀ“

……

”ꢀ

ꢀ“

……

”ꢀ

ꢀ“
响应于确定”。
18.此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a 和/或 b,可以表示:单独存在 a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
19.本技术实施例的时钟不同步的补偿方法可应用于音频通信,例如音频会议场景,请参阅图1,图1为本技术一个实施例示出的时钟不同步的补偿方法的应用环境示意图。
20.本技术实施例的时钟不同步的补偿方法的应用环境包括音频会议系统,所述音频会议系统包括音频会议硬件系统和音频会议软件系统。音频会议硬件系统可以包括麦克风1000、扬声器2000和会议终端(图中未示)。音频会议硬件系统也可以包括会议终端,麦克风1000和扬声器2000可以外置于会议终端,也可以集成在会议终端内。音频会议软件系统可以为会议终端上集成的软件系统。
21.音频会议软件系统包括如下流程:从会议近端涉及到的两种音频流(麦克风1000采集的近端音频信号mic及系统回采扬声器2000播放的参考原始信号,即远端参考信号ref)的输入,经过信号延时估计计算出延时值,基于估计出来的延时值进行近、远端信号时间戳进行对齐处理,然后进行回声消除。
22.需要说明的是,在音频会议硬件系统中近端存在多个单麦克风1000节点和扬声器2000,各麦克风1000节点处于会议室中不同位置(任意间距),当近端会议室中不同位置的讲话人讲话时,此时各麦克风1000节点采集当前讲话人及周边说话人的音频信号,音频会
议软件系统会选择其中一个讲话人作为主讲人,并将主讲人的音频信号输出至远端。
23.系统软件中回采的扬声器2000播放的远端音频信号为参考信号ref,又称远端参考信号。麦克风1000采集到的近端音频信号称为mic,mic包含近端人说话的语音信号、近端房间的环境噪声以及扬声器2000播放的回声信号echo。ref与mic自然存在一种时间先后关系,扬声器2000先播放,麦克风1000才采集到扬声器2000播放的回声信号。那么,称在时间上先后发生的信号排序为因果关系(即远端参考信号早于近端音频信号)。这种时间上的先后是根据远端信号与近端信号上的时间戳来确定的,时间戳是指音频经过dac或adc转换时的绝对时间点。如远端参考信号的时间戳为经过dac转换时的绝对时间点。近端音频信号的时间戳为经过adc转换时的绝对时间点。因此,在进行回声消除时,需要对近、远端信号时间戳进行对齐处理,在本技术实施例中,通过对远端信号来进行补偿来实现近、远端信号的对齐。
24.下面具体介绍音频会议系统对近、远端信号的处理过程:本技术实施例的时钟不同步的补偿方法的应用环境还包括模数转换模块3000、声卡数据缓存模块4000、数模转换模块5000、播放数据缓存模块6000、时钟不同步检测模块7000和时钟不同步补偿模块8000。模数转换模块3000、声卡数据缓存模块4000、数模转换模块5000、播放数据缓存模块6000、时钟不同步检测模块7000和时钟不同步补偿模块8000可以外置于会议终端或者集成有在会议终端内。
25.其中,麦克风1000和扬声器2000位于语音通信的同一端,例如位于音频会议系统的近端;对应地,发送音频信号到扬声器2000的一端为语音通信的另一端,例如位于音频会议系统的远端;其中,需要说明的是近端和远端只是根据用户角度区分的方位,以方便清楚介绍本技术的方案,可选的,近端和远端可以根据用户的不同进行转换,从而使得近端变成远端,远端变成近端。在本技术实施例中,发送音频信号到扬声器2000时,系统回采的扬声器2000播放的远端音频信号为远端参考信号。麦克风1000采集到的近端音频信号包含近端人说话的语音信号、近端房间的环境噪声以及扬声器2000播放的回声信号。
26.远端传输过来的数字音频信号spk(n),也即远端参考信号,通过网络传输到近端时,需要通过播放数据缓存模块6000进行缓存,再从播放数据缓存模块6000取出数字音频信号spk(n)输入至数模转换模块5000转换成模拟音频信号spk(t),最后,通过模拟音频信号spk(t)去驱动近端的扬声器2000播放。对应地,麦克风1000采集近端用户发出的语言信号以及扬声器2000播出的语音信号而获得模拟音频信号mic(t),也即近端音频信号,需要通过模数转换模块5000后转换成数字音频信号mic(n),再将数字模拟信号mic(n)通过声卡数据缓存模块4000缓存后在远端播出。其中,由于实现数据的实时处理,同时,为了兼顾计算机软件系统各线程之间的调度和计算量,需要在采集与播放期间分别通过声卡播放数据缓存模块4000和播放数据缓存模块6000进行信号缓存,以实现实时可靠不丢失信号的语音通信。
27.为了实现时钟不同步检测,通过时钟不同步检测模块7000获取麦克风1000传输的数字音频信号mic(n)与发送到扬声器2000的数字音频信号spk(n)进行分析,且通过麦克风1000传输的数字音频信号mic(n)与发送到扬声器2000的数字音频信号spk(n)之间的相关性,获得基于不同时钟工作的麦克风与扬声器之间的时钟漂移值ppm。为实现时钟不同步补偿,还需要过时钟不同步补偿模块8000对发送到扬声器2000的数字音频信号spk(n)进行时
钟不同步的补偿。
28.其中,时钟不同步补偿模块8000可以通过软件和/或硬件的方式实现,时钟不同步补偿模块8000可以是两个或多个物理实体构成,也可以是一个物理实体构成。从硬件层面而言,时钟不同步补偿模块8000指向的硬件,本质上是具备个人计算机等效能力的计算机设备,其具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置;其中,计算机程序存储于存储器中,中央处理器调用存储在存储器的计算机程序进行运行,执行计算机程序中的指令,且与输入输出设备交互,借此完成特定的功能。其中,时钟不同步补偿模块8000可以与数模转换模块5000、声卡数据缓存模块4000、模数转换模块3000、播放数据缓存模块6000和/或时钟不同步检测模块7000形成一个硬件整体,时钟不同步补偿模块8000也可以独立于上述模块,以执行本技术实施例的时钟不同步的补偿方法。具体的,时钟不同步补偿模块8000所在的设备可以具体为计算机、手机、平板电脑以及交互平板等。
29.实施例1下面将结合附图2至图5,对本技术实施例提供的时钟不同步的补偿方法进行详细介绍。
30.请参阅图2,其为本技术一个实施例示出的时钟不同步的补偿方法的流程图;本技术实施例提供的时钟不同步的补偿方法,包括如下步骤:步骤s101:获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值。
31.样条插值是一种以可变样条来作出一条经过一系列点的光滑曲线的方法;插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定,任意的两个相邻的多项式以及它们的导数在连接点处都是连续的。
32.样条插值函数是进行样条插值的方法。样条插值函数可以包括二次样条插值函数、三次样条插值函数、四次样条插值函数等,本技术实施例以三次样条插值函数为例,说明本技术的方案。
33.为更好的理解本技术的技术方案,下面具体介绍一下三次样条插值的相关技术。
34.(1)三次样条插值的定义:三次样条插值(cubic spline interpolation)简称spline插值,是通过一系列形值点的一条光滑曲线,通过求解三弯矩方程组得出曲线函数组的过程。
35.设,三次样条函数,三次样条函数,且在每个上为三次多项式,其中是给定节点,则是节点x0, x1,... xn上的三次样条函数。若在节点中,则为在节点上的三次样条插值函数。
36.三次样条插值函数是分段三次多项式,在每个小区间上都可以写成:(公式1)
公式1中都为未知参数,则n个三次多项式则有4n个待定参数。因在上二阶导数连续,故在内节点处应满足连续性条件:(公式2)公式2表明函数,一阶导数和二阶导数三者在区间都是连续的,即三次样条插值函数对应的曲线是光滑的。由此,便有个已知条件。再加上已存在的个插值节点,共有个条件。因此还需要2个条件才能确定。为此,在区间端点和上各引入一个边界条件来求解三次样条插值函数。
37.(2)三个边界条件:本技术实施例的边界条件包括自然边界(边界点的二阶导为0),固定边界(边界点导数给定),周期边界(使两端点的三阶导与这两端点的邻近点的三阶导相等),下面具体介绍这三个边界条件。
38.(2.1)自由边界已知两端的二阶导数值,则可得到:(公式3)其中,为自由边界。
39.(2.2)固定边界已知两端的一阶导数值,则可得到:(公式4)(2.3)周期边界已知到两端点的三阶导与这两端点的邻近点的三阶导相等,则可得到:(公式5)由上可知:三次样条插值问题的解存在唯一性。
40.(3)求解三次样条插值函数在求解三次样条插值函数时,本发明方案用二阶导数来求解。
41.由于在每个区间上为三次多项式,则在上是一次多项式,可表示为:(公式6)对积分两次得:(公式7)
利用插值条件定出积分常数,可以得到:(公式8)其中,;公式8便是三次样条插值函数的表达式。
42.(4)求解为了求,需要利用在内节点处一阶导数连续的条件,由公式8可得公式9:(公式9)由公式9继续可得:由公式9继续可得:由在内节点处一阶导数连续,即:在内节点处一阶导数连续,即:(公式10)由公式10可立方程组:(公式11)其中,这里有n 1个未知数,n-1个方程,还需要2个方程。
43.对于自由边界条件公式3有:可得的n 1元线性方程组:
(公式12)公式12矩阵为对角三角矩阵,故有唯一解。
44.对于固定边界条件公式4和公式10,从而有,类推有:(公式12.1)到此即解出的n 1元线性方程组解。
45.(5)求解将第

步中计算的代入公式8中,可得到:(公式13)将公式13求解的4个未知数参数代入公式14中即可求出在每个区间上的三次样条插值函数,具体如下:(公式14)本技术则是根据三次样条插值函数来实现对时钟不同步的补偿。
46.扬声器播放远端传输过来的音频信号之前,会通过播放数据缓存模块对远端音频信号进行缓存,为此,可以从播放数据缓存模块缓存的远端音频信号中取出一帧音频信号spk(n),作为音频信号帧。该音频信号帧spk(n)包括framelen个音频信号样点以及对应的音频信号样点值,其中,framelen为一帧音频信号中采样点的个数,根据扬声器设置的播放音质不同,采样点的个数也不同,但是,在设置的播放音质确定的情况下,采样点的个数为恒定值。具体的,若将音频信号在xy直角坐标进行表示,则音频信号样点对应x坐标的时间;音频信号样点值对应y坐标的音频幅度大小。
47.步骤s102:根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条
插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式。
48.在本技术实施例中,可将相邻的音频信号样点以及对应的音频信号样点值进行组合,获得若干个插值区间、每个插值区间上的节点以及对应的节点值,进而将每个插值区间上的节点以及对应的节点值对应作为每个插值区间上的三次样条曲线的控制节点,获得每个插值区间的三次样条二阶导数,从而得到每个插值区间对应的三次样条多项式。
49.在一个实施例中,可以根据麦克风与扬声器之间的时钟偏移值以及样条多项式,确定所述音频信号帧经过样条插值的向量,将样条插值的向量作为补偿后的扬声器的远端音频信号,从而对补偿后的扬声器的远端音频信号和麦克风的近端音频信号进行回声消除。一种可选实施例中,可以通过s103-s104获得每个插值区间在对应的目标插值样点上的样条值,这种方案通过时钟偏移值来动态获取目标插值样点,可以提高时钟不同步补偿的灵活性和准确性。
50.步骤s103:根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点。
51.时钟偏移值可以根据现有的任何一种时钟偏移值计算方式获得,例如可以通过估计中心频率偏移获得,也可以根据麦克风传输的数字模拟信号mic(n)与发送到扬声器的音频信号spk(n)之间的相关性获得,本技术不加以限制。
52.具体的,可以根据时钟偏移值,获得目标插值样点的间隔步长,进而根据音频信号帧的长度,在每个插值区间内按照所述间隔步长,获得目标插值样点,进而再获得对应的目标插值样点上的样条值,从而可以根据时钟偏移值进行插值,可提高插值的灵活性和准确性。
53.步骤s104:根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值。
54.在本技术实施例中,将每个插值区间的目标插值样点代入对应的所述每个插值区间对应的三次样条多项式,可获得每个插值区间在对应的目标插值样点上的三次样条值。
55.步骤s105:根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧。
56.本技术实施例通过获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧,进而可对扬声器中的所有音频信号帧进行补偿,得到补偿后的扬声器的远端音频信号,从而再对补偿后的扬声器的远端音频信号和麦克风的近端音频信号进行回声消除。
57.本技术基于麦克风与扬声器之间的时钟偏移值,将从扬声器的播放数据缓存中取出的一帧音频信号通过样条插值方法进行不同步时钟补偿,相比于线性插值和丢弃样点的方式,可降低补偿后的音频信号失真,提高不同步时钟补偿的实时性和可靠性,降低数据丢
失的概率。进一步地,相比于通过微控制建立使用的时钟机制的方式,本技术实施例通过时钟偏移值来动态获取目标插值样点,可以提高时钟不同步补偿的灵活性。
58.请参阅图3,其为本技术一个实施例示出的获取三次样条多项式的方法的流程图。在一个实施例中,所述样条插值函数包括样条二阶导数函数以及样条多项式函数;步骤s102中根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式的步骤,包括步骤s1021-s1023:步骤s1021:根据所述若干个音频信号样点以及对应的音频信号样点值,获得若干个插值区间、每个插值区间上的节点以及对应的节点值。
59.请参阅图4,其为本技术一个实施例示出的获取插值区间以及对应的节点数据的方法的流程图;步骤s1021中所述根据所述若干个音频信号样点以及对应的音频信号样点值,获得若干个插值区间、每个插值区间上的节点以及对应的节点值的步骤,包括步骤s10211-s10213:步骤s10211:将若干个所述音频信号样点值依序存储在数组中,且按照所述音频信号样点值存储在所述数组的顺序依序设定所述音频信号样点值的序号以及对应的音频信号样点的序号。
60.步骤s10212:按照从小到大的序号顺序,依次取相邻序号的音频信号样点作为起止点,获得若干个插值区间。
61.步骤s10213:在每个插值区间中,将序号最小的音频信号样点以及对应的音频信号样点值分别作为对应的插值区间上的节点以及对应的节点值。
62.具体的,将若干个所述音频信号样点值依序存储在数组后,且按照所述音频信号样点值存储在所述数组的顺序依序设定所述音频信号样点值的序号为y0、y1、

yi…yn
,对应的音频信号样点的序号x0、x1、

xi…
xn,则按照从小大到大的序号顺序,依次取相邻序号的音频信号样点作为起止点,获得若干个插值区间[x0,x1]、[x1,x2]、

[x
i-1
,xi]

[x
n-1
,xn];在每个插值区间中,将序号最小的音频信号样点以及对应的音频信号样点值分别作为对应的插值区间上的节点以及对应的节点值,也即将(x0,y0)、(x1,y1)、

(xi,yi)

(x
n-1
,y
n-1
)分别作为 [x0,x1]、[x1,x2]、

[x
i-1
,xi]

[x
n-1
,xn]的节点以及对应的节点值。
[0063]
步骤s1022:将所述每个插值区间上的节点以及对应的节点值输入至所述样条二阶导数函数,获得每个插值区间的样条二阶导数。
[0064]
可选的,所述样条二阶导数函数为三次样条二阶导数函数,三次样条二阶导数函数可以表示为:;将每个插值区间上的节点xi、对应的节点值yi代入上述三次样条的二阶导数函数可以解出的值,也即,获得每个插值区间的三次样条二阶导数。
[0065]
步骤s1023:将所述每个插值区间上的节点、对应的节点值以及所述每个插值区间的样条二阶导数输入至所述样条多项式函数,获得每个插值区间对应的样条多项式。
[0066]
可选的,所述样条多项式函数为三次样条多项式函数,三次样条多项式函数可以表示为:
;其中,。
[0067]
将每个插值区间上的节点xi、对应的节点值yi所述每个插值区间的三次样条二阶导数mi输入到所述三次样条多项式函数,可以得到如下结果:;化简可得到每个插值区间对应的三次样条多项式如下:。
[0068]
请参阅图5,其为本技术一个实施例示出的获取目标插值样点的方法的流程图。在一个实施例中,步骤s103中所述根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点的步骤,包括步骤s1031-s1032,具体如下:步骤s1031:根据麦克风与扬声器之间的时钟偏移值以及预设的转换系数,获得目标插值样点的间隔步长。
[0069]
具体的,通过以下方式获得插值区间的间隔步长:;其中,skew为目标插值样点的间隔步长,ppm为时钟偏移值,1000000为预设的转换系数。
[0070]
步骤s1032:根据所述目标插值样点的间隔步长、所述音频信号帧的长度以及所述音频信号帧填充的节点长度,获得每个插值区间的目标插值样点。
[0071]
所述音频信号的边界填充的音频信号样点的长度为在音频信号的起始端的边界或者终止端的边界填充的音频信号样点,目的是在需要在起始或者终止之外插值数据,通过填充的音频信号样点作为参考,以提高插值的精度。一般地,会在音频信号的起始端的边界以及终止端的边界填充相等数量音频信号样点,且该音频信号样点对应的音频信号样点值均相等。
[0072]
可选的,通过以下方式获得若干个插值区间的目标插值样点:可选的,通过以下方式获得若干个插值区间的目标插值样点:;其中,;其中,skew为目标插值样点的间隔步长, padding为在所述音频信号的边界填充的音频信号样点的长度,insamplelenght为音频信号帧的长度,
,且随着skew步长迭代一次,增加1。
[0073]
进而可以将获得的x0’
、x1’…ꢀ
xi’ꢀ…
x
n’作为插值区间[x0,x1]、[x1,x2]、

[x
i-1
,xi]

[x
n-1
,xn]的目标插值样点。
[0074]
进一步地,将x0’
、x1’…ꢀ
x
i’、

x
n’作为x代入如下每个插值区间的三次多项式,可以得到每个插值区间在对应的目标插值样点上的三次样条值。
[0075]

[0076]
本技术实施例根据麦克风与扬声器之间的时钟偏移值以及预设的转换系数,获得目标插值样点的间隔步长;根据所述目标插值样点的间隔步长、所述音频信号帧的长度以及所述音频信号填充的节点长度,获得若干个插值区间的目标插值样点,可以使目标插值样点的间隔步长可以根据时钟偏移值进行灵活调整,而且目标插值样点的间隔步长还可以随着所述音频信号填充的节点长度进行调节,从而调整补偿精度,从而适用于不同需求。
[0077]
在一个实施例中,步骤s105中所述根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧的步骤之后,还包括如下步骤:步骤s106:根据补偿后的音频信号帧的长度以及历史缓存的补偿后的音频信号帧的长度,输出整帧补偿后的音频信号。
[0078]
本技术实施例根据补偿后的音频信号帧的长度以及历史缓存的补偿后的音频信号帧的长度,从而获得整帧补偿后的音频信号,进而确保输出整帧补偿后的音频信号。
[0079]
在一个实施例中,步骤s106中所述根据补偿后的音频信号帧的长度以及历史缓存的补偿后的音频信号帧的长度,输出整帧补偿后的音频信号的步骤,包括步骤s1061-s1062:步骤s1061:将补偿后的音频信号帧与历史缓存的补偿后的音频信号帧进行拼接,获得拼接后的音频信号。
[0080]
步骤s1062:根据拼接后的音频信号的长度和一帧信号帧的长度,从拼接后的音频信号中输出整帧信号长度的音频信号,将剩余的不满整帧长度的音频信号进行缓存,以与下一补偿后的音频信号帧拼接输出。
[0081]
具体的,通过以下方式获得拼接后的音频信号的长度:sumoutsamplelen = outsamplelen outsamplehistorylen;其中,sumoutsamplelen为拼接后的音频信号的长度;outsamplelen为补偿后的音频信号帧;outsamplehistorylen为历史缓存的补偿后的音频信号帧。
[0082]
具体的,通过以下方式获得整帧信号长度的音频信号:batch = sumoutsamplelen / framelenbatch为输出的整帧信号的数量;framelen为一帧信号的长度。
[0083]
在一个实施例中,所述根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧的步骤之后,还包括如下步骤:步骤s107:将所述播放数据缓存中剩余的音频信号移到所述播放数据缓存的前面,以与输入到所述播放数据缓存的下一帧音频信号帧拼接进行时钟不同步补偿处理。
[0084]
可以理解的是,为了提高精度,在音频信号的起始端的边界以及终止端的边界填充相等数量音频信号样点padding,因此,当从播放数据缓存取出一帧音频信号帧进行不同步时钟补偿处理并输出处理后的音频信号帧后,在播放数据缓存中将还留有两倍的
padding长度的数据,因此,需要将播放数据缓存中剩余缓存的数据移到前面,以与输入到所述播放数据缓存的下一帧音频信号帧合并进行时钟不同步补偿处理。
[0085]
实施例2下述为本技术装置实施例,可以用于执行本技术实施例1中方法的内容。对于本技术装置实施例中未披露的细节,请参照本技术实施例1中方法的内容。
[0086]
请参阅图6,其为本技术一个实施例示出的时钟不同步的补偿装置的示意框图;本技术实施例公开的一种时钟不同步的补偿装置200,包括:插值数据获取模块201,用于获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;插值区间数据获取模块202,用于根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;目标插值样点获取模块203,用于根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;样条值获取模块204,用于根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;补偿信号获取模块205,用于根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧。
[0087]
本技术实施例通过获取音频信号帧以及样条插值函数;所述音频信号帧为从扬声器的播放数据缓存中取出的一帧音频信号;所述音频信号包括若干个音频信号样点以及对应的音频信号样点值;根据所述若干个音频信号样点、对应的音频信号样点值以及所述样条插值函数,获得若干个插值区间以及每个插值区间对应的样条多项式;根据麦克风与扬声器之间的时钟偏移值以及所述音频信号帧的长度,获得每个插值区间的目标插值样点;根据每个插值区间对应的所述样条多项式以及每个插值区间的所述目标插值样点,获得每个插值区间在对应的目标插值样点上的样条值;根据所述目标插值样点以及对应的所述样条值,获得补偿后的音频信号帧,进而可对扬声器中的所有音频信号帧进行补偿,得到补偿后的扬声器的远端音频信号,从而再对补偿后的扬声器的远端音频信号和麦克风的近端音频信号进行回声消除。
[0088]
本技术基于麦克风与扬声器之间的时钟偏移值,将从扬声器的播放数据缓存中取出的一帧音频信号通过样条插值方法进行不同步时钟补偿,相比于线性插值和丢弃样点的方式,可降低补偿后的音频信号失真,提高不同步时钟补偿的实时性和可靠性,降低数据丢失的概率。进一步地,相比于通过微控制建立使用的时钟机制的方式,本技术实施例通过时钟偏移值来动态获取目标插值样点,可以提高时钟不同步补偿的灵活性。
[0089]
在一个实施例中,所述样条插值函数包括样条二阶导数函数以及样条多项式函数;所述插值区间数据获取模块202包括:插值区间以及节点数据确定模块,用于根据所述若干个音频信号样点以及对应的音频信号样点值,获得若干个插值区间、每个插值区间上的节点以及对应的节点值。
[0090]
样条二阶导数获取模块,用于将所述每个插值区间上的节点以及对应的节点值输
入至所述样条二阶导数函数,获得每个插值区间的样条二阶导数。
[0091]
样条多项式获取模块,用于将所述每个插值区间上的节点、对应的节点值以及所述每个插值区间的样条二阶导数输入至所述样条多项式函数,获得每个插值区间对应的样条多项式。
[0092]
在一个实施例中,插值区间以及节点数据确定模块,包括:序号确定模块,用于将若干个所述音频信号样点值依序存储在数组中,且按照所述音频信号样点值存储在所述数组的顺序依序设定所述音频信号样点值的序号以及对应的音频信号样点的序号。
[0093]
插值区间获取模块,用于按照从小到大的序号顺序,依次取相邻序号的音频信号样点作为起止点,获得若干个插值区间。
[0094]
节点数据获取模块,用于在每个插值区间中,将序号最小的音频信号样点以及对应的音频信号样点值分别作为对应的插值区间上的节点以及对应的节点值。
[0095]
在一个实施例中,目标插值样点获取模块203包括:间隔步长获取模块,用于根据麦克风与扬声器之间的时钟偏移值以及预设的转换系数,获得目标插值样点的间隔步长。
[0096]
目标插值样点确定模块,用于根据所述目标插值样点的间隔步长以及在所述音频信号的边界填充的音频信号样点的长度,获得若干个插值区间的目标插值样点。
[0097]
在一个实施例中,所述不同步时钟补偿的装置200还包括:数据输出模块,用于根据补偿后的音频信号帧的长度以及历史缓存的补偿后的音频信号帧的长度,输出整帧补偿后的音频信号。
[0098]
在一个实施例中,所述数据输出模块包括:数据拼接模块,用于将补偿后的音频信号帧与历史缓存的补偿后的音频信号帧进行拼接,获得拼接后的音频信号。
[0099]
输出与缓存模块,用于根据拼接后的音频信号的长度和一帧信号帧的长度,从拼接后的音频信号中输出整帧信号长度的音频信号,将剩余的不满整帧长度的音频信号进行缓存,以与下一补偿后的音频信号帧拼接输出。
[0100]
在一个实施例中,所述不同步时钟补偿的装置200还包括:数据移动模块,用于将所述播放数据缓存中剩余的音频信号移到所述播放数据缓存的前面,以与输入到所述播放数据缓存的下一帧音频信号帧拼接进行时钟不同步补偿处理。
[0101]
实施例3下述为本技术设备实施例,可以用于执行本技术实施例1中方法的内容。对于本技术设备实施例中未披露的细节,请参照本技术实施例1中方法的内容。
[0102]
请参阅图7,其为本技术一个实施例示出的电子设备的结构示意图。本技术实施例还提供一种电子设备300,所述电子设备300可以具体为计算机、手机、平板电脑、交互平板等,在本技术的示例性实施例中,所述电子设备300为mos管通态损耗获取设备,所述电子设备300可以包括:至少一个处理器310、至少一个存储器320,至少一个显示器330,至少一个网络接口340,用户接口350以及至少一个通信总线360。
[0103]
其中,所述用户接口350主要用于为用户提供输入的接口,获取用户输入的数据。
可选的,所述用户接口350还可以包括标准的有线接口、无线接口。
[0104]
其中,所述网络接口340可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。
[0105]
其中,所述通信总线360用于实现这些组件之间的连接通信。
[0106]
其中,所述处理器310可以包括一个或者多个处理核心。处理器310利用各种接口和线路连接整个电子设备300内的各个部分,通过运行或执行存储在存储器320内的指令、程序、代码集或指令集,以及调用存储在存储器320内的数据,执行电子设备300的各种功能和处理数据。可选的,处理器310可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器310可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示层所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器310中,单独通过一块芯片进行实现。
[0107]
其中,存储器320可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。可选的,该存储器320包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器320可用于存储指令、程序、代码、代码集或指令集。存储器320可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器320可选的还可以是至少一个位于远离前述处理器310的存储装置。如图7所示,作为一种计算机存储介质的存储器320中可以包括操作系统、网络通信模块、用户。
[0108]
所述处理器310可以用于调用所述存储器320中存储的时钟不同步补偿的方法的应用程序,并具体执行上述所示实施例1的方法步骤,具体执行过程可以参见实施例1所示的具体说明,在此不进行赘述。
[0109]
实施例4本技术还提供一种计算机可读存储介质,其上储存有计算机程序,所述指令适于由处理器加载并执行上述所示实施例1的方法步骤,具体执行过程可以参见实施例所示的具体说明,在此不进行赘述。所述存储介质所在设备可以是个人计算机、笔记本电脑、智能手机、平板电脑等电子设备。
[0110]
对于设备实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0111]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序
产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0112]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能。
[0113]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中选定的功能的步骤。
[0114]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0115]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0116]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0117]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0118]
以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献