运行时延敏感音频信号处理的系统上的抖动的测量和补偿的制作方法

文档序号:16979160发布日期:2019-02-26 19:20阅读:375来源:国知局
运行时延敏感音频信号处理的系统上的抖动的测量和补偿的制作方法

本公开涉及系统级架构,并且具体地,涉及测量和/或补偿时延。



背景技术:

在实时信号处理系统中,存在与音频信号的捕捉和回放相关联的延迟。这些延迟可以是固定的,或者可以在每次系统运行时发生改变。如果变化量很小,系统不会受到影响。然而,当变化量变得显著时,“时延敏感”系统会受到影响。

附图说明

参考以下附图和描述以更好地理解本公开。附图中的元素不一定是按比例绘制的,而是将重点放在了说明本公开的原理上。此外,在附图中,类似的附图标记在全部不同视图中表示对应的部分。

图1是延迟测量和补偿系统的框图。

图2示出了在反馈通道上呈现的冲激(impulse)响应测试信号的测量到的延迟。

图3是用于测量回放和捕捉延迟的过程。

图4是用于测量回放和捕捉延迟的第二过程。

图5是具有延迟测量和补偿系统的载运工具。

具体实施方式

数字音频处理系统使用数字信号处理器、图形处理器、微处理器、现场可编程门阵列和其他处理器来接收和呈现音频内容。信息娱乐系统、放大器和移动电话常常处理音频内容。这些系统通过批处理(batchprocess)、实时处理或近实时处理来处理内容。实时操作系统可以在这些系统上运行,并且可以调度竞争系统计算资源的许多并行和非相关操作。

当处理由麦克风或传感器(其将诸如声音之类的物理刺激转换为电信号)捕捉的信号时,一些系统会经受处理延迟。类似地,当从扬声器呈现数字回放信号时发生处理延迟。例如,这些延迟可能是由模拟和数字信号转换、采样、滤波和传输转换(例如,通过无线介质,如蓝牙或以太网连接)引起的。它们也发生在不与公共时钟同步的系统中。一些过程执行非确定性算法,该非确定性算法在不同运行时间表现出不同的行为。由于许多原因,这些算法的执行方式不同,这些原因包括:响应非受控事件所需的时间的差异和不同的中断序列。在音频处理中,因缓冲器访问时间的差异、捕捉音频信号的差异、重复音频样本所消耗的处理时间的差异等而引起变化。

当捕捉延迟和回放延迟既不固定又不可知时,一些信号处理应用无法有效地运行。这些系统可能是时间敏感的,并且当操作条件意外地改变时可能容易出错。声学回声消除(aec)、车载通信(icc)系统、主动噪声控制(anc)系统和反馈控制系统是时延敏感音频信号处理应用。关于从载运工具中的扬声器播放的下行链路语音信号与在麦克风处捕捉的回声之间的相对延迟,aec可以作出假设。如果错误地假设该延迟,则回声路径冲激响应的估计模型可能无法正确地捕捉实际回声路径的开始(早期反射)或结束(回声拖尾)。aec还将假设回声路径仅随时间缓慢改变。在这些情况中的任何一种情况下,如果错误地估计回放延迟或捕捉延迟,则可能导致回声泄漏,例如使得呼叫中的远端讲话者以一定延迟听到他们自己的语音。另一方面,如果aec算法知道系统在处理样本(不包括声学延迟)时加上了某个回放延迟加捕捉延迟,则可以确定回声冲激响应的第一样本为零。换言之,aec系统不需要估计第一样本,并且保留系统处理能力。此后,可以使用足够长的固定回声拖尾长度来估计冲激响应的剩余样本,该长度足以覆盖载运工具舱室的已知声学混响时间,从而允许aec完全消除回声。备选地,如果回放延迟或捕捉延迟实时改变并且其改变的量是已知的,则aec可以调整其回声路径冲激响应的内部估计并保持一致的回声消除性能。估计该系统中的回声路径的一些自适应滤波算法包括归一化最小均方(nlms)过程、递归最小均方(rls)过程和仿射投影。当时延已知时,无论该时延是在启动时测量的还是连续地测量的,aec系统都能以更高的质量、每秒更少的指令来更有效地执行。

另一种时延敏感的音频信号处理应用是icc系统,其中在前麦克风处拾取驾驶员的语音,经处理以形成强化信号,并且通过载运工具中的后扬声器播放(从前到后强化)以使后面的乘客更清楚地听到驾驶员说话。由于反馈路径从后扬声器到前麦克风而存在,因此通常需要反馈消除器以防止啸叫或反馈的非受控累积。与aec类似,反馈消除器可以将反馈路径建模为冲激响应(例如,时间序列或单独地在子带内),并且得益于已知实际的系统延迟。例如,已知的系统延迟可以帮助反馈消除算法区分麦克风处的反馈分量与从驾驶员到麦克风的直接声学路径,因此有效地执行反馈消除而不降低强化信号的语音质量。

另一种时延敏感的音频信号处理应用通过添加另一信号来减少不需要的声音,该音频信号处理应用也称为anc。anc依靠精确的定时来主动消除或抑制不需要的声音。在anc中,二次路径是给定扬声器和麦克风之间的传递函数,例如,表示为冲激响应或频率响应。二次路径延迟是从anc应用发送的输出信号在输入到anc应用的麦克风处可被检测到所需的时间。二次路径延迟是捕捉延迟、回放延迟和声学延迟(例如,当信号从扬声器传播到麦克风时发生的声学延迟)的总和,这些延迟可以发生在诸如载运工具舱室之类的壳体内。校准是对从所有扬声器到所有麦克风的二次路径进行测量的过程,并且通常在系统正常操作之前的调谐阶段执行。许多anc系统仅在其当前操作环境与其校准环境类似时才有效地运行。诸如fxlms(滤波-x最小均方)和归一化fxlms之类的anc算法对抖动具有有限的容限。例如,如果在以给定频率进行校准时二次路径的相位相对于其值的变化超过大约45度,则anc系统可能变得不稳定并且可能增加载运工具舱室中的噪声水平。在100hz(周期t=10ms),45度相当于(45/360)×10ms=1.25ms的延迟。

为了测量时延,本公开的系统测量实时系统上的回放延迟和捕捉延迟。在音频捕捉事件期间,通过捕捉路径以块或片段的形式移动数据。传送的定时取决于启动捕捉事件的中断。类似地,由回放事件产生的中断来控制通过回放音频路径进行的数据块移动。同步时钟的使用保证了在给定时间段内捕捉的音频样本的数量等于在同一时间段内回放的音频样本的数量,但不保证捕捉块中断与回放块中断之间的对准。将音频提供给捕捉硬件和回放硬件的组件、存储延迟、有效负载差异等可能会导致变化。对捕捉中断和回放中断之间的时间差进行测量的一种方法依赖于称为同步点的同步时间。当捕捉事件和回放事件两者的启动序列完成时,会发生同步点。当建立同步点时,变化测量计算共同样本经历捕捉事件的位置相对于相同共同样本经历回放事件的位置,以确定定时的差。该测量可以导致对捕捉音频路径和回放音频路径中的音频缓冲器和/或音频样本的数量进行计数。

捕捉过程中的同步样本位置测量硬件和声学处理算法输入之间的中间过程块以及捕捉硬件内的数据块的粒度位置(granularposition)。因此,针对捕捉应用的同步样本位置可以在i/o缓冲、adc、解码、数据复制、采样率转换、滤波和其他数据传输中的一些或所有中考虑过程块的位置。类似地,针对回放应用,同步样本位置包括硬件和声学处理算法输出之间的中间过程块以及回放硬件内的数据块的粒度位置。针对回放应用的同步样本位置可以在io缓冲、dac、编码、数据复制、采样率转换、滤波和其他数据传输中的一些或所有中考虑过程块的位置。针对捕捉应用和回放应用两者,如果硬件和声学处理算法之间的任何中间过程块的样本长度是确定性的(例如,意味着它们在启动序列之间不变),则不需要在备选系统中的捕捉应用和回放应用两者中对那些中间过程块进行测量。在这些备选系统中,仅测量样本长度非确定性的数据块的位置,这是因为确定性过程块不随时间变化。确定性过程块针对每个启动序列产生相同的测量结果。

为了确保在启动序列之后保持回放事件和捕捉之间的时延,可以在每个捕捉中断和每个回放中断的同步点处测量完整块的数量(不是这些块内的粒度位置)。如果在同步点之间处理的完整数据块的数量改变,则可以将数据块或其部分添加到或舍弃捕捉音频路径以保持对准并补偿时延的变化。在一些信号处理应用中,应用可以向信号处理应用的二次冲激响应加上或减去分数延迟。

用于测量时延敏感系统(例如,aec、icc、反馈控制和anc)上的回放延迟和捕捉延迟(例如,求和)的备选系统利用反馈通道,该反馈通道同步地通过捕捉音频路径和回放音频路径的一些或所有组件。这些系统通过反馈通道产生并播放已知的测试信号,测量所捕捉的输入通道处的响应,并计算两者之间的延迟。例如,在图1中,anc系统在实时操作系统内运行;它被配置有单麦克风输入102和单扬声器输出通道104。在该系统中,实时操作系统(rtos)106、直接存储器存取(dma)110、数模转换设备(dac)112和模数转换(adc)设备114是潜在的抖动源。在备选系统中也监测其他抖动源。在图1中,反馈通道116将输入和输出连接到延迟测量模块118,该延迟测量模块118可以是anc应用的单独部分或集成部分。反馈通道同步地通过rtos输出缓冲器108、dma110、dac112、adc114、dma110和rtos输入缓冲器120。反馈信号不通过物理换能器,因此在诸如载运工具舱室之类的壳体内不可听见,然而它通过引入抖动的系统的一些或所有组件。在每个阶段,与其他音频通道同步地处理反馈信号,以确保反馈信号延迟相同的量。当在反馈通道上播放测试信号(例如,冲激信号、正弦扫频信号或随机噪声信号)时,在运行期间连续地和/或在启动时测量反馈路径的延迟。

在操作中,如图2所示,在反馈通道上播放冲激,并且在18ms相对点处,在延迟模块118的输入处捕捉到冲激。通过测量两个波形的最大值之间的延迟、测量与两个信号的互相关的最大值相对应的滞后、或者通过其他过程,延迟模块118测量时延。

为了补偿抖动,延迟测量模块(例如,图1中所示的延迟测量模块118)测量样本中dcalib的回放加捕捉延迟。延迟模块118通知信号处理应用(例如,anc、aec、icc、反馈消除)当前延迟是什么,和/或计算当前延迟与所存储的在某个参考时间点测量的延迟之间的差。样本中的dcalib可以与校准数据一起存储在存储器中。在图1的anc系统中,校准数据包括从每个扬声器到每个麦克风的冲激响应测量结果或相关的测量结果,例如对从扬声器到麦克风的传递函数的频域表示。

在等式1中,ircalib_kj[n]是样本“n”中作为时间的函数从扬声器k到麦克风j的校准时测量的冲激响应。在稍后阶段,例如在启动之后和/或在运行期间,延迟测量模块118将不同的测量到的延迟“d”传递给anc应用122。这里,ir_kj[n]是适应anc控制滤波器的anc算法处理的冲激响应。在anc算法(例如,滤波-x最小均方算法)中,通过冲激响应对参考信号(例如,从rpm驱除发动机级次的正弦音调)进行滤波以呈现经滤波的x项(“fx”项)。可以通过等式1计算ir_kj[n]。

ir_kj[n]=ircalib_kj[n+(dcalib-d)]等式1

如果二次路径传递函数备选地存储在频域中,则hcalib_kj[f]将表示在校准时测量的某个频率“f”(以hz为单位)下测量的从扬声器“k”到麦克风“j”的复频率响应,并且“fs”是采样率。在运行时计算的相应频率响应(h_kj[f])可以用等式2表示:

h_kj[f]=hcalib_kj[f]exp(i2pi(dcalib-d)f/fs)等式2

在一些系统中,anc以比调用它的主机应用更低的采样率(fsanc)运行。主机应用可能正在运行媒体回放、语音处理等。如果在“fs”下测量回放/捕捉延迟“d”,但将该延迟应用于以较低采样率fsanc存储的anc中的冲激响应,则可以应用冲激响应的分数采样延迟。在这种系统中,可以通过内插滤波器来实现时间序列的分数延迟。

在操作中,过程可以测量实时系统上的回放延迟和捕捉延迟,如图3和图4所示。在图3中,对捕捉块中断和回放块中断之间的时间差进行测量涉及在302处,首先确定在启动时何时捕捉事件和回放事件完成。然后在304处建立同步点。在306处,过程监测在启动序列之间不变的硬件和声学处理算法之间的任何中间过程块的样本长度。这些中间过程块可以被排除在计算之外,并且仅将随时间变化的块的位置用于启动序列时间差的计算中。在308处,该过程计算当前相对于当前在该同步点处播放的块中的样本位置所捕捉的块中的确切样本位置,以测量如上所述的时延或抖动。在310处,该过程通知一个或多个信号处理应用(例如,anc、aec、icc、反馈消除)当前延迟是什么,或者备选地计算当前延迟与所存储的在某个参考时间测量的延迟之间的差。在可选步骤312处,在一些应用中,响应于当前延迟,调整对从扬声器到麦克风的二次路径的估计,在一些应用中,响应于当前延迟,应用二次路径冲激响应的整数或分数采样延迟,在一些应用中,当前延迟建立回声路径中的初始延迟。在其他信号处理应用中,在312处,数据块被舍弃或加到捕捉音频路径中以补偿时延,或者调整二次路径的相位响应。

图4是可以测量实时系统上的回放延迟和捕捉延迟的备选过程。在图4中,在402处建立反馈通道,该反馈通道将输入和输出连接到延迟测量过程,该延迟测量过程可以是一个或多个信号处理应用(例如,anc、aec、icc、反馈消除)的一部分或单独的软件模块。在404处,产生测试信号(例如,冲激信号、正弦扫频信号或随机噪声信号),该测试信号与呈现声音的其他音频通道同步地进行处理。反馈信号同步地通过捕捉路径和反馈路径的一些或所有组件,但不通过物理换能器。通过该结构,测试信号在诸如载运工具舱室之类的壳体内是不可听见的;然而,它通过了引入抖动的被测试音频路径的所有组件。在406处,发送信号,并且在408处,通过如上所述的过程计算延迟。在310处,该过程通知一个或多个信号处理应用(例如,anc、aec、icc、反馈消除)当前延迟是什么,或者备选地计算当前延迟与所存储的在某个参考时间测量的延迟之间的差。在可选步骤312处,如上所述进行补偿。

图5是测量和补偿抖动的载运工具的框图。该系统包括处理器502、非暂时性介质(例如,存储器)504(其内容可由处理器502访问)和输入/输出(i/o)接口506。i/o接口506连接设备和本地和/或远程应用,例如附加麦克风、音频换能器或扬声器,以及一个或多个信号处理应用(例如,anc、aec、icc、反馈消除)。存储器504可以存储指令,当由处理器502执行时,所述指令使系统呈现与测量和/或补偿抖动相关联的一些或所有功能。例如,存储器504可以存储指令,当由处理器502执行时,所述指令使系统呈现与测量或计算anc、aec、icc、反馈消除等的抖动510和补偿512该抖动相关联的功能。

处理器502可以包括单个处理器或多个处理器,该多个处理器可以被布置在单个芯片上、布置在多个设备上或分布在一个以上的系统上。处理器502可以是执行体现在存储器504或其它存储器中的计算机可执行指令或计算机代码以执行本文描述的系统的一个或多个特征的硬件。处理器502可以包括中央处理单元(cpu)、图形处理单元(gpu)、专用集成电路(asic)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、数字电路、模拟电路、微控制器、任何其它类型的处理器或其任何组合。

所公开的存储器504和/或存储装置可以保留用于实现上述功能的可执行指令的有序列表。机器可读介质可以选择性地但不限于是电子、磁性、光学、电磁、红外或半导体介质。机器可读介质的示例的非穷尽列表包括:便携式磁盘或光盘、易失性存储器、诸如随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)或数据库管理系统。存储器504可以包括单个设备或多个设备,该多个设备可以布置在一个或多个专用存储器设备或者处理器或其他类似设备上。当功能或步骤被称为“响应性地”或“响应于”功能或过程而发生时,设备功能或步骤必然作为功能或消息的结果而发生。功能或动作仅仅跟随或发生在另一个之后是不充分的。此外,当功能指示发生自动回声消除时,通过从所发送或接收到的信号中减去所估计的回声来消除回声。

存储器504还可以存储可由处理器502执行的非暂时性计算机代码。计算机代码可以用诸如c、c++、汇编语言、通道程序代码之类的任何计算机语言和/或计算机语言的任何组合来编写。存储器504可以将信息存储在数据结构中,例如包括多频带压缩器/限制器可调参数,其包括一个或多个交叉频率、幅度阈值、压缩率、时间常数、起音和释放时间、预测参数等。

也可以响应于存储在非暂时性计算机可读介质中或之上的一个或多个逻辑集或指令集来执行附图中示出或所描述的功能、动作或任务。功能、动作或任务独立于特定类型的指令集、存储介质、处理器或处理策略,并且可以由单独或组合操作的软件、硬件、集成电路、固件、微代码等来执行。在一个实施例中,指令存储在可移除介质设备上以供本地或远程系统读取。在其他实施例中,逻辑或指令存储在远程位置以便通过计算机网络或通过无线或有形电话或通信线传送。在其他实施例中,逻辑或指令可以存储在给定的计算机内,例如cpu。

系统和过程强化并增强音频信号处理。系统自动测量实时操作系统中的抖动,并补偿一个或多个音频信号处理应用内的延迟,以保持质量。该系统可以在载运工具系统(例如,信息娱乐处理器和数字信号处理器或dsp)中实现,并与其他系统软件共存和通信。载运工具可以包括但不限于汽车、公共汽车、卡车、拖拉机、摩托车、自行车、三轮车、四轮车或其他轮车、大船、潜艇、小船或其他船舶、直升机、无人机、飞机或其他飞行器、火车、电车或其他有轨载运工具、太空飞船或其他航天器,以及任何其他类型的载运工具,无论是当前存在还是在本公开之后出现。换言之,它包括用于运送人或物的设备或结构。该系统容易并快速地适应不同的载运工具和舱室类型以及不同的声学环境配置。

在仔细阅读附图和详细描述后,其他系统、方法、特征和优点对于本领域技术人员将是或将变得显而易见。旨在所有这样的附加系统、方法、特征和优点被包括在本描述中,被包括在本公开的范围中,并且由所附权利要求来保护。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1