COMPUTER-IMPLEMENTED PROCEDURE
The method addresses robustness issues in beamforming by converting asymmetric white noise gain areas to symmetric ones using a whitening function, enhancing audio signal processing through improved noise suppression and signal clarity.
Patent Information
- Application Number
- DE102023130510
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2023-09-15
- Filing Date
- 2023-11-06
- Publication Date
- 2025-01-02
- Estimated Expiration
- 2043-11-06
AI Technical Summary
Existing beamforming techniques struggle with robustness against model errors and require rigorous searches to enhance desired speech signals while suppressing background noise and unwanted signals.
A computer-implemented method that involves receiving audio signals, identifying design specifications, generating asymmetric white noise gain areas, converting them to symmetric areas using a whitening function, and filtering signals using extreme points and non-binary values to improve audio signal processing.
Enhances the filtering of audio signals by effectively reducing unwanted noise and improving the clarity of desired speech signals, achieving better noise suppression and signal separation.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[0001] The present disclosure relates generally to a computer-implemented method according to the preamble of claim 1, as is essentially known from US 9 591 404 B1.
[0002] Beamforming techniques are typically used to enhance desired speech signals. Typical beamforming techniques utilize the spatial diversity of microphones to enhance the voice of the desired speaker. However, background noise and other unwanted signals can interfere with the desired speech signals. Diagonal loading techniques are typically applied to a beamforming filter to increase the filter's robustness to model errors. The use of diagonal loading techniques often results in a rigorous search to achieve the desired result. SUMMARY
[0003] According to the invention, a computer-implemented method is presented which is characterized by the features of claim 1.
[0004] The computer-implemented method causes the computing hardware to perform operations that include receiving a plurality of audio signals from a sensor array. The plurality of audio signals includes a target audio signal and interference audio signals. The computing hardware then identifies a design constraint based on the various audio signals. The design constraint includes a pass condition corresponding to the target audio signal and a null condition corresponding to the interference audio signal. Next, the computing hardware generates an asymmetric white noise gain surface from the audio signals in response to a design filter weight exceeding a filter weight maximum and converts the asymmetric white noise gain surface to a symmetric white noise gain surface using a whitening function.The data processing hardware then transforms the extremum point from the symmetric white noise gain surface to the asymmetric white noise gain surface, updates the design constraint with the extremum point, and filters the multiple audio signals using the extremum point and identified non-binary values.
[0005] In some examples, the method may include designing an audio filter using the updated design constraint. When designing the audio filter, the filter weight may be reduced and the reduced value may be compared to the filter weight maximum. The method may also include performing the whitening function using Cholesky decomposition. In some examples, the method may define a cost function and derive a maximum point through a closed-form mathematical equation using the defined cost function. Identifying the extreme point may include comparing the extreme point to the maximum point and identifying a correlation between the extreme point and the maximum point. The extreme point may be defined by a maximum distance between a first point associated with the pass condition and a second point associated with the null condition.
[0006] Further presented is an audio filtering system for a vehicle that includes computing hardware and memory hardware that communicates with the computing hardware. The memory hardware stores instructions that, when executed on the computing hardware, cause the computing hardware to perform operations. The computing hardware receives multiple audio signals from a sensor array. The computing hardware then identifies a design constraint based on the various audio signals. The computing hardware generates an asymmetric white noise gain surface in response to a design filter weight exceeding a filter weight maximum and converts the asymmetric white noise gain surface to a symmetric white noise gain surface using a whitening function.The data processing hardware then identifies an extreme point on the symmetric white noise gain surface for the design constraint and transforms the extreme point from the symmetric white noise gain surface to the asymmetric white noise gain surface. Finally, the data processing hardware updates the design constraint with the extreme point and filters the multiple audio signals using the extreme point.
[0007] In some examples, the computing hardware may design an audio filter using the design constraint. The computing hardware may design the audio filter by reducing a value of filter weights of the designed audio filter and comparing the reduced value to the designed constraint. In some configurations, the computing hardware determines whether the extreme point coincides with a maximum point. Optionally, upon identifying the extreme point, the computing hardware may define a cost function. The computing hardware may then derive the maximum point through a closed-form mathematical equation using the defined cost function. The maximum point may be defined by a maximum distance between a first point tied to a pass condition of the design constraint and a second point tied to a zero condition of the design constraint.
[0008] In other aspects, a computer-implemented method executed by the computing hardware causes the computing hardware to perform operations that include receiving a plurality of audio signals from a sensor array. The plurality of audio signals includes a target audio signal and interference audio signals. The computing hardware then identifies a design constraint based on the various audio signals. The desired condition includes a pass condition corresponding to the target audio signal and a null condition corresponding to the interference audio signals. The computing hardware then compares a design filter weight of the design constraint to a filter weight maximum, designs an audio filter using the desired condition, and filters the plurality of audio signals using the designed audio filter.
[0009] In some examples, the computing hardware may determine, when designing the audio filter, that the design filter weight exceeds the filter weight maximum and subsequently generate an asymmetric white noise gain surface using the designed audio filter. The computing hardware may then transform the asymmetric white noise gain surface into a symmetric white noise gain surface using a whitening function. The computing hardware may then identify an extreme point on the symmetric white noise gain surface for the desired condition. Optionally, the computing hardware may transform the extreme point from the symmetric white noise gain surface to the asymmetric white noise gain surface and update the design constraint with the extreme point.In some configurations, the data processing hardware may use the extreme point when filtering the different audio signals. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The drawings described here are for illustrative purposes only and are intended to illustrate selected configurations. Fig. 1 is a schematic view of a vehicle having an audio filtering system according to the present disclosure; Fig. 2 is a partial perspective view of a vehicle interior with a sensor assembly according to the present disclosure; Fig. 3 is a functional block diagram of a vehicle controller having an audio filtering system according to the present disclosure; Fig. 4 is a schematic example of an input signal, a conventional linear output signal with constrained minimum variance, and a filtered audio output signal according to the present disclosure; Fig. 5 is an exemplary flow diagram for an audio filtering system according to the present disclosure; and Fig. 6 is an example flowchart for the audio filtering system of Fig. 5 according to the present disclosure.
[0011] Corresponding reference numbers indicate corresponding parts in the drawings. DETAILED DESCRIPTION
[0012] In this application, including the definitions below, the term "module" may be replaced by the term "circuit". The term "module" may refer to, be part of, or include: an application-specific integrated circuit (ASIC); a digital, analog, or mixed analog / digital discrete circuit; a digital, analog, or mixed analog / digital integrated circuit; a combinational logic circuit; a field-programmable gate array (FPGA); a processor (shared, dedicated, or group) executing code; memory (shared, dedicated, or group) storing code executed by a processor; other suitable hardware components providing the described functionality; or a combination of some or all of the above, e.g., in a system-on-chip.
[0013] The term "code" as used above can include software, firmware and / or microcode and can refer to programs, routines, functions, classes, and / or objects. The term "shared processor" includes a single processor that executes some or all of the code from multiple modules. The term "group processor" includes a processor that, in combination with other processors, executes some or all of the code from one or more modules. The term "shared memory" includes a single memory that stores some or all of the code from multiple modules. The term "group memory" includes memory that, in combination with other memory, stores some or all of the code from one or more modules. The term "memory" can be a subset of the term "computer-readable medium".The term "computer-readable medium" does not encompass transitory electrical and electromagnetic signals propagating through a medium and can therefore be considered tangible and non-transitory storage. Non-limiting examples of non-transitory storage include tangible, computer-readable medium, including non-volatile memory, magnetic storage, and optical storage.
[0014] The devices and methods described in this application may be implemented partially or entirely by one or more computer programs executed by one or more processors. The computer programs include processor-executable instructions stored on at least one non-transitory, tangible, computer-readable medium. The computer programs may also include and / or access stored data.
[0015] A software application (i.e., a software resource) may refer to computer software that causes a computing device to perform a task. In some examples, a software application may be referred to as an "application," "app," or "program." Example applications include, but are not limited to, system diagnostic applications, system management applications, system maintenance applications, word processing applications, spreadsheet applications, messaging applications, media streaming applications, social networking applications, and gaming applications.
[0016] Non-transitory memory can be physical devices used to temporarily or permanently store programs (e.g., instruction sequences) or data (e.g., program state information) for use by a computing device. Non-transitory memory can be volatile and / or non-volatile addressable semiconductor memory. Examples of non-volatile memory include flash memory and read-only memory (ROM) / programmable read-only memory (PROM) / erasable programmable read-only memory (EPROM) / electronically erasable programmable read-only memory (EEPROM) (e.g., typically used for firmware such as boot programs). Examples of volatile memory include random-access memory (RAM), dynamic random-access memory (DRAM), static random-access memory (SRAM), phase-change memory (PCM), and floppy disks or tapes.
[0017] These computer programs (also referred to as programs, software, software applications, or code) contain machine instructions for a programmable processor and may be implemented in a procedural and / or object-oriented high-level language and / or assembly / machine language. As used herein, the terms "machine-readable medium" and "computer-readable medium" refer to any computer program product, non-transitory computer-readable medium, apparatus, and / or device (e.g., magnetic disks, optical disks, memory, programmable logic devices (PLDs)) designed to deliver machine instructions and / or data to a programmable processor, including a machine-readable medium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to convey machine instructions and / or data to a programmable processor.
[0018] Various implementations of the systems and techniques described herein may be realized in digital electronic and / or optical circuits, integrated circuits, purpose-built ASICs (application-specific integrated circuits), computer hardware, firmware, software, and / or combinations thereof. These various implementations may include implementation in one or more computer programs executable and / or interpretable on a programmable system comprising at least one programmable processor, which may be used for special or general purposes and is coupled to receive data and instructions from and transmit data and instructions to a storage system, and at least one input device and at least one output device.
[0019] The processes and logic flows described in this specification may be performed by one or more programmable processors, also known as data processing hardware, which run one or more computer programs to perform functions by responding to input data and generating output. The processes and logic flows may also be performed by special-purpose logic circuits, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit). Processors suitable for executing a computer program include, for example, both general-purpose and special-purpose microprocessors, as well as one or more processors of any type of digital computer. Generally, a processor receives instructions and data from read-only memory or random-access memory, or both.The essential elements of a computer are a processor for executing instructions, and one or more storage devices for storing instructions and data. Generally, a computer will also include, or be operatively connected to, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical, or optical disks, or to receive or transfer data to or from them. However, a computer is not required to have such devices. Computer-readable media suitable for storing computer program instructions and data includes all forms of non-volatile memory, media, and storage devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable media; magneto-optical disks; and CD-ROM and DVD-ROM disks.The processor and memory can be supplemented by or integrated into special logic circuits.
[0020] To enable interaction with a user, one or more aspects of the disclosure may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube), LCD (liquid crystal display) monitor, or a touchscreen for displaying information to the user, and optionally a keyboard and pointing device, e.g., a mouse or trackball, with which the user can provide input to the computer. Other types of devices may also be used to interact with the user; for example, the feedback to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user may be received in any form, including auditory, voice, or tactile input.In addition, a computer can interact with a user by sending and receiving documents to and from a device used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
[0021] In the Fig. 1-6 illustrates an audio filtering system 10 that may be installed in a vehicle 100. In some examples, the audio filtering system 10 may be installed in any practical location within the vehicle 100 where audio filtering may be beneficial. For example, the audio filtering system 10 may be integrated into both in-vehicle and off-vehicle audio capture settings. The audio filtering system 10 is described herein with reference to the vehicle 100 to exemplify its function. However, the audio filtering system 10 may also be used in areas other than automotive.
[0022] The vehicle 100 may be equipped with a sensor assembly 102 configured to detect audio signals 12 within the vehicle 100. The sensor assembly 102 may include, among other things, a microphone assembly that receives the audio signals 12 and forwards them to the audio filtering system 10. The audio filtering system 10 includes computing hardware 14 and memory hardware 16 in communication with the computing hardware 14. The computing hardware 14 is configured to receive the audio signals 12. Generally, the audio filtering system 10 is contemplated to include a computer-implemented method 18 executed by the computing hardware 14 that causes the computing hardware 14 to perform various operations described herein.Additionally or alternatively, the storage hardware 16 may store the computer-implemented method 18 as an instruction that, when executed on the computing hardware 14, causes the computing hardware 14 to perform the operations described herein.
[0023] As in Fig. 1-3, the audio filtering system 10 may be configured as part of a vehicle computer or controller 104. For example, the sensor assembly 102 receives the audio signals 12 and sends them to the vehicle controller 104. The vehicle controller 104 may enable the audio filtering system 10 in response to receiving the audio signals 12. For example, the vehicle controller 104 may execute the computer-implemented method 18 of the audio filtering system 10. The audio filtering system 10 is configured to filter the audio signals 12 and identify a speaker. The speaker is typically an occupant 106 of the vehicle 100. It is contemplated that the audio filtering system 10 may distinguish between multiple occupants 106 speaking simultaneously using the computer-implemented method 18 described herein.
[0024] The audio signals 12 may include one or more target audio signals 12a and one or more interference audio signals 12b. The audio filtering system 10 is configured to filter out the interference audio signals 12b and amplify or otherwise enhance the target audio signals 12a. The resulting signal is a filtered audio signal 12c containing minimal to no interference audio signals 12b. The filtered audio signal 12c may be communicated with a third-party processor in communication with the vehicle controller 104 and configured to receive the filtered audio signals 12c.
[0025] Fig. For example, Figure 2 shows a first occupant 106a and a second occupant 106b simultaneously transmitting audio signals 12 to the sensor assembly 102 in an interior 108 of the vehicle 100. Although the noise audio signals 12b are illustrated as originating from the second occupant 106b, other sounds, such as interior or exterior noise, road noise, and wind, may also be the source of the noise audio signals 12b. In the illustrated example, the sensor assembly 102 is configured to receive each audio signal 12a, 12b from the respective occupants 106a, 106b, which are then transmitted to the audio filtering system 10. Although the sensor assembly 102 is illustrated in the front portion of the interior 108, the sensor assembly 102 may be positioned at any practical location within the interior 108 to capture the audio signals 12.The sensor assembly 102 may be positioned at locations such as, but not limited to, a rear portion, side portions, and a central portion of the interior 108.
[0026] Fig. 4 shows an example of the implementation of the audio filter system 10 (cf. Fig. 3 - 6). The method and process of executing the audio filter system 10 are described in more detail below. In Fig. 4, the audio signals 12 are represented by a series of signals 18-22. An input signal 18 represents the audio signals 12 received by the audio filtering system 10. The input signal 18 encompasses the entire range of sources detected by the sensor array 102 prior to filtering by the audio filtering system 10. Thus, as shown, the input signal 18 extends over a desired output range 24 and a noise output range 26.
[0027] A conventional linearly constrained minimum variance (LCMV) output signal 20 is shown below the input signal 18. The conventional LCMV output signal 20 is generated using a conventional LCMV filter 28, which may be integrated into the vehicle controller 104. For example, the conventional LCMV filter 28 may be stored as part of the audio filtering system 10. The audio filtering system 10 may include the conventional LCMV filter 28 and a designed audio filter 30, which is described below. Both the conventional LCMV filter 28 and the designed audio filter 30 are configured to filter the audio signals 12 received by the audio filtering system 10 to reduce the noise audio signals 12b and maximize the target audio signals 12a. The conventional LCMV filter 28 operates with a binary function.For example, the value constraints for the conventional LCMV filter 28 are set to one (1) for the target sources and zero (0) for the interference sources. In comparison, the audio filter system 10 described here is configured to use non-binary values in a constraint setting.
[0028] It is conceivable that the interfering audio signals 12b within the interfering output range 26 and the target audio signal 12a within the desired output range 24 are or become more clearly defined. However, the received audio signals 12 extend into both the desired output range 24 and the interfering output range 26, so that the interfering audio signals 12b can be mixed with the target audio signal 12a within the desired output range 24. The designed audio filter 30 is configured to selectively filter the audio signals 12 to remove or reduce the target audio signal 12a. Fig. Figure 4 shows the result of the designed audio filter 30 most clearly in terms of reducing the noise audio signals 12b within the noise output region 26, compared to the input signal 18 and in particular the conventional LCMV output signal 20.
[0029] As in the example of Fig. 4, the conventional LCMV filter 28 outputs the conventional LCMV output signal 20, which has a reduced output in the noise region 26 compared to the input signal 18. Thus, the input signal 18 has increased power in the noise output region 26 compared to the conventional LCMV output signal 20, which generally corresponds to the presence of the noise audio signals 12b. A lower output power within the noise region 26 is achieved by the audio filtering system 10 identifying the target audio signal 12a and filtering out all potential noise audio signals 12b. Thus, the conventional LCMV filter 28 can produce a reduced conventional LCMV output signal 20 within the noise region 26 compared to the input signal 18.
[0030] In comparison, the designed audio filter 30 further reduces the audio signals 12 within the interference region 24. Fig. 4 shows that a filtered audio signal 22 provided by the designed audio filter 30 is generally reduced across both the desired output range 24 and the noise output range 26. The reduction in the filtered audio frequency 22 in the desired output range 24 compared to the input signal 18 and the conventional LCMV output signal 20 is the result of the improved noise filtering by the designed audio filter 30. The designed audio filter 30 is configured to filter the noise audio signals 12b across both the desired output range 24 and the noise output range 26. The reduction of the noise audio signals 12b by the designed audio filter 30 has the advantage of producing a clear filtered audio signal 22 with minimal noise compared to the unfiltered input signal 18 and the conventional LCMV output signal 20.
[0031] As in Fig. 3-6, the vehicle controller 104 is configured to design the designed audio filter 30 using a series of mathematical methods. As previously mentioned, the data processing hardware 14 includes memory hardware 16 that can store a design constraint 34 that can be used by the data processing hardware 14 in designing the audio filter 30. The design constraint 34 includes a pass condition 36 and a zero condition 38 configured as initial filters for the designed audio filter 30. The pass condition 36 is used by the data processing hardware 14 to determine which sources of the audio signals 12 should pass through the designed audio filter 30, and the zero condition 38 determines which sources of the audio signals 12 should be filtered out or canceled before the filtered audio signal 12c is output.
[0032] The design constraint 34 may be a soft gain constraint, denoted as (g) in the following equation. The data processing hardware 14 may also use a spatial constraint matrix C based on the audio signals 12 received from the sensor array 102. The data processing hardware 14 may configure the audio filter 30 using the design constraint 34 and the spatial constraint matrix (C) in combination with a spatial noise correlation matrix (Φ V ). An example equation for the design of the audio filter 30, represented by (w 30 ), is: w30=ΦV−1C[CHΦV−1C]−1g
[0033] The design specification 34 includes a design filter weight 42, and the storage hardware 16 may include a predetermined maximum white noise gain (WNG) filter weight 44 that can be used in comparison to the design filter weight 42. The data processing hardware 14 is configured to determine values for the pass condition 36 and the null condition 38 that can be used to determine the filter weight 42. It is advantageous if the difference between the respective values of the pass condition 36 and the null condition 38 is maximum, since a maximum difference corresponds to minimal distortion of the target audio signal 12a and maximum attenuation of the interfering audio signals 12b.
[0034] The design constraint 34 may be defined as a white noise gain (WNG) condition. The computing hardware 14 may compare the design filter weight 42 to a WNG filter weight maximum 44 to determine if the design filter weight 42 is less than the WNG filter weight maximum 44. If the filter weight 42 is less than the WNG filter weight maximum 44, the computing hardware 14 may proceed with using the design constraint 34 in designing the audio filter 30. In some examples, the design filter weight 42 may exceed the WNG filter weight maximum 44, allowing the computing hardware 14 to perform further steps to design the audio filter 30. In response to exceeding the WNG filter weight maximum 44, the design filter weight 42 may be reduced as described below to achieve a value below the WNG filter weight maximum 44.
[0035] As in Fig. 3-6, the data processing hardware 14 may generate an asymmetric WNG surface 46 when the design filter weight 42 exceeds the WNG filter weight maximum 44. The asymmetric WNG surface 46 is defined at a constraint plane and includes different focal lengths for each axis on which the asymmetric WNG surface 46 is defined. In some examples, the asymmetric WNG surface 46 may be an elliptical surface that may be defined by a white noise (WNG) gain 48, which may be an expression of the above example equation. The WNG 48 may be defined as a reflection of the sensitivity of the sensor array 102 to random variations in the environment and / or the components of the sensor array 102, including the positions and responsiveness of the sensors.In the following example equation, the value 0 corresponds to the interference audio signals 12b to be attenuated, and the value 1 corresponds to the target audio signal 12a to be amplified. An example equation for the WNG 48, in which the locations of the audio signals 12 are represented by (h), is:. WNG−1=pHhHhp||h0||2||h1||2sin2(θ) where h = [−h0 h1],p=[g1 g0]T, and sin2(θ)=(1−|h0Hh1|2||h0||2||h1||2)
[0036] In further defining the audio filter 30, the asymmetric WNG surface 46 is converted by the data processing hardware 14 into a symmetric WNG surface 50. In some examples, the symmetric WNG surface 50 is a circular WNG surface. Converting the asymmetric WNG surface 46 may, as mentioned above, involve reducing the value of the filter weight 42, since the data processing hardware 14 can search the symmetric WNG surface 50 more efficiently than the asymmetric WNG surface 46. The symmetric WNG surface 50 may advantageously assist the data processing hardware 14 in searching for a non-binary value 52 for the design constraint 34. For example, the data processing hardware 14 can detect binary values, such as 1 and 0, along the asymmetric WNG surface 46, while the data processing hardware 14 is configured to detect the non-binary values 52 on the symmetric WNG surface 50.The non-binary values 52 may include, but are not limited to, values such as a non-binary value of 0.9 for the target audio signal 12a and a non-binary value of 0.2 for the interference audio signals 12b. Other non-binary values 52 may be used to identify the various audio signals 12. An exemplary equation for the symmetric WNG surface 50 is: . WNG−1=gpHΨHhHhΨgp||h0||2||h1||2 sin2(θ) where g p = Ψ -1 p and Ψ as the inverse square root of h H h can be defined, e.g. Ψ H h H hΨ = I
[0037] Using the above equation, the symmetric WNG surface 50 can be defined to facilitate the search for non-binary values 52. The non-binary values 52 advantageously assist the data processing hardware 14 in the design of the audio filter 30 because non-binary values 52 provide control over the noise over the WNG value. The non-binary values 52 provide improved refinement in the design of the audio filter 30. For example, the non-binary values 52 can be used to define the filtered audio signal 12c with the designed audio filter 30. Thus, the non-binary values 52 can assist in the design of the audio filter 30 to improve the use of the audio filter 30 in small or otherwise confined spaces.For example, the designed audio filter 30 may exhibit improved spatial attenuation by extracting the desired audio signals 12 from a localized area and attenuating the interfering audio signals 12 in the surrounding areas. The improved spatial attenuation may be achieved by identifying the non-binary values 52. Furthermore, a uniform WNG curve may be defined on the whitened, symmetric WNG surface 50. An exemplary equation for the uniform WNG curve, where (r) controls the WNG level and (ϕ) sets the gain values, is: gp=[r sin(ϕ) r cos(ϕ)]T where r is calculated as r=WNG||h0||2||h1||2 sin2(θ) The original gain level (p) can be calculated from (g p ) by multiplying Ψ with (g p)). The asymmetric WNG surface 46 is converted into the symmetric WNG surface 50 using a brightening function 54. The brightening function 54 is a transformation of random variables with a known covariance matrix into a set of new variables whose covariance is an identity matrix. The brightening function 54 may include, but is not limited to, a Cholesky decomposition. In the Cholesky decomposition, Ψ is an upper triangular matrix with Ψ(2,2), a real number. Given this characteristic, a desired source gain (g0) can be expressed by an exemplary equation: g0 = Ψ(2,2)g p(2). The desired source gain (g0) is also a real number, which means that the desired source gain (g0) is free of phase distortion. As a result, the brightening function 54 is advantageously free of phase distortion relative to the target audio signal 12a. Thus, the audio signals 12 can be filtered without affecting the phase of the filtered audio signal 12c.
[0038] With further reference to Fig. 3-6, the data processing hardware 14 may execute a series of equations to search the symmetric WNG surface 50 for an extremum point 56. The extremum point 56 may be defined by a maximum distance between a first point associated with the pass condition 36 and a second point associated with the null condition 38. Ultimately, the extremum point 56 corresponds to a maximum point 58 that defines the maximum separation between the desired audio signal 12a and the unwanted audio signals 12b below a particular WNG value. The audio filtering system 10 may, for example, determine a correlation between the extremum point and the maximum point 58. Identifying the extremum point 56 involves defining a cost function 60 that identifies the maximum point 58. The maximum point 58 may be derived by a closed-form mathematical equation using the defined cost function 60.An example of a cost function equation used to determine maximum separation is:. f(ϕ)=|g0|2|g1|2=|Ψ(2,2)|2 cos2(ϕ)|Ψ(1,1)|2 sin2(ϕ)+|Ψ(1,2)|2 cos2(ϕ)+Re{Ψ(1,1)Ψ(1,2)}sin(2ϕ) where gp=[r sin(ϕ) r cos(ϕ)]T and p=(Ψgp)∗
[0039] The extreme point 56 may be a function of the above equation and may be given by the following exemplary equation: ϕext=tan−1(−Re{Ψ(1,1)Ψ(1,2)}|Ψ(1,1)|2)
[0040] The data processing hardware 14 can confirm the identified extreme point 56 with the maximum point 58 to determine whether the extreme point 56 coincides with the maximum point 58. An example equation for verifying the maximum point 58 is: Re{Ψ(1,1)Ψ(1,2)} sin(2ϕ ext ) > |Ψ(1,1)| 2 cos(2ϕ ext). If the extreme point 56 does not coincide with the maximum point 58, the data processing hardware 14 may add a value equal to pi (π) divided by two (2) to reach the maximum point 58.
[0041] Once the extreme point 56 is identified, the symmetric WNG surface 50 can be transformed back into the asymmetric WNG surface 46. The extreme point 56, which corresponds to the maximum point 58, can be transformed from the symmetric WNG surface 50 to the asymmetric WNG surface 46. The data processing hardware 14 uses the extreme point 56 in a final step of designing the audio filter 30. For example, the audio filter system 10 can define a new design specification 34 based on the identified extreme point 56. The new design specification 34 is used by the data processing hardware 14 to design the audio filter 30. For example, the audio filter 30 is updated with the identified extreme point 56. Once the audio filter 30 is designed, the extreme point 56 of the audio filter 30 can be used to filter the audio signal 12.
[0042] With particular reference to Fig. 4 and Fig. 5, flowcharts of a summary of an exemplary process for implementing the audio filtering system 10 described herein are provided. In a first step 200, the audio signals 12 are received by the audio filtering system 10. The computing hardware 14 designs the audio filter 30 at 202 in response to receiving the audio signals 12. The computing hardware 14 may then compare the design filter weight 42 to the WNG filter weight maximum 44 at 204. If the design filter weight 42 does not exceed the WNG filter weight maximum 44, the audio filtering system 10 may proceed with using the designed audio filter 30 at 206.
[0043] If the design filter weight 42 exceeds the WNG filter weight 44, the data processing hardware 14 may perform the process of identifying the extreme point 56 at 208, as described above. The data processing hardware also derives the maximum point 58 at 210, using in part the cost function 60. The data processing hardware 14 may then determine at 212 whether the extreme point 56 corresponds to the maximum point 58. If the extreme point 56 corresponds to the maximum point 58, the data processing hardware 14 may calculate the design filter weight 42 at 214. If the extreme point 56 does not correspond to the maximum point 58, the data processing hardware 14 adds the value of pi divided by 2 at 216 and proceeds to step 210. Based on the calculated design filter weight 42, the data processing hardware 14 can generate new design specifications 34 at 218.Finally, in step 220, the data processing hardware 14 may redesign the audio filter 30 using the new design constraints 34 from the extreme point 56.
[0044] As in the Fig.1-6, the audio signals 12 generally include a single desired audio signal 12a and one or more spurious audio signals 12b. The spurious audio signals 12b are filtered by the designed audio filter 30 to attenuate background or other noise that might otherwise interfere with the output of the target audio signal 12a. The process of designing the audio filter 30 using the extreme point 56 and the design constraints 34 thus has the advantage of attenuating the spurious audio signals 12b. Furthermore, the use of non-binary values 52 assists in softening the design constraints 34 by identifying specific values that can then be identified by the designed audio filter 30 beyond the binary.
Claims
[1] A computer-implemented method executed by data processing hardware (14) and causing the data processing hardware (14) to perform operations comprising: Receiving a plurality of audio signals (12) from a sensor arrangement (102), the plurality of audio signals (12) comprising a target audio signal (12a) and interference audio signals (12b); Identifying a design constraint (34) based on the plurality of audio signals (12), the design constraint (34) including a pass condition (36) corresponding to the target audio signal (12a) and a null condition (38) corresponding to the interference audio signals (12b); Comparing a design filter weight (42) of the design specification (34) with a filter weight maximum (44); Designing an audio filter (30) using the desired condition; and Filtering the plurality of audio signals (12) using the designed audio filter (30); characterized by , that designing the audio filter (30) comprises determining the design filter weight (42) that exceeds the filter weight maximum (44) and, in response thereto, generating an asymmetric surface (46) of white noise gain using the designed audio filter (30); wherein designing the audio filter (30) further includes converting the asymmetric white noise gain surface (46) into a symmetric white noise gain surface (50) using a whitening function (54) and identifying an extreme point (56) on the symmetric white noise gain surface (50) for the desired condition; and where: (i) designing the audio filter (30) further comprises transforming the extreme point (56) from the symmetric white noise gain surface (50) to the asymmetric white noise gain surface (46) and updating the design specification (34) with the extreme point (56); or (ii) filtering the plurality of audio signals (12) includes using the extreme point (56). [2] The method of claim 1, wherein identifying the extreme point (56) comprises defining a cost function (60) and deriving a maximum point (58) by a closed mathematical equation using the defined cost function (60). [3] The method of claim 2, wherein identifying the extreme point (56) comprises comparing the extreme point (56) with the maximum point (58) and identifying a correlation between the extreme point (56) and the maximum point (58). [4] The method of claim 1, wherein designing the audio filter (30) comprises reducing the design filter weight (42) and comparing the reduced value to the filter weight maximum (44). [5] The method of claim 1, further comprising generating an asymmetric white noise gain surface (46) from the audio signals (12) in response to the design filter weight (42) exceeding the filter weight maximum (44), and converting the asymmetric white noise gain surface (46) to a symmetric white noise gain surface (50) by performing a whitening function (54) using Cholesky decomposition.
Citation Information
Patent Citations
Beamformer design using constrained convex optimization in three-dimensional space
US9591404B1
