CN111506539A - 嵌入式架构内的同步多通道环回 - Google Patents
嵌入式架构内的同步多通道环回 Download PDFInfo
- Publication number
- CN111506539A CN111506539A CN202010079051.3A CN202010079051A CN111506539A CN 111506539 A CN111506539 A CN 111506539A CN 202010079051 A CN202010079051 A CN 202010079051A CN 111506539 A CN111506539 A CN 111506539A
- Authority
- CN
- China
- Prior art keywords
- signal
- reference signal
- audio
- measurement signal
- program product
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000001360 synchronised effect Effects 0.000 title description 7
- 238000005259 measurement Methods 0.000 claims abstract description 73
- 238000004590 computer program Methods 0.000 claims description 21
- 230000003044 adaptive effect Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 16
- 230000002123 temporal effect Effects 0.000 claims description 11
- 238000000034 method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 7
- 230000001133 acceleration Effects 0.000 claims description 5
- 239000010410 layer Substances 0.000 description 63
- 230000003750 conditioning effect Effects 0.000 description 24
- 239000000872 buffer Substances 0.000 description 9
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000011217 control strategy Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L21/00—Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
- G10L21/02—Speech enhancement, e.g. noise reduction or echo cancellation
- G10L21/0208—Noise filtering
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K11/00—Methods or devices for transmitting, conducting or directing sound in general; Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
- G10K11/16—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
- G10K11/175—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound
- G10K11/178—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound by electro-acoustically regenerating the original acoustic waves in anti-phase
- G10K11/1781—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound by electro-acoustically regenerating the original acoustic waves in anti-phase characterised by the analysis of input or output signals, e.g. frequency range, modes, transfer functions
- G10K11/17821—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound by electro-acoustically regenerating the original acoustic waves in anti-phase characterised by the analysis of input or output signals, e.g. frequency range, modes, transfer functions characterised by the analysis of the input signals only
- G10K11/17823—Reference signals, e.g. ambient acoustic environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K11/00—Methods or devices for transmitting, conducting or directing sound in general; Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
- G10K11/16—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general
- G10K11/175—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound
- G10K11/178—Methods or devices for protecting against, or for damping, noise or other acoustic waves in general using interference effects; Masking sound by electro-acoustically regenerating the original acoustic waves in anti-phase
- G10K11/1787—General system configurations
- G10K11/17873—General system configurations using a reference signal without an error signal, e.g. pure feedforward
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K2210/00—Details of active noise control [ANC] covered by G10K11/178 but not provided for in any of its subgroups
- G10K2210/30—Means
- G10K2210/301—Computational
- G10K2210/3012—Algorithms
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10K—SOUND-PRODUCING DEVICES; METHODS OR DEVICES FOR PROTECTING AGAINST, OR FOR DAMPING, NOISE OR OTHER ACOUSTIC WAVES IN GENERAL; ACOUSTICS NOT OTHERWISE PROVIDED FOR
- G10K2210/00—Details of active noise control [ANC] covered by G10K11/178 but not provided for in any of its subgroups
- G10K2210/50—Miscellaneous
- G10K2210/505—Echo cancellation, e.g. multipath-, ghost- or reverberation-cancellation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04R—LOUDSPEAKERS, MICROPHONES, GRAMOPHONE PICK-UPS OR LIKE ACOUSTIC ELECTROMECHANICAL TRANSDUCERS; DEAF-AID SETS; PUBLIC ADDRESS SYSTEMS
- H04R3/00—Circuits for transducers, loudspeakers or microphones
- H04R3/02—Circuits for transducers, loudspeakers or microphones for preventing acoustic reaction, i.e. acoustic oscillatory feedback
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- General Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computational Linguistics (AREA)
- Quality & Reliability (AREA)
- Circuit For Audible Band Transducer (AREA)
- Soundproofing, Sound Blocking, And Sound Damping (AREA)
- Otolaryngology (AREA)
Abstract
在至少一个实施方案中,提供了一种嵌入式Linux系统。所述Linux系统包括存储器、片上系统(SoC)设备和第一电路。所述SoC设备包括所述存储器并且被编程为至少处理指示不期望的音频内容的参考信号和指示收听环境中的测量的音频数据的测量信号。所述第一电路被编程为接收所述参考信号和所述测量信号。所述第一电路还被编程为将所述参考信号与所述测量信号合并以将组合的系统输入提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
Description
相关申请的交叉引用
本申请要求2019年1月31日提交的美国临时申请序列号62/799,338的权益,其全部公开内容以引用的方式并入本文。
技术领域
本文公开的各方面一般涉及具有嵌入式架构的同步多通道环回。将在下面更详细地讨论这些方面和其他方面。
背景技术
通常,嵌入式系统(例如,Linux操作系统)中的处理不是实时的,因为应用于数据系统的缓冲区不是恒定的。由于存储器使用情况和系统负载,此类缓冲区可能会随时间变化。这种行为使得那些在移动电话中广泛使用的流行且通用的片上系统(SoC)几乎无法用于高级算法,例如声学回声消除(AEC)算法。
发明内容
在至少一个实施方案中,提供了一种嵌入式Linux系统。所述Linux系统包括存储器、片上系统(SoC)设备和第一电路。所述SoC设备包括所述存储器并且被编程为至少处理指示不期望的音频内容的参考信号和指示收听环境中的测量的音频数据的测量信号。所述第一电路被编程为接收所述参考信号和所述测量信号。所述第一电路还被编程为将所述参考信号与所述测量信号合并以将组合的系统输入提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
在至少另一个实施方案中,提供了一种以非暂时性计算机可读介质体现的计算机程序产品,所述计算机程序产品被编程为防止在嵌入式Linux系统的参考信号和测量信号之间出现时间不对准。所述计算机程序产品包括用于进行以下操作的指令:接收指示不期望的音频内容的所述参考信号;以及接收指示收听环境中的测量的音频数据的所述测量信号。所述计算机程序产品包括用于进行以下操作的指令:在片上系统(SoC)设备处处理所述参考信号和所述测量信号;以及将所述参考信号与所述测量信号合并以将组合的系统数据流提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
在至少另一个实施方案中,提供了一种以非暂时性计算机可读介质体现的计算机程序产品,所述计算机程序产品被编程为防止在嵌入式Linux系统的参考信号和测量信号之间出现时间不对准。所述计算机程序产品包括用于接收指示自适应控制系统的输出数据的所述参考信号的指令。所述计算机程序产品包括用于进行以下操作的指令:在片上系统(SoC)设备处处理所述参考信号和所述测量信号;以及将所述参考信号与所述测量信号合并以将组合的系统数据流提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
附图说明
在所附权利要求书中具体指出了本公开的实施方案。然而,通过参考以下详细说明并结合附图,各个实施方案的其他特征将变得更加显而易见并得到最佳理解:
图1描绘了嵌入式自适应控制系统的示例;
图2描绘了根据一个实施方案的闭环控制实施方式的高级实施方式;
图3描绘了根据一个实施方案的嵌入式自适应控制系统;
图4描绘了根据一个实施方案的结合声学回声消除器/消除使用的自适应控制系统的详细实施方式的示例;以及
图5描绘了根据一个实施方案的如结合主动噪声消除使用的自适应控制系统的详细实施方式的示例。
具体实施方式
根据需要,本文公开了本发明的详细实施方案;然而,应当理解,所公开的实施方案仅仅是本发明的示例,其可以以各种替代形式来体现。附图不一定按比例绘制;一些特征可能被放大或最小化以显示特定部件的细节。因此,本文公开的特定结构和功能细节不应被解释为限制性的,而仅仅是作为教导本领域技术人员以各种方式使用本发明的代表性基础。
应当认识到,如本文所公开的诸如服务器、控制器和客户端等的各种电气设备可以包括各种微处理器、集成电路、存储器设备(例如,FLASH、随机存取存储器(RAM)、只读存储器(ROM)、电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)或它们的其他合适的变体)以及相互协作以执行本文所公开的操作的软件。另外,这些电气设备利用一个或多个微处理器来执行以非暂时性计算机可读介质体现的计算机程序,所述计算机程序被编程为执行所公开的任何数量的功能。此外,如本文所提供的各种电子设备包括壳体和位于壳体内的各种数量的微处理器、集成电路和存储器设备(例如,FLASH、随机存取存储器(RAM)、只读存储器(ROM)、电可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM))。电气设备还包括基于硬件的输入和输出,所述输入和输出用于分别从如本文所公开的其他基于硬件的设备接收数据和向其传输数据。
本文所公开的实施方案除别的之外一般提供同步的参考和测量嵌入式输入信号架构,所述架构可以结合例如使许多高级算法可行的LINUX操作系统一起使用。所述架构可以是可靠的,并且可以针对任何数量的自适应控制策略来实施。Linux操作系统可以用于任何数量的音频处理设备。例如,所述架构可以结合但不限于例如以下各项来利用同步的参考信号和测量信号:声学回声消除器或消除(AEC)应用程序、主动噪声消除(ANC)系统、任何其他合适的基于音频的应用程序或一般来讲需要相对同步的参考信号和测量信号的任何控制应用程序。所描绘的增强(或架构)可以利用信号调节电路,所述信号调节电路可以是简单的并且得到低成本方法,所述低成本方法提供参考信号和测量信号之间的相对同步设计,同时端到端延迟可以动态地变化。应当认识到,如本文所阐述的实施方案可以应用于不包括音频系统的任何系统,由此期望通过例如利用相对同步的参考信号和测量信号而使误差最小化来实现控制目标。
图1描绘了嵌入式自适应控制系统100的示例。自适应控制系统100可以例如以嵌入式Linux操作系统(OS)101实施。应当认识到,系统100可以包括Linux内核(例如,OS的核心)以及相关的支持工具和库。系统100一般包括应用层102、服务器(或服务器层)104、声音子系统层106或例如高级Linux声音架构(ALSA)库层106或开放声音系统(OSS)库层106、内核(或驱动程序)层(例如,ALSA内核/驱动程序或OSS内核/驱动程序)108和硬件层110。应用层102、服务器104、声音子系统层106、内核层108和硬件层110可以至少形成片上系统(SoC)设备111。SoC设备111可以是将所有相关联的部件集成在其中的集成电路。应当认识到,SoC设备111可以包括可封装在单个衬底或微芯片上的中央处理单元(CPU)、存储器113、输入/输出端口和/或二级存储装置。SoC设备111还可以包括数字设备、模拟设备和/或混合信号处理设备。SoC设备111可以是Linux嵌入式系统的一部分。
应当认识到,系统100还包括至少一个控制器112(以下称为控制器112),所述至少一个控制器用于执行用于执行由应用层102、服务器层104、声音子系统层106和内核(或驱动程序)层108执行的任何和所有任务。另外,控制器112可以与硬件层110对接,以处理如从硬件层110所接收的数据或将数据传输到硬件层110。
应当认识到,控制系统100可以在任何自适应控制实施方式(或闭环控制策略)中使用。例如,图2描绘了采用闭环策略的控制实施方式200。实施方式200包括信号调节电路201(或第一电路201)、控制器202、在控制器202的控制下的系统或工厂204(以下称为“工厂204”)以及传感器206。信号调节电路201可以包括:混合器203,用于将信号“参考”与系统/工厂输入信号分离;以及分组电路(pack circuit)209,用于将信号“参考”与信号“测量”组合以提供信号“控制器_输入”。应当认识到,本文中对任何信号的所有引用可以是单数的也可以是复数的(例如,每个相应的输入和输出具有任何数量的信号)。信号“参考”可以经由混合器203被提供给信号调节电路201并且可以通过系统/工厂输入信号或信号调节器电路201的单独输入来分离。信号“参考”可以直接对应于如结合图1所示出的先前从硬件层110输出的音频输出数据。这也可以被称为环回机制。信号“参考”可以包括在任何数量(M个)的音频通道上提供的数据。信号“参考”可以对应于被确定为用户不期望的音频数据。信号“测量”也可以被提供给信号调节电路201。信号“测量”可以例如对应于从传感器206(例如,传声器)传输的音频数据。传感器206生成信号“测量”,所述信号对应于从设备204所测量的输出,也被定义为来自工厂204的信号“工厂_输出”。在这种情况下,信号“测量”可以对应于信号“工厂_输入”或“控制器_输出”上的音频。信号“测量”可以包括用户在收听环境中听到的实际音频。信号“测量”可以包括任何数量(N个)的音频通道。控制器202接收信号“控制器_输入”,所述信号是来自例如传感器206(或传声器)的信号“参考”和信号“测量”的同步组合。应当认识到,模数转换器可以位于传感器206和信号调节电路201之间。一般来讲,分组电路209可以在信号测量“测量”和信号“参考”之间合并数据。在一个示例中,合并操作可以对应于分组电路209相对于信号“参考”增加或减去信号“测量”以将组合的信号“控制器_输入”提供给控制器202。信号“控制器_输入”可以是M个通道的形式,因为所述信号“参考”叠加在信号“测量”上。替代地,合并操作可以对应于分组电路209将信号“测量”与信号“参考”组合(或分组)以提供信号“控制器_输入”。然而,由于分组操作,信号“控制器_输入”可以是M+N个通道的形式,因为信号“参考”和“测量”被分组到信号“控制器_输入”的各个时隙中。例如,信号“控制器_输入”可以形成提供时分多路复用(TDM)数据流的M+N个基于音频的通道并分组有来自信号“测量”的M个基于音频的通道和来自信号“参考”的N个基于音频的通道。一般来讲,信号调节电路201被配置为将信号“参考”上的数据与信号“测量”上的数据合并以将组合的系统数据流提供给SoC设备111,从而防止在信号“参考”上的数据与信号“测量”上的数据之间出现时间不对准。这种时间不对准可能是在控制实施方式200的操作期间由层102、104、106和108中的一个或多个引起的。下面将更详细地讨论这一方面。
如上面所指出的,本文的实施方案可以应用于不包括音频系统的任何系统,由此期望减少通过Linux系统的一个或多个软件层传播的两个信号之间的时间不对准。在自适应控制系统中,信号“参考”可能仅对应于到利用了环回机制的工厂的输入数据。信号“测量”可以对应于如由自适应控制系统中的传感器所提供的数据,其中传感器提供某种形式的反馈信息。因此,在这种情况下,信号调节电路201可以将信号“参考”上的数据与信号“测量”上的数据合并。在将这些信号之间的数据合并之后,该信号调节电路201将组合的系统数据流提供给SoC设备111,以防止在信号“参考”上的数据和“测量”上的数据之间出现时间不对准。时间不对准一般可以由软件层102、104、106和108中的一个或多个引起。这一方面可以例如通过利用相对同步信号“参考和测量信号”而最小化误差来实现控制目标。应当认识到,如本文阐述的实施方式可能不仅仅用于与音频有关的目的,而是可以供试图解决或减少在通过Linux系统的软件层传播的两个信号之间的时间不对准的任何系统使用。
控制器202采用自适应控制策略以基于信号“测量”和信号“参考”来反复执行该过程,从而使控制实施方式200以期望的方式适应工厂204。然而,应当认识到,由于固有的系统误差或不一致,控制器202可能不完全能够控制工厂204以实现期望的结果。上面指出的自适应控制实施方式200可以执行任何次数以便以最佳方式提供控制动作,这可能要求在信号“参考”和“测量”之间至少有相对稳定的延迟和定时,以确保工厂204在控制器202的控制下的控制稳定性和最佳性能。信号“测量”和信号“参考”之间的任何动态时间/延迟不对准问题(如例如分布在例如LINUX系统101中,诸如图1所示的示例)都可能导致控制器202(或如图1所示,控制器112)降低性能甚至导致不稳定。然而,应当认识到,由于固有的系统(或工厂)误差或不一致,控制器202可能不完全能够控制工厂204以实现期望的结果。
再次参考图1,应用层102一般包括例如音频客户端和启用音乐回放的相关用户程序。这些音频客户端可以经由音频流连接到声音服务器。服务器层104(或声音服务器)可以是软件,并且管理音频设备(例如,声卡)的使用和访问。服务器层104通常可以作为用于信宿和信源处理的后台进程运行。服务器层104可以实施为PulseAudio或诸如JACK的音频连接工具箱。一般来讲,PulseAudio是用于各种操作系统的声音系统。PulseAudio一般用作声音应用程序的代理。如果服务器层104是针对PulseAudio实施的,则应当认识到,PulseAudio可以是在UBUNTU发行版中使用的声音服务器,其连接到较低软件层,例如内核层108(或ASLA层)。PulseAudio在应用层102内提供服务器/客户端连接。JACK可以包含在任何数量的LINUX应用程序中。
声音系统层106一般包括用于基于是否使用ALSA或OSS进行实施来为ALSA和OSS提供库的软件。内核或驱动程序层108可以包括声音驱动程序和声音设备。如果内核层108与ALSA结合使用,则ALSA内核层108可以支持多通道音频接口并在管理硬件控件上提供应用程序接口(API)访问。ALSA可能是基于多处理器LINUX的嵌入式系统内的标准软件层,用于管理所有音频流和流混合,包括音频硬件外围设备与上层应用层之间的缓冲区处理。如果内核层108与OSS结合使用,则OSS内核层108包括LINUX内核声音驱动程序和声音设备并将应用层102与真实的音频硬件外围设备连接。
系统100还包括向硬件层110提供输入信号的基于硬件的输入设备120。输入设备120可以包括任何数量的传感器,诸如传声器、加速度传感器等。系统100还包括从硬件层110接收输出信号的基于硬件的输出设备122。在一个示例中,基于硬件的输出设备122可以包括用于音频系统的至少一个控制器,诸如声学回声消除(AEC)、主动噪声消除系统(ANC)等。一般来讲,随着系统100从输入设备120接收输入信号并且所述输入信号通过硬件层110、内核层108、声音子系统层106和服务器层104传播时,由控制器112执行以执行此类层102、104、106和108、声音子系统层106和服务器层104的处理可能引起关于由系统100处理的数据的不同且分离的输入流的延迟问题。
应用层102一般包括控制器单元124,所述控制器单元可以彼此独立地利用信号“参考”和“测量”。例如,信号“参考”和“测量”各自包括彼此独立且单独的数据(例如,每个信号之间的数据被分组或相加在一起(即,合并在一起))。例如,控制器单元124的输入一般对应于如由传感器206所提供的信号“测量”和如图2所示的信号“参考”信号。然而,在这种情况下,系统100不采用如图2中所示的信号调节电路201。在这种情况下,系统100将信号“参考”和“测量”作为单独的数据流进行缓冲。因此,在各个层102、104、106和108处对图1中的信号“测量”和“参考”的单独缓冲(即,动态缓冲区大小修改)可能导致这些单独的信号彼此失准或不同步。虽然层110可以是基于硬件的,但该层110可能不会加剧信号“参考”和“测量”之间的延迟问题。
然而,需注意,层102或104、106、108和110以下游方式处理信号“控制器输出”或“工厂输入”上的数据流,并且此信号可能完全或部分环回以作为信号“参考”进行上游处理。此外,需注意,层102、104、106和108以上游方式处理信号“测量”和“参考”。鉴于此,信号“参考”可能基于信号“控制器输出”或“工厂输入”,这可能会加剧如上所述的不对准或不同步。一般来讲,硬件层110可以包括可编程子单元,并且一般被定义为LINUX系统中的硬件。上面提到的延迟可以使硬件层110(尽管是可编程的)是确定性的和静态的。内核层108以及层106上方的所有层可以是基于软件的层,并且归因于此类层102、104、106、108的延迟可以被认为是动态的而不是静态的(或者由于此类层102、104、106、108内的操作系统(OS)设置而是确定性的)。
一般来讲,基于硬件的输入设备120提供的数据可以是数字的。基于硬件的输入设备120可以包括任意数量的模数转换器,用于在信号“测量”上以及在某些控制器应用程序内提供数字数据,如同例如ANC也将提供信号“参考”一样,因为此处信号“参考”不会偏离信号“控制器输出”或“工厂输入”,但仍需要信号调节器电路201将信号“参考”和“测量”一起相加或分组成组合的信号“控制器输入”并将该信号转发到上游的各个层110、108、106和104进行处理(例如,参见图5)。同样,从基于硬件的输出设备122传输的数据可以是数字的。基于硬件的输出设备122可以包括任何数量的数模转换器(DAC),用于将数字数据转换回模拟数据。
图3描绘了根据一个实施方案的嵌入式自适应控制系统100’。应当认识到,系统100’可以在移动设备(未示出)中实施,所述移动设备诸如蜂窝电话(或能够进行蜂窝通信的任何其他设备)、膝上型计算机、平板电脑等。系统100’可以在移动设备的音频处理设备中实施。系统100一般包括信号调节电路201,所述信号调节电路位于硬件层110以及基于硬件的输入设备120和基于硬件的输出设备122的中间。如上所述,输入设备120可以对应于传声器或加速度传感器,其提供来自收听环境的测量的音频数据(例如,参见图2中的信号“测量”)。同样如上所述,基于硬件的输出设备122可以包括功率放大器以及任何数量的D/A转换器,所述转换器用于将信号“控制器输出”或“工厂输入”上的数字数据转换为模拟数据并将其提供给房间或收听环境中的扬声器。如上面所指出的,信号“参考”可以完全或部分地对应于信号“控制器输出”或“工厂输入”。此外,基于硬件的输出设备122还可以包括用于音频系统的至少一个控制器,诸如声学回声消除(AEC)系统、主动噪声消除(ANC)系统等。信号调节电路201可以是现场可编程门阵列(FGPA)、专用集成电路(ASIC)、数字信号处理器(DSP)等。与图2的信号调节电路201类似,如图3所示的信号调节电路201还可以包括混合器203和分组电路209,用于将信号“参考”和“测量”组合以提供组合的“控制器输入”数据流。如图3所示,组合的系统数据流可以被称为信号“组合的参考和测量信号”。如上所指出的,信号“参考”可以被完全利用,或者可以部分地偏离(或起源于)信号“控制器_输出”或“工厂_输入”,但在图2中未示出。
如上面所指出的,层102、104、106和108可以是基于软件的层,并且可以被认为是非确定性的(或时变的)。因此,当由控制器112执行时,此类层102、104、106和108一般可由于动态缓冲区大小修改和/或处理延迟而导致在信号“参考”和“测量”之间出现不对准。然而,考虑到信号调节电路201(例如,混合器203和/或分组电路209)是基于硬件的并且是时间确定的,一般将信号调节电路201应用并定位在所有非时间确定性(或时变)层102、104、106和108之前,这可以减轻信号“参考”和“测量”之间的任何不对准,因为这两个信号都经由信号调节电路201彼此组合以提供信号“组合的参考和测量”,称为信号“控制器_输入”。
例如,层102、104、106和108之间的典型动态缓冲区大小修改可以改变总的端到端延迟。然而,信号调节电路201可以使信号“参考和测量”同步,因为信号调节电路201的位置被定位超出与SW层处理有关的潜在的动态缓冲区延迟修改,信号“组合的参考和测量”的延迟可以被认为是恒定的。例如,应用于信号“组合的参考和测量”的任何延迟都可能以相同的方式影响信号“参考”和“测量”,因此相对延迟可以被认为是恒定的。当存在于信号“组合的参考和测量”中时,信号“参考”和“测量”可以对应于如图2所示的信号“参考”和“测量”。对于可以对应于如图2所示的信号“控制器_输入”的信号“组合的参考和测量”,这同样适用。信号调节电路201(经由分组电路或混合器)将信号“参考”和“测量”相互合并或组合,以将组合的系统输入(或组合的系统数据流)提供给SoC设备111,从而防止在设备操作期间在非确定性软件层102、104、106和108中的一个或多个内出现任何时间不对准。
图4描绘了根据一个实施方案的与AEC系统结合使用的自适应控制系统100”的示例。服务器层104(或“PulseAudio守护进程”)一般包括信宿层300和信源层302。自适应控制系统100”一般示出了嵌入到典型的PulseAudio守护进程框架中的独立信宿和信源处理的情况。服务器层104的PulseAudio I/O缓冲区不能被假定为是同步的。
基于硬件的输入设备120可以在如从与AEC系统结合使用的传声器或加速度传感器(未示出)所捕获的信号“测量”上提供音频数据。所捕获的音频数据可以对应于期望的语音数据,但包括在房间或收听环境中所捕获的不期望的回声数据(例如,信号“测量”上的数据)。信号调节电路201可以转发来自信号“系统_输入”的音频数据并将其提供给基于硬件的输出设备122以广播到声学路径,所述声学路径表示如图2所示的工厂204。如上所述,信号“参考”可以对应于信号“系统_输入”。在AEC的情况下,信号“系统_输入”上的音频数据可以对应于以下音乐数据,即独立于控制器操作回放但一旦在回放期间转发到系统或工厂,就被视为不期望的回声。信号调节电路201可以完全或部分地混合信号“系统_输入”作为信号“参考”,并将其与信号“测量”组合以允许控制器内发生回声消除。应当认识到,基于硬件的输出设备122可以包括功率放大器以及任何数量的D/A转换器,所述转换器用于将信号“系统_输入”上的数字数据转换为模拟数据并将其提供给房间或收听环境中的扬声器。
信号调节电路201可以实时地将信号“参考”上的数据与信号“测量”上的测量的传声器数据(即,具有不期望的回声的期望语音)分组或相加以提供信号“组合的参考和测量”或信号“控制器_输入”。信号“组合的参考和测量”或信号“控制器_输入”可以被认为对任何动态系统行为都是稳健的,因为传声器数据和参考数据之间的延迟在信号“组合的参考和测量”或信号“控制器_输入”上可以保持相对恒定。尽管输入/输出(I/O)端到端延迟可能会动态地变化,但由于传声器数据和信号“组合的参考和测量”上的参考数据之间的稳定的/恒定的相对延迟,可以保证AEC收敛。
图5描绘了根据一个实施方案的与ANC系统结合使用的自适应控制系统100”’的示例。服务器层104(或“PulseAudio守护进程”)一般包括信宿层300和信源层302。自适应控制系统100”一般示出了嵌入到典型的PulseAudio守护进程框架中的独立信宿和信源处理的情况。服务器层104的PulseAudio I/O缓冲区不能被假定为是同步的。
基于硬件的输入设备120可以在如从与ANC系统结合使用的传声器或加速度传感器(未示出)所捕获的信号“测量”上提供音频数据。所捕获的音频数据可以对应于在房间或收听环境中所捕获的不期望的噪声数据以及期望的音乐或语音数据(例如,信号“测量”上的数据)。信号调节电路201可以转发来自信号“控制器_输出”的音频数据并将其提供给基于硬件的输出设备122以广播到声学路径用于消除噪声,其如图2所示表示工厂。如上所述,信号“参考”可能不对应于信号“控制器_输出”,而是可能仅对应于由仅提供不期望的噪声的另一个传感器提供的不期望的噪声,在图2中未示出。在ANC的情况下,信号“控制器_输出”上的音频数据可以对应于抗噪数据,所述抗噪数据经由应用层102内的控制器操作向音频源进行环回,以便通过工厂204回放用于抗噪信号以消除噪声。信号调节电路201将信号“参考”与信号“测量”合并,以允许控制器经由工厂204消除噪声。应当认识到,基于硬件的输出设备122可以包括功率放大器以及任何数量的D/A转换器,所述转换器用于将信号“控制器_输出”上的数字数据转换为模拟数据并将其提供给房间或收听环境中的扬声器。
信号调节电路201可以实时地将信号“参考”上的数据与信号“测量”上的所测量的传声器数据(即,具有不期望的噪声的期望的音乐/语音)分组或相加(即,合并数据),以提供信号“组合的参考和测量”或信号“控制器_输入”。信号“组合的参考和测量”或信号“控制器_输入”可以被认为对任何动态系统行为都是稳健的,因为传声器数据和参考数据之间的延迟在信号“组合的参考和测量”或信号“控制器_输入”上可以保持相对恒定。尽管输入/输出(I/O)端到端延迟可能会动态地变化,但由于传声器数据和信号“组合的参考和测量”上的稳定的/恒定的相对延迟,因此可以保证ANC收敛。
对应于信号“测量”、“参考”、“组合的参考和测量”、“控制器_输入”、“工厂_输入”、和“控制器_输出”的数据流可以实施为时分多路复用(TDM)数据流或软件层102、104、106之间的内部线性或环形缓冲区。对于以上结合图4所述的示例,TDM数据流部分填充了输入数据(例如,来自被测传声器的音频数据)、输出数据(例如,来自信号“控制器_输出”的数据)和来自信号“参考”的数据。在结合系统100”所述的示例中,基于TDM的数据流可以分组有1至N+M个通道(或数据位),其中M对应于来自被测传声器(或来自基于硬件的输入设备120)的音频数据并且N对应于参考数据。在AEC的情况下,在AEC控制器处理了回声(理想情况下完全消除)并且语音被视为“信宿”以进行进一步应用服务之后,传声器内容可以包含期望的语音和不期望的回声。一般来讲,音乐可以用作“信源”(设备收发器音乐)。语音可以用作“信宿”,因为所述设备接收用于通信提议(例如,电话呼叫)的语音。在ANC的情况下,在ANC控制器处理了噪声(理想情况下完全消除)并且抗噪信号被视为“信宿”以用于音频“信源”应用之后,传声器内容可以包含期望的音乐/语音和不期望的噪声,因此控制器抗噪信号可以环回到设备输出并在声学路径内执行噪声消除。
虽然上面描述了示例性实施方案,但并不意味着这些实施方案描述了本发明的所有可能形式。相反,说明书中使用的词语是描述性的词语而不是限制性的词语,并且应当理解,可以在不脱离本发明的精神和范围的情况下进行各种改变。另外,各种实施方案的特征可以组合以形成本发明的其他实施方案。
Claims (20)
1.一种用于音频处理设备的嵌入式Linux系统,所述系统包括:
存储器;
片上系统(SoC)设备,所述片上系统设备包括所述存储器并被编程为至少处理指示不期望的音频内容的参考信号和指示收听环境中的测量的音频数据的测量信号;以及
第一电路,所述第一电路被编程为:
接收所述参考信号;
接收测量信号;以及
将所述参考信号与所述测量信号合并以将组合的系统输入提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
2.如权利要求1所述的系统,还包括混合器,所述混合器被编程为将所述参考信号传输到所述第一电路。
3.如权利要求1所述的系统,还包括输入传感器,所述输入传感器被编程为将所述参考信号传输到所述第一电路。
4.如权利要求1所述的系统,还包括输入传感器,所述输入传感器被编程为将所述测量信号传输到所述第一电路。
5.如权利要求4所述的系统,其中所述输入传感器是传声器或加速度传感器中的一个。
6.如权利要求1所述的系统,其中所述第一电路还被编程为将所述参考信号与所述测量信号合并,然后将所述组合的系统输入传输到所述Linux系统的所述一个或多个软件层。
7.如权利要求1所述的系统,其中:
所述一个或多个软件层中的第一软件层包括至少一个基于音频的内核,
所述至少一个基于音频的内核包括声音驱动程序;
所述一个或多个软件层中的第二软件层包括基于音频的库;并且
所述一个或多个软件层中的第三软件层包括声音服务器以管理声卡。
8.如权利要求1所述的系统,其中所述第一电路还被编程为接收所述参考信号作为多个N个基于音频的通道。
9.如权利要求8所述的系统,其中所述第一电路还被编程为接收所述测量信号作为多个M个基于音频的通道。
10.如权利要求9所述的系统,其中所述第一电路还被编程为将所述参考信号与所述测量信号合并以生成M+N个基于音频的通道从而形成时分复用(TDM)数据流。
11.一种以非暂时性计算机可读介质体现的计算机程序产品,所述计算机程序产品被编程为防止在嵌入式Linux系统的参考信号和测量信号之间出现时间不对准,所述计算机程序产品包括用于进行以下操作的指令:
接收指示不期望的音频内容的所述参考信号;
接收指示收听环境中的测量的音频数据的所述测量信号;
在片上系统(SoC)设备上的系统处处理所述参考信号和所述测量信号;以及
将所述参考信号与所述测量信号合并以将组合的系统输入提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
12.如权利要求11所述的计算机程序产品,还包括用于将所述参考信号经由混合器传输到所述第一电路的指令。
13.如权利要求11所述的计算机程序产品,还包括用于将所述参考信号经由输入传感器传输到所述第一电路的指令。
14.如权利要求11所述的计算机程序产品,还包括用于将所述测量信号传输到所述第一电路的指令。
15.如权利要求11所述的计算机程序产品,还包括用于将所述参考信号与所述测量信号合并然后将所述组合的系统输入传输到所述Linux系统的所述一个或多个软件层的指令。
16.如权利要求11所述的计算机程序产品,其中
所述一个或多个软件层中的第一软件层包括至少一个基于音频的内核,
所述至少一个基于音频的内核包括声音驱动程序;
所述一个或多个软件层中的第二软件层包括基于音频的库;并且
所述一个或多个软件层中的第三软件层包括声音服务器以管理声卡。
17.如权利要求11所述的计算机程序产品,还包括用于接收所述参考信号作为多个N个基于音频的通道的指令。
18.如权利要求17所述的计算机程序产品,还包括用于接收所述测量信号作为多个M个基于音频的通道的指令。
19.如权利要求18所述的计算机程序产品,还包括用于将所述参考信号与所述测量信号分组或相加/合并以生成M+N个基于音频的通道从而形成时分复用(TDM)数据流的指令。
20.一种以非暂时性计算机可读介质体现的计算机程序产品,所述计算机程序产品被编程为防止在嵌入式Linux系统的参考信号和测量信号之间出现时间不对准,所述计算机程序产品包括用于进行以下操作的指令:
接收指示自适应控制系统的输出数据的所述参考信号;
接收所述测量信号;
在片上系统(SoC)设备上的系统处处理所述参考信号和所述测量信号;以及
将所述参考信号与所述测量信号合并以将组合的系统输入提供给所述SoC设备,从而防止在所述参考信号和所述测量信号之间出现因所述Linux系统的一个或多个软件层引起的时间不对准。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962799338P | 2019-01-31 | 2019-01-31 | |
US62/799,338 | 2019-01-31 | ||
US16/773,474 | 2020-01-27 | ||
US16/773,474 US11443727B2 (en) | 2019-01-31 | 2020-01-27 | Synchronized multichannel loopback within embedded architectures |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111506539A true CN111506539A (zh) | 2020-08-07 |
Family
ID=69423188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010079051.3A Pending CN111506539A (zh) | 2019-01-31 | 2020-02-03 | 嵌入式架构内的同步多通道环回 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11443727B2 (zh) |
EP (1) | EP3690881A1 (zh) |
JP (1) | JP2020126237A (zh) |
KR (1) | KR20200095417A (zh) |
CN (1) | CN111506539A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006041818A1 (de) * | 2005-09-06 | 2007-11-29 | Roman Koller | Verfahren zum Synchronisieren eines Audio Signals mit Vorrichtungen |
CN102196353A (zh) * | 2010-03-12 | 2011-09-21 | 索尼公司 | 发送设备和发送方法 |
CN104010100A (zh) * | 2014-05-08 | 2014-08-27 | 深圳市汇川技术股份有限公司 | VoIP通信中的回声消除系统及方法 |
US20170213567A1 (en) * | 2014-07-31 | 2017-07-27 | Koninklijke Kpn N.V. | Noise suppression system and method |
US20170358313A1 (en) * | 2016-06-09 | 2017-12-14 | Sonos, Inc. | Dynamic Player Selection for Audio Signal Processing |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE112014003723B4 (de) * | 2013-08-12 | 2024-06-06 | Analog Devices, Inc. | Systeme und Verfahren zur Rauschunterdrückung |
WO2016049235A1 (en) * | 2014-09-23 | 2016-03-31 | UV Networks, Inc. | Application host with distributed remote input and output interfaces |
US10013995B1 (en) | 2017-05-10 | 2018-07-03 | Cirrus Logic, Inc. | Combined reference signal for acoustic echo cancellation |
-
2020
- 2020-01-27 US US16/773,474 patent/US11443727B2/en active Active
- 2020-01-30 JP JP2020013268A patent/JP2020126237A/ja active Pending
- 2020-01-31 EP EP20154913.6A patent/EP3690881A1/en active Pending
- 2020-01-31 KR KR1020200012179A patent/KR20200095417A/ko active Search and Examination
- 2020-02-03 CN CN202010079051.3A patent/CN111506539A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102006041818A1 (de) * | 2005-09-06 | 2007-11-29 | Roman Koller | Verfahren zum Synchronisieren eines Audio Signals mit Vorrichtungen |
CN102196353A (zh) * | 2010-03-12 | 2011-09-21 | 索尼公司 | 发送设备和发送方法 |
CN104010100A (zh) * | 2014-05-08 | 2014-08-27 | 深圳市汇川技术股份有限公司 | VoIP通信中的回声消除系统及方法 |
US20170213567A1 (en) * | 2014-07-31 | 2017-07-27 | Koninklijke Kpn N.V. | Noise suppression system and method |
US20170358313A1 (en) * | 2016-06-09 | 2017-12-14 | Sonos, Inc. | Dynamic Player Selection for Audio Signal Processing |
Also Published As
Publication number | Publication date |
---|---|
US11443727B2 (en) | 2022-09-13 |
JP2020126237A (ja) | 2020-08-20 |
KR20200095417A (ko) | 2020-08-10 |
US20200251085A1 (en) | 2020-08-06 |
EP3690881A1 (en) | 2020-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8200479B2 (en) | Method and system for asymmetric independent audio rendering | |
US20210098015A1 (en) | Techniques for removing non-linear echo in acoustic echo cancellers | |
JP4889810B2 (ja) | エコーキャンセラ | |
EP3698555B1 (en) | Preconditioning audio signal for 3d audio virtualization | |
JP5003531B2 (ja) | 音声会議システム | |
US10403259B2 (en) | Multi-microphone feedforward active noise cancellation | |
US9830927B2 (en) | System and method for decorrelating audio data | |
US10045122B2 (en) | Acoustic echo cancellation reference signal | |
US9554208B1 (en) | Concurrent sound source localization of multiple speakers | |
CN109391811B (zh) | 运行时延敏感音频信号处理的系统上的抖动的测量和补偿的系统和方法 | |
CN111883158B (zh) | 一种回声消除方法和装置 | |
US20060008091A1 (en) | Apparatus and method for cross-talk cancellation in a mobile device | |
JP2021184607A (ja) | オーディオデータ処理方法、装置、デバイス、記憶媒体及びプログラム | |
EP2876905B1 (en) | System and method for enhancing comprehensibility through spatialization | |
CN111506539A (zh) | 嵌入式架构内的同步多通道环回 | |
CN111933168B (zh) | 基于binder的软回路动态消回声方法及移动终端 | |
KR101402869B1 (ko) | 중앙 오디오 허브에서 오디오 신호들을 처리하기 위한 방법 및 시스템 | |
US10972520B1 (en) | Monitor mixing system that distributes real-time multichannel audio over a wireless digital network | |
KR20220042447A (ko) | 운영 체제들용 오디오 서비스 설계 | |
US7590460B2 (en) | Audio signal processor | |
US20210064326A1 (en) | Audio processing apparatus, operation method of audio processing apparatus, and audio processing system | |
WO2023181747A1 (ja) | 音源システム、方法及びプログラム | |
JP5024010B2 (ja) | 音声会議用システム | |
US10796708B2 (en) | Method for eliminating sound and electronic device performing the same | |
GB2556663A (en) | Method and apparatus for acoustic crosstalk cancellation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |