首页 / 传感器数据预测

传感器数据预测实质审查 发明

技术领域

[0003] 本公开涉及一种音频处理方法。

相关背景技术

[0004] 当使用无线耳机技术时,声音通常,例如使用蓝牙技术,从包括处理器的设备如智能手机或计算机流式传输。现代无线耳机包括不同类型的例如可用于监控用户的头部运动的传感器。为了使从设备流出的声音适应头部的位置和角度,耳机中的传感器将数据发送到设备,该设备用于调整发送到耳机的声音。

具体实施方式

[0017] 下面公开了一种音频处理方法。该方法通过示例示出了由包含惯性测量单元(IMU)的头戴式收听设备(例如耳机(headphone)或耳塞(earbud))实现,然而在本说明书所附权利要求的范围内,其它实施例是可能的。
[0018] 作为音频处理方法的使用场景示例,设备(例如智能手机或计算机)向佩戴头戴式收听设备的用户流式传输虚拟声景。虚拟声景旨在提供相对于用户的一致3D声景。流设备从头戴式收听设备的IMU接收运动数据,以确定用户头部相对于虚拟3D声景的方位(orientation),并相应地调整流。
[0019] 将运动数据从头戴式收听设备发送到流设备并将虚拟声景从流设备流式传输到头戴式收听设备需要时间,这会将传输延迟引入虚拟声景对用户头部的方位的适应。为此,所公开的音频处理方法能够预测用户头部的运动以例如预测未来角旋转,从而补偿延迟。
[0020] 图1示出了预测算法的主要布局,并因此表示音频处理方法的实施例。在该图中,原始运动数据在沿图顶部的过程中被滤波,并在沿图底部的过程中被处理以预测用户头部的未来运动。在该图中,六自由度(6‑DoF)IMU传感器(包括加速器和陀螺仪)将创建原始数据作为算法的输入。换言之,头戴式收听设备的一个或多个传感器(例如加速器或陀螺仪)输出表示用户头部运动的运动数据。该运动数据例如可以是6‑DoF(来自加速器的Ax,Ay,Az和来自陀螺仪的Gx,Gy,Gz)中的加速器原始数据和/或陀螺仪原始数据。
[0021] 该运动数据由一个或多个处理器接收,这些处理器可以包括在收听设备或如智能手机或计算机等的另一设备中。下采样后,原始数据将被馈入互补滤波器,以在四元数域中融合。换句话说,滤波器可用于将6‑DoF原始运动数据转换为四元数域(w,x,y,z)。所融合的数据将成为预测四元数的基础。换句话说,该转换后的原始运动数据Q被用于创建所预测的未来头部位置,并验证和/或纠正陀螺仪漂移,该陀螺仪漂移可能会影响沿图底部的过程中对未来头部运动的预测。
[0022] 在沿图底部的过程中,陀螺仪原始数据被用于通过计算头部的角速度来预测未来头部运动。该预测周期以传感器数据周期的十倍以上为目标。对于典型的头戴式收听设备中包括的典型的IMU,传感器数据速率约为100Hz。目标预测周期约为100毫秒。
[0023] 头部3D旋转通常是非固定的,这意味着统计函数的特性可能会随时间而变化。然而,在当前场景中,与IMU传感器数据更新速率相比,头部旋转移动相对较慢(头部的典型的角速度小于0.5度/毫秒,这比100Hz传感器数据速率慢)。因此,头部3D旋转可以在大约100毫秒的预测周期内建模为线性系统。
[0024] 首先,陀螺仪数据应从主体框架转换为全局框架。角速度将在此模块中计算。然后FIFO缓冲区将保存合理长度的历史四元数数据并计算其相应的角速度,进一步基于速度通过微分过程以计算角加速度。换句话说,根据本领域已知的方法,来自陀螺仪的原始运动数据被转换到四元数域。来自陀螺仪的原始运动数据可以是例如欧拉角域或笛卡尔域中头部的(或类似地,头戴式收听设备的)角速度。头部角速度(或类似地,头戴式收听设备的角速度)是使用来自陀螺仪的转换后的原始运动数据(即通过使用变换后的运动数据)计算的。计算出的四元数域角速度被存储在先进先出(FIFO)缓冲存储器中。四元数域中的角速度Qω可以通过以下公式计算:
[0025]
[0026] 其中Qt‑1是先前的旋转估计值,并且其中初始值可以设置为Q0=(1,0,0,0)。换句话说,Qt‑1是先前计算的角速度,即Qω是基于先前的角速度和原始数据计算的,可以存储在缓冲存储器中。
[0027] Gω=(0,Gx,Gy,Gz)是陀螺仪原始数据,即来自陀螺仪的四元数域中的转换后的原始运动数据。在这种情况下,陀螺仪的运动数据是角速度,尽管其它传感器和运动数据可用于其它实施例。 是四元数交叉乘法运算符。
[0028] 没有直接可用的角加速度数据,因此通过数值微分创建角加速度。换句话说,陀螺仪原始数据不包括角加速度,而是通过数值微分计算该数据。角加速度 可以通过以下公式计算:
[0029]
[0030] 其中Qω(t)是时间t处的角速度,t‑1是t的前一时间,即Q具有值的前一个时间实例,并且T是传感器数据采样周期,即大约10毫秒。
[0031] 在角加速度创建过程中,速度数据中的噪声可能会被放大,使结果难以直接使用。因此,速度数据中的任何噪声都可以通过上述计算放大,因为分母通常远小于1s。可以添加加速度平滑滤波器来克服此问题,该加速度平滑滤波器可以是RLSN(Recursive Linear Smoothed Newton,递归线性平滑牛顿)滤波器或TV(Total Variation regularization,总变差正则化)滤波器。换句话说,平滑滤波器被用于平滑角加速度数据中的任何这样被放大的噪声。
[0032] 该模块的输出是平滑后的角加速度数据 参考图2,将更详细地公开示例RLSN滤波器。
[0033] 然后,将平滑后的角加速度数据积分,以计算角速度变化值,该角速度变化值用于预测头部的未来角方向。积分模块将对角加速度进行积分以创建角速度变化值QΔω:
[0034]
[0035] 由于机械惯性使头部运动变得平滑,因此应通过平均历史速度数据来平滑预测的速度。滑动窗口平均模块被设计用于预测基本角速度。换句话说,真正的头部运动具有机械惯性,该机械惯性可以平滑运动。为了将该惯性纳入所计算的角速度中,存储在缓冲存储器中的历史转换后的原始角速度数据被用于滑动窗口平均计算以创建平均角速度 滑动窗口大小由加速度值控制,其可被用于在所预测速度的平滑度和快速响应能力之间取得平衡。换句话说,滑动窗口平均计算中使用的滑动窗口的大小与所计算的角加速度成反比,以便在可能有利于高角加速度的快速反应和由于使用较长的滑动窗口大小而产生的更具统计意义的平均值之间取得平衡。参考图3,滑动窗口平均计算将被更详细地公开。
[0036] 假设角速度恒定或线性变化,其将通过加速度数据反复更新。换句话说,由于如前面讨论的与典型IMU传感器数据更新速率相比相对较慢的头部的典型角速度,头部的角速度可以被建模为恒定或线性变化。经过多步积分后,结合所融合的四元数数据,将在四元数域中创建所预测的3D旋转角度。换句话说,将角速度变化值QΔω和平均角速度 相加并使用不同的时间积分器针对多步积分块中积分周期的不同部分进行积分,以创建预测的角度变化值Q′。然后将该预测的角度变化值Q′与沿图顶部的过程中创建的转换后的原始运动数p据Q相结合,以在四元数域中创建预测的3D旋转角度Q。
[0037] 由于与数据融合部分相比,预测部分模型在更高的数据速率域下工作,因此使用多步积分模块来匹配数据处理时序。换言之,与沿图顶部的过程相比,沿图底部的过程在不同的数据速率域中工作,因此可以使用针对积分周期的不同部分使用不同的时间积分器的多步积分来将Q′的数据速率与Q匹配。积分并组合融合后的数据后,将在四元数域中生成预测的角度:
[0038]
[0039] Qp=Q+Q′
[0040] 因为在头部跟踪场景中运动通常是平滑的,可以假设角度的变化是分段线性化的。借助角加速度来预测未来速度,这将有可能给出在预测周期内最可能的角度的很好的p估计。换句话说,在四元数域中得到的预测的3D旋转角度Q使用户的头部的未来角度的可靠和准确的预测成为可能。
[0041] 在图2中,图示了RLSN滤波器的实施例。该模块可以减少角加速度创建过程中任何被放大的传感器信号噪声。
[0042] 在图2中,a是一个加权因子,其例如可以具有0.02或0.03的值。因此,加权因子a用作递归权重,并且通常可以在0.01和0.05之间。N是移动平均长度,并且例如可以具有16或32的值。换句话说,N是用于移动平均运算的长度的值,该值可能介于8和64之间。k是计算出的角加速度的索引,其中后续索引对应于IMU传感器的连续测量值。Z是到运算符中的图示为方框的输入。
[0043] 与传统的低通滤波器相比,RLSN滤波器作为低通滤波器有更低的延迟。由于加速度被建模为线性,因此在滤波器中计算的一阶导数被建模为常数。因此,它可以通过移动平均器沿图2底部的过程进行滤波,而不会延迟稳定状态下的信号。
[0044] 沿图2顶部的过程通过递归结构实现了额外的低通滤波,该递归结构通过其平滑值实现输入的加权平均。
[0045] 在所附权利要求的范围内,RLSN滤波器的替代实施方式也是可能的。此外,除了上述RLSN滤波器之外或替换该滤波器,还可以使用其他平滑滤波器(例如TV滤波器)。
[0046] 图3图示了图1中“角速度FIFO和滑动窗口角速度平均”方框中的过程。该模块的逻辑是根据加速度数据选择平均滑动窗口大小。换句话说,滑动窗口平均过程使用所计算出的角加速度数据作为输入,以控制平均窗口大小,使其与角加速度的值成反比。如果加速度大,这可能意味着可能会发生相对较大的速度变化,则将平均窗口大小设置为小。换句话说,使用反比例是因为相对较大的加速度可能导致速度的相对较大的变化,这得益于使用相对较小的平均窗口大小进行建模。
[0047] 在图3中,N表示滑动窗口平均过程的窗口大小。该过程使用来自缓冲存储器中的可用于角速度的N个最新数据点,并计算角速度的平均值
[0048] 图4示出了音频处理方法的流程图。该方法包括多个可以由(例如流设备的)处理器执行的步骤。
[0049] 该方法的第一步包括接收运动数据。该步骤包括从头戴式收听设备接收表示用户头部运动的运动数据。该运动数据可能位于四元数域中,也可能不在四元数域中。
[0050] 如果在四元数域中未接收到运动数据,则下一步包括将所接收到的运动数据变换到四元数域。
[0051] 该方法还包括预测头部的未来运动。此步骤包括从变换后的运动数据创建角加速度数据,并对角加速度数据应用一个或多个平滑滤波器,所预测的未来运动包括围绕四元数域中相应轴的旋转角度。
[0052] 预测步骤还可以包括从变换后的运动数据创建角速度数据,其可以包括使用先前创建的角速度数据和对应于角速度数据的变换后的运动数据。
[0053] 预测步骤还可以包括通过对角速度数据执行数值微分来创建角加速度数据。
[0054] 预测步骤还可以包括对角加速度数据应用递归线性平滑牛顿滤波器。这减少了所创建的角加速度数据中的噪声。
[0055] 预测步骤还可以包括从角速度的历史中确定角速度的滑动窗口平均。这可用于调整针对头部惯性的预测。
[0056] 滑动窗口的大小可以由角加速度数据确定。因此,该滑动窗口平均可以适应头部的加速度并且更可靠。
[0057] 该方法还包括向(例如流设备的)处理器提供所预测的头部的未来运动。然后,处理器可以调整由收听设备呈现的声场,使得声场跟随头部的预测运动。因此,可以减少传输延迟。
[0058] 本文描述的系统的各个方面可以在适当的基于计算机的声音处理网络环境中实现,用于处理数字或数字化的音频文件。自适应音频系统的部分可以包括一个或多个网络,这些网络包括任何所需数量的单独的机器,包括一个或多个路由器(未示出),其用于缓存和路由在计算机之间传输的数据。这样的网络可以构建在各种不同的网络协议上,并且可以是因特网、广域网(WAN)、局域网(LAN)或其任意组合。
[0059] 一个或多个部件、块、过程或其它功能部件可以通过计算机程序来实现,该计算机程序控制系统的基于处理器的计算设备的执行。还应该注意的是,本文公开的各种功能可以使用任意数量的硬件、固件和/或作为数据和/或指令体现在各种机器可读或计算机可读介质中的组合来描述,就其行为、寄存器传输、逻辑部件和/或其他特性而言。可以体现此类格式化数据和/或指令的计算机可读介质包含但不限于各种形式的物理(非暂态)、非易失性存储介质,例如光学、磁性或半导体存储介质。
[0060] 虽然已经通过示例和就具体实施例描述了一个或多个实施方式,但应当理解的是,一个或多个实施方式不限于所公开的实施例。相反,旨在涵盖对本领域技术人员显而易见的各种修改和类似布置。因此,所附权利要求的范围应得到最广泛的解释,以便涵盖所有此类修改和类似布置。
[0061] 列举的示例性实施例
[0062] 本发明可以以本文描述的任何形式体现,包括但不限于以下列举的示例性实施例(EEE),这些示例性实施例描述本发明某些部分的结构、特征和功能。
[0063] EEE1.一种音频处理方法,包括:
[0064] 接收表示头戴式收听设备的运动的运动数据;
[0065] 将所述运动数据变换到四元数域;
[0066] 通过一个或多个处理器预测所述头戴式收听设备的未来运动,所述预测包括从所变换后的运动数据创建角加速度数据并对所述角加速度数据应用一个或多个平滑滤波器,所预测的未来运动包括围绕所述四元数域中相应轴的旋转角度;以及
[0067] 将所述头戴式收听设备的所预测的未来运动提供给处理器,以调整由所述收听设备呈现的声场,使得所述声场跟随所述头戴式收听设备的预测的运动。
[0068] EEE2.如EEE1所述的方法,其中,所述预测包括对所述角加速度数据应用递归线性平滑牛顿滤波器。
[0069] EEE3.如EEE1或EEE2所述的方法,其中,所述预测包括从所变换后的运动数据创建角速度数据。
[0070] EEE4.如EEE3所述的方法,其中,创建角速度数据包括使用先前创建的角速度数据和角速度数据对应的变换后的运动数据。
[0071] EEE5.如EEE3或EEE4所述的方法,其中,创建角加速度数据包括在所创建的角速度数据上使用数值微分。
[0072] EEE6.如EEE1‑EEE5中任一项所述的方法,其中,所述预测包括从所创建的角速度的历史中确定所述角速度的滑动窗口平均。
[0073] EEE7.如EEE6所述的方法,其中,所述滑动窗口的大小由所述角加速度数据确定。
[0074] EEE8.如EEE1‑EEE7中任一项所述的方法,其中,所述角加速度数据被积分以创建角速度变化值。
[0075] EEE9.如EEE1‑EEE8中任一项所述的方法,其中,所述头戴式收听设备包括无线连接到播放设备的多个耳塞。
[0076] EEE10.如EEE1‑EEE9中任一项所述的方法,其中,所述预测和提供步骤由向所述头戴式收听设备提供所述声场的设备的一个或多个处理器执行。
[0077] EEE11.如EEE10所述的方法,其中,所述接收和变换步骤进一步由向所述头戴式收听设备提供所述声场的所述设备的一个或多个处理器执行。
[0078] EEE12.如EEE10所述的方法,其中,所述接收和变换步骤由所述头戴式收听设备的一个或多个处理器执行。
[0079] EEE13.一种系统,包括:
[0080] 一个或多个处理器;以及
[0081] 存储指令的非暂态计算机可读介质,所述指令在由所述一个或多个处理器执行时,使所述一个或多个处理器执行EEE1‑EEE12中任一项所述的方法。
[0082] EEE14.一种存储指令的非暂态计算机可读介质,所述指令在由一个或多个处理器执行时,使所述一个或多个处理器执行EEE1‑EEE12中任一项所述的方法。

当前第1页 第1页 第2页 第3页