Index Scheme on Filter Parameters
The use of shelving filters and lookup tables in XR systems addresses computational inefficiencies, enhancing the immersive experience by aligning audio signals with user expectations in dynamic environments.
Patent Information
- Application Number
- JP2020566287
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2018-05-30
- Filing Date
- 2019-05-30
- Publication Date
- 2026-02-09
- Estimated Expiration
- 2039-05-30
AI Technical Summary
Existing audio processing systems in virtual reality and augmented reality environments struggle to efficiently control the magnitude response of audio signals, leading to suboptimal immersive experiences due to high computational demands and resource requirements, especially in dynamic environments.
A system and method utilizing a cascade of shelving filters with a lookup table and indexing scheme to efficiently process audio signals, allowing for rapid retrieval of filter data without continuous recalculations, by determining and storing gain values for prototype filters.
This approach reduces computational overhead and enhances the immersive experience by ensuring audio signals align with user expectations in real environments, providing efficient and realistic audio presentation in XR systems.
Smart Images

Figure 0007812195000023 
Figure 0007812195000024 
Figure 0007812195000025
Abstract
Description
[Technical Field]
[0001] (CROSS-REFERENCE TO RELATED APPLICATIONS) This application claims the benefit of U.S. Provisional Patent Application No. 62 / 678,259, filed May 30, 2018, which is incorporated herein by reference in its entirety.
[0002] The present disclosure relates generally to systems and methods for capturing, processing, and playing back audio signals, and more particularly to systems and methods for capturing, processing, and playing back audio signals for presentation to a user in a virtual or augmented reality system. [Background technology]
[0003] Virtual environments are ubiquitous in computing environments, finding use in video games (where a virtual environment may represent a game world), maps (where a virtual environment may represent a terrain to be navigated), simulations (where a virtual environment may simulate a real environment), digital storytelling (where virtual characters may interact with one another within a virtual environment), and many other applications. Modern computer users are generally comfortable perceiving and interacting with virtual environments. However, a user's experience with a virtual environment may be limited by the technology for presenting the virtual environment. For example, traditional displays (e.g., 2D display screens) and audio systems (e.g., fixed speakers) may be unable to realize a virtual environment in a way that creates a compelling, realistic, and immersive experience.
[0004] Virtual reality (“VR”), augmented reality (“AR”), mixed reality (“MR”), and related technologies (collectively, “XR”) share the ability to present to a user of an XR system sensory information corresponding to a virtual environment represented by data in a computer system. Such systems can provide a uniquely enhanced sense of immersion and presence by combining virtual visual and audio cues with real sights and sounds. Therefore, it may be desirable to present digital sounds to a user of an XR system so that the sounds appear to occur naturally in the user's real environment and consistent with the sounds the user expects. Generally speaking, users expect virtual sounds to take on the acoustic properties of the real environment in which they are heard. For example, a user of an XR system in a large concert hall would expect the XR system's virtual sounds to have a tonal quality similar to a large cavern; conversely, a user in a small apartment would expect the sounds to be more attenuated, close, and immediate. In addition, users expect the virtual sounds to be presented without delay.
[0005] To meet these expectations, audio signals may need to be processed for precise magnitude response control. One exemplary mechanism used for audio signal processing is a proportional parametric equalizer (PPE). A PPE can provide continuous control over the parameters of an audio signal and over the frequency content of an audio signal. A PPE can be an efficient tool for precise magnitude response control within defined constraints. More specifically, a cascade of shelving filters can be used to create a multi-band (e.g., three-band) parametric equalizer or tone control with little processing overhead. However, significant computing cycles and resources may be required to continuously control such filters in an environment as dynamic as AR or dynamic spatialized audio capture.
[0006] One method for determining the magnitude response of a prototype filter can be to apply the filter to a test signal and measure the output signal. Such an approach can be prohibitive in terms of computing resources. Another method can be to pre-calculate the filter's response and store it, for example, in a look-up table. At runtime, data corresponding to frequencies of interest can be fetched from memory. While fetching information from memory can require very low computing costs, such costs add computer overhead each time new filter data is needed. Therefore, magnitude response control for filter signals with increased efficiency is desired. Summary of the Invention [Means for solving the problem]
[0007] A system and method are disclosed for processing an audio signal using a cascade of shelving filters to create a three-band parametric equalizer. In some embodiments, gain values derived from prototype filter parameters can be measured, and then a lookup table storing known gain values for the designated filter can be used. The lookup table is accessed by a computing device, such as a head-mounted AR display device. The magnitude response of this designated or prototype filter is also stored in the lookup table. The magnitude response is retrieved and then applied and interpolated as needed for the particular combination of control frequencies used by the user.
[0008] In some embodiments, an indexing scheme involving a lookup table is used. The indexing scheme allows for retrieval of filter data without the need to search for a frequency of interest. The indexing scheme can be based on a prototype filter and its associated measured gain value. In some examples, the magnitude response of the filter may be required to calculate the filter parameters. An approximate response can be derived from the magnitude response of the corresponding prototype filter. The response of the prototype filter can then be modified to match the desired filter parameters. Data for the prototype's control frequency is indexed in the lookup table, and different values of the control frequency are offset and easy to retrieve. The present invention provides, for example, the following items. (Item 1) 1. A method for processing an audio signal, the method comprising: determining magnitude response information of a prototype filter, the magnitude response information including a plurality of gain values, at least one of the plurality of gain values including a first gain corresponding to a first frequency; storing magnitude response information of the prototype filter; Retrieving magnitude response information of the prototype filter at the first frequency; calculating gains for a plurality of control frequencies based on the retrieved magnitude response information of the prototype filter at the first frequency; applying the calculated gain to the audio signal; A method comprising: (Item 2) Determining the magnitude response information of the prototype filter comprises: determining magnitude response information of a high shelving equalizer; scaling the magnitude response information of the high shelving equalizer; shifting the scaled magnitude response information of the high shelving equalizer along a frequency axis by a predetermined frequency amount, the shifted scaled magnitude response being the magnitude response information of the prototype filter; The method according to item 1, comprising: (Item 3) 3. The method of claim 2, wherein the predetermined frequency amount is equal to the amount required to match the scaled magnitude response information of the high shelving equalizer to the magnitude response information of the prototype filter. (Item 4) Determining the magnitude response information of the prototype filter comprises: determining magnitude response information of a low shelving equalizer; scaling the magnitude response information of the low shelving equalizer; shifting the scaled magnitude response information of the low shelving equalizer along a frequency axis by a predetermined frequency amount, the shifted scaled magnitude response being the magnitude response information of the prototype filter; The method according to item 1, comprising: (Item 5) Item 10. The method of item 1, wherein determining the magnitude response information of the prototype filter includes inverting the magnitude response of a low-shelving equalizer along a frequency axis. (Item 6) Item 10. The method of item 1, wherein determining the magnitude response information of the prototype filter includes inverting the magnitude response of a high-shelving equalizer along a frequency axis. (Item 7) Item 10. The method of item 1, wherein storing the magnitude response information of the prototype filter includes storing the magnitude response information of the prototype filter in a lookup table. (Item 8) Item 8. The method of item 7, wherein the lookup table contains equally spaced entries of magnitude response information of the prototype filter. (Item 9) 8. The method of claim 7, wherein the first frequency is close to DC or Nyquist, and reading out magnitude response information of the prototype filter at the first frequency includes setting the magnitude response information to be equal to a saturation value. (Item 10) Determining one or more properties of the environment; determining one or more parameters based on the determined one or more properties of the environment; and further comprising Item 10. The method of item 1, wherein the determined one or more parameters are used to retrieve magnitude response information of the prototype filter at the first frequency. (Item 11) Determining one or more properties of the environment includes: generating a test audio signal; determining a response to the generated test audio signal; determining one or more properties of the environment based on variations between the test audio signal and the response; and Item 11. The method according to item 10, comprising: (Item 12) determining one or more actions of a user of the wearable head device; determining one or more parameters, and reading out magnitude response information of the prototype filter at the first frequency is based on the determined one or more actions; further comprising Item 10. The method of item 1, wherein the determined one or more parameters are used to retrieve magnitude response information of the prototype filter at the first frequency. (Item 13) Retrieving the magnitude response information of the prototype filter determining an index associated with the first frequency; using said determined index to find a corresponding index in a look-up table for retrieving said magnitude response information; The method according to item 1, comprising: (Item 14) 1. A system comprising: a wearable head device configured to provide an audio signal to a user; A circuit comprising: determining magnitude response information of a prototype filter, the magnitude response information including a plurality of gain values, at least one of the plurality of gain values including a first gain corresponding to a first frequency; Retrieving magnitude response information of the prototype filter at the first frequency; calculating gains for a plurality of control frequencies based on the retrieved magnitude response information of the prototype filter at the first frequency; processing the audio signal by applying the calculated gain to the audio signal; transmitting the processed audio signal to the wearable head device; a circuit configured to: A system comprising: (Item 15) Item 15. The system of item 14, further comprising a memory that stores magnitude response information of the prototype filter. (Item 16) Item 16. The system of item 15, wherein the magnitude response information of the prototype filter is stored in a lookup table containing equally spaced entries of the magnitude response information of the prototype filter. (Item 17) Item 16. The system of item 15, wherein the magnitude response information of the prototype filter is stored in a lookup table, the lookup table including a plurality of indexes, each index associated with a plurality of frequencies. (Item 18) the wearable head device comprises one or more sensors; the system is configured to determine one or more properties of an environment; the circuitry is further configured to determine one or more parameters based on the determined one or more properties of the environment; retrieving the magnitude response information of the prototype filter at the first frequency based on the determined one or more parameters. Item 15. The system according to item 14. (Item 19) The wearable head device one or more speakers configured to generate a test audio signal; one or more sensors configured to determine a response to the generated test audio signal; Equipped with 20. The system of claim 18, wherein the one or more characteristics of the environment are determined by the circuitry based on a change between the test audio signal and the response. [Brief explanation of the drawings]
[0009] [Figure 1] FIG. 1 illustrates an exemplary wearable system, according to some embodiments.
[0010] [Figure 2] FIG. 2 illustrates an example handheld controller that may be used with an example wearable system, according to some embodiments.
[0011] [Figure 3] FIG. 3 illustrates an example auxiliary unit that may be used in conjunction with an example wearable system, according to some embodiments.
[0012] [Figure 4]FIG. 4 illustrates an example functional block diagram for an example wearable system, according to some embodiments.
[0013] [Figure 5] FIG. 5 illustrates an example process that may be performed by an XR system, according to some embodiments.
[0014] [Figure 6] FIG. 6 illustrates the magnitude response of an exemplary low-shelving prototype filter, according to some embodiments.
[0015] [Figure 7A] FIG. 7A illustrates the measured magnitude response of an exemplary low-shelving equalizer, according to some embodiments.
[0016] [Figure 7B] FIG. 7B illustrates the approximated magnitude response of an exemplary low-shelving equalizer, according to some embodiments.
[0017] [Figure 7C] FIG. 7C illustrates FIG. 7A overlaid on FIG. 7B, according to some embodiments.
[0018] [Figure 8A] FIG. 8A illustrates the measured magnitude response of an exemplary high-shelving equalizer, according to some embodiments.
[0019] [Figure 8B] FIG. 8B illustrates the approximated magnitude response of an exemplary high-shelving equalizer, according to some embodiments.
[0020] [Figure 8C] FIG. 8C illustrates FIG. 8A overlaid on FIG. 8B, according to some embodiments.
[0021] [Figure 9A] FIG. 9A illustrates an example lookup table including frequencies and associated gain values for prototype filters, according to some embodiments.
[0022] [Figure 9B] FIG. 9B illustrates an example lookup table including indexes and associated frequency and gain values according to some embodiments.
[0023] [Figure 9C] FIG. 9C illustrates an exemplary lookup table including half the number of indexes, according to some embodiments.
[0024] [Figure 10] FIG. 10 shows example magnitude responses as a function of frequency for a low shelving equalizer, a high shelving equalizer, and a dual shelving equalizer, according to some embodiments.
[0025] [Figure 11] 11A and 11B illustrate an example magnitude response and an example phase response, respectively, of a dual-shelving equalizer having a target magnitude response that decreases monotonically with frequency, according to some embodiments.
[0026] [Figure 12] 12A and 12B illustrate an example magnitude response and an example phase response, respectively, of a dual-shelving equalizer having a target magnitude response that is not monotonically decreasing with frequency, in accordance with some embodiments.
[0027] [Figure 13] 13A and 13B illustrate an example magnitude response and an example phase response, respectively, of a dual shelving equalizer operated outside its operating range, according to some embodiments. DETAILED DESCRIPTION OF THE INVENTION
[0028] In the following description of the embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown, by way of illustration, specific embodiments which may be practiced. It is to be understood that other embodiments may be used and structural changes may be made without departing from the scope of the disclosed embodiments.
[0029] US Patent Application No. 15 / 907,155 is incorporated herein by reference in its entirety.
[0030] Exemplary Wearable System
[0031] 1 illustrates an exemplary wearable head device 100 configured to be worn on a user's head. Wearable head device 100 may be part of a broader wearable system that includes one or more components, such as a head device (e.g., wearable head device 100), a handheld controller (e.g., handheld controller 200 described below), and / or an auxiliary unit (e.g., auxiliary unit 300 described below). In some examples, wearable head device 100 can be used for virtual reality, augmented reality, or mixed reality systems or applications. The wearable head device 100 includes one or more displays, such as displays 110A and 110B (which may comprise left and right transmissive displays and associated components for coupling light from the displays to the user's eyes, such as orthogonal pupil expansion (OPE) grating sets 112A / 112B and exit pupil expansion (EPE) grating sets 114A / 114B), left and right acoustic structures, such as speakers 120A and 120B (which may be mounted on temple arms 122A and 122B, respectively, and positioned adjacent the user's left and right ears), and an infrared sensor. The wearable head device 100 may include one or more sensors, such as a microphone, an accelerometer, a GPS unit, an inertial measurement unit (IMU) (e.g., IMU 126), an acoustic sensor (e.g., microphone 150), a quadrature coil electromagnetic receiver (e.g., receiver 127 shown mounted on left temple arm 122A), left and right cameras (e.g., depth (time-of-flight) cameras 130A and 130B) oriented away from the user, and left and right eye cameras (e.g., for detecting the user's eye movements) (e.g., eye cameras 128 and 128B) oriented toward the user. However, the wearable head device 100 may incorporate any suitable display technology and any suitable number, type, or combination of sensors or other components without departing from the scope of the invention.In some examples, wearable head device 100 may incorporate one or more microphones 150 configured to detect audio signals generated by the user's voice, and such microphones may be positioned within the wearable head device adjacent to the user's mouth. In some examples, wearable head device 100 may incorporate networking features (e.g., Wi-Fi capabilities) for communicating with other devices and systems, including other wearable systems. Wearable head device 100 may further include components such as a battery, a processor, memory, a storage unit, or various input devices (e.g., buttons, touchpad), or may be coupled to a handheld controller (e.g., handheld controller 200) or auxiliary unit (e.g., auxiliary unit 300) that comprises one or more such components. In some examples, sensors may be configured to output a set of coordinates of the head-mounted unit relative to the user's environment and may provide input to a processor to implement a simultaneous localization and mapping (SLAM) procedure and / or a visual odometry algorithm. In some embodiments, the wearable head device 100 may be coupled to a handheld controller 200 and / or an auxiliary unit 300, as described further below.
[0032] 2 illustrates an exemplary mobile handheld controller component 200 of an exemplary wearable system. In some examples, handheld controller 200 may communicate wired or wirelessly with wearable head device 100 and / or auxiliary unit 300, described below. In some examples, handheld controller 200 includes a handle portion 220 to be held by a user and one or more buttons 240 disposed along a top surface 210. In some examples, handheld controller 200 may be configured for use as an optical tracking target; for example, a sensor (e.g., a camera or other optical sensor) of wearable head device 100 can be configured to detect the position and / or orientation of handheld controller 200, which in turn may indicate the position and / or orientation of a user's hand holding handheld controller 200. In some examples, handheld controller 200 may include a processor, memory, a storage unit, a display, or one or more input devices, such as those described above. In some examples, the handheld controller 200 includes one or more sensors (e.g., any of the sensors or tracking components described above with respect to the wearable head device 100). In some examples, the sensors can detect the position or orientation of the handheld controller 200 relative to the wearable head device 100 or relative to another component of the wearable system. In some examples, the sensors may be positioned within the handle portion 220 of the handheld controller 200 and / or may be mechanically coupled to the handheld controller. The handheld controller 200 can be configured to provide one or more output signals corresponding, for example, to the press state of the button 240 or the position, orientation, and / or movement of the handheld controller 200 (e.g., via an IMU). Such output signals may be used as inputs to a processor of the wearable head device 100, to the auxiliary unit 300, or to another component of the wearable system.In some embodiments, the handheld controller 200 may include one or more microphones to detect sounds (e.g., a user's speech, environmental sounds) and, in some cases, provide signals corresponding to the detected sounds to a processor (e.g., a processor of the wearable head device 100).
[0033] 3 illustrates an exemplary auxiliary unit 300 of an exemplary wearable system. In some examples, the auxiliary unit 300 may communicate wired or wirelessly with the wearable head device 100 and / or the handheld controller 200. The auxiliary unit 300 may include a battery to provide energy for operating one or more components of the wearable system, such as the wearable head device 100 and / or the handheld controller 200 (including a display, sensors, an acoustic structure, a processor, a microphone, and / or other components of the wearable head device 100 or the handheld controller 200). In some examples, the auxiliary unit 300 may include a processor, memory, a storage unit, a display, one or more input devices, and / or one or more sensors, such as those described above. In some examples, the auxiliary unit 300 includes a clip 310 for attaching the auxiliary unit to a user (e.g., to a belt worn by the user). An advantage of using auxiliary unit 300 to store one or more components of a wearable system is that doing so may allow large or heavy components to be carried on the user's waist, chest, or back, which are relatively better suited to supporting large, heavy objects, rather than being mounted on the user's head (e.g., when stored in wearable head device 100) or carried by the user's hands (e.g., when stored in handheld controller 200). This may be particularly advantageous with respect to relatively heavy or bulky components, such as batteries.
[0034] 4 shows an example functional block diagram that may correspond to an example wearable system 400, such as may include the example wearable head device 100, handheld controller 200, and auxiliary unit 300 described above. In some examples, the wearable system 400 may be used for virtual reality, augmented reality, or mixed reality applications. As shown in FIG. 4 , the wearable system 400 may include an example handheld controller 400B, referred to herein as a “totem” (and which may correspond to the handheld controller 200 described above), which may include a totem / headgear six-degree-of-freedom (6DOF) totem subsystem 404A. The wearable system 400 may also include an example wearable head device 400A (which may correspond to the wearable headgear device 100 described above), which includes a totem / headgear 6DOF headgear subsystem 404B. In some embodiments, the 6DOF totem subsystem 404A and the 6DOF headgear subsystem 404B cooperate to determine six coordinates (e.g., offsets in three translational directions and rotations along three axes) of the handheld controller 400B relative to the wearable head device 400A. The six degrees of freedom may be expressed relative to the coordinate system of the wearable head device 400A. The three translational offsets may be expressed as X, Y, and Z offsets within such a coordinate system, a translation matrix, or some other representation. The rotational degrees of freedom may be expressed as a sequence of yaw, pitch, and roll rotations, a vector, a rotation matrix, a quaternion, or some other representation. In some embodiments, one or more depth cameras 444 (and / or one or more non-depth cameras) and / or one or more optical targets (e.g., buttons 240 of the handheld controller 200 as described above or dedicated optical targets included in the handheld controller) included within the wearable head device 400A can be used for 6DOF tracking.In some embodiments, the handheld controller 400B can include a camera as described above, and the headgear 400A can include optical targets for optical tracking in conjunction with the camera. In some embodiments, the wearable head device 400A and the handheld controller 400B each include a set of three orthogonally oriented solenoids used to wirelessly transmit and receive three distinguishable signals. By measuring the relative magnitudes of the three distinguishable signals received in each of the coils used for receiving, the 6DOF of the handheld controller 400B relative to the wearable head device 400A can be determined. In some embodiments, the 6DOF totem subsystem 404A can include an inertial measurement unit (IMU), which is useful for providing improved accuracy and / or more timely information regarding high-speed movement of the handheld controller 400B.
[0035] In some examples involving augmented reality or mixed reality applications, it may be desirable to transform coordinates from a local coordinate space (e.g., a coordinate space fixed relative to the wearable head device 400A) to an inertial coordinate space or to an environmental coordinate space. For example, such a transformation may be necessary for the display of the wearable head device 400A to present virtual objects in an expected position and orientation relative to the real environment (e.g., a virtual person sitting in a real chair facing forward, regardless of the position and orientation of the wearable head device 400A), rather than in a fixed position and orientation on the display (e.g., at the same position on the display of the wearable head device 400A). This can maintain the illusion that the virtual objects exist in the real environment (and do not appear unnaturally positioned in the real environment, e.g., as the wearable head device 400A shifts and rotates). In some examples, a compensatory transformation between coordinate spaces can be determined by processing images from the depth camera 444 (e.g., using simultaneous localization and mapping (SLAM) and / or visual odometry procedures) to determine a transformation of the wearable head device 400A relative to an inertial or environmental coordinate system. In the example shown in FIG. 4 , the depth camera 444 can be coupled to the SLAM / visual odometry block 406 and can provide images to the block 406. The SLAM / visual odometry block 406 implementation can include a processor configured to process the images and then determine the position and orientation of the user's head, which can be used to identify a transformation between the head coordinate space and the real coordinate space. Similarly, in some examples, an additional source of information regarding the user's head pose and location is obtained from the IMU 409 of the wearable head device 400A. Information from the IMU 409 can be integrated with information from the SLAM / visual odometry block 406 to provide improved accuracy and / or more timely information regarding rapid adjustments of the user's head pose and position.
[0036] In some examples, depth camera 444 can provide 3D images to hand gesture tracker 411, which can be implemented within a processor of wearable head device 400A. Hand gesture tracker 411 can identify the user's hand gestures, for example, by matching the 3D images received from depth camera 444 to stored patterns representing hand gestures. Other suitable techniques for identifying the user's hand gestures will also be apparent.
[0037] In some embodiments, one or more processors 416 may be configured to receive data from the headgear subsystem 404B, the IMU 409, the SLAM / visual odometry block 406, the depth camera 444, a microphone (not shown), and / or the hand gesture tracker 411. The processor 416 may also send and receive control signals to and from the 6DOF totem system 404A. The processor 416 may be wirelessly coupled to the 6DOF totem system 404A, such as in embodiments in which the handheld controller 400B is untethered. The processor 416 may further communicate with additional components, such as an audiovisual content memory 418, a graphical processing unit (GPU) 420, and / or a digital signal processor (DSP) audio spatializer 422. The DSP audio spatializer 422 may be coupled to a head-related transfer function (HRTF) memory 425. The GPU 420 may include a left channel output coupled to a left source of imagewise modulated light 424 and a right channel output coupled to a right source of imagewise modulated light 426. The GPU 420 may output stereoscopic image data to the imagewise modulated light sources 424, 426. The DSP audio spatializer 422 may output audio to the left speaker 412 and / or the right speaker 414. The DSP audio spatializer 422 may receive an input from the processor 416 indicating a direction vector from the user to a virtual sound source (which may be moved by the user, e.g., via the handheld controller 400B). Based on the direction vector, the DSP audio spatializer 422 may determine a corresponding HRTF (e.g., by accessing an HRTF or by interpolating multiple HRTFs). The DSP audio spatializer 422 may then apply the determined HRTF to an audio signal, such as an audio signal corresponding to a virtual sound generated by a virtual object.This can improve the believability and realism of virtual sounds by incorporating the user's relative position and orientation to the virtual sounds in the mixed reality environment, i.e., by presenting virtual sounds that match the user's expectations of what they would hear if the virtual sounds were real sounds in a real environment.
[0038] 4 , one or more of the processor 416, GPU 420, DSP audio spatializer 422, HRTF memory 425, and audio / visual content memory 418 may be included within auxiliary unit 400C (which may correspond to auxiliary unit 300 described above). Auxiliary unit 400C may include battery 427 to power its components and / or provide power to wearable head device 400A and / or handheld controller 400B. Including such components within an auxiliary unit, which may be mounted on the user's waist, can limit the size and weight of wearable head device 400A, which in turn can reduce fatigue in the user's head and neck.
[0039] While FIG. 4 presents elements corresponding to various components of exemplary wearable system 400, various other suitable arrangements of these components will be apparent to those skilled in the art. For example, elements shown in FIG. 4 as associated with auxiliary unit 400C may instead be associated with wearable head device 400A or handheld controller 400B. Furthermore, some wearable systems may dispense with handheld controller 400B or auxiliary unit 400C entirely. Such variations and modifications are understood to be within the scope of the disclosed embodiments.
[0040] Mixed Reality Environment
[0041] Like all people, users of mixed reality systems exist in a real environment, i.e., the three-dimensional portion of the "real world" and all of its contents that are perceptible to the user. For example, users perceive the real environment using their normal human senses, i.e., sight, hearing, touch, taste, and smell, and interact with the real environment by moving their body within the real environment. Locations within the real environment can be described as coordinates within a coordinate space; for example, coordinates can include latitude, longitude, and altitude relative to sea level, distance in three orthogonal dimensions from a reference point, or other suitable values. Similarly, vectors can describe qualities that have direction and magnitude within the coordinate space.
[0042] A computing device can maintain a representation of a virtual environment, for example, in a memory associated with the device. As used herein, a virtual environment is a computer representation of a three-dimensional space. A virtual environment can include representations of any objects, actions, signals, parameters, coordinates, vectors, or other properties associated with that space. In some examples, the circuitry (e.g., a processor) of a computing device can maintain and update the state of the virtual environment; i.e., the processor can determine the state of the virtual environment at a second time based on data associated with the virtual environment and / or input provided by a user at a first time. For example, if an object in the virtual environment is located at a first coordinate and has certain programmed physical parameters (e.g., mass, coefficient of friction) at a certain time, and input received from a user indicates that a force should be applied to the object in a certain directional vector, the processor can apply the laws of kinematics and use basic mechanics to determine the location of the object at that time. The processor can use any suitable known information about the virtual environment and / or any suitable input to determine the state of the virtual environment at a certain time. In maintaining and updating the state of the virtual environment, the processor may execute any suitable software, including software related to creating and deleting virtual objects within the virtual environment, software (e.g., scripts) for defining the behavior of virtual objects or characters within the virtual environment, software for defining the behavior of signals (e.g., audio signals) within the virtual environment, software for creating and updating parameters associated with the virtual environment, software for generating audio signals within the virtual environment, software for handling input and output, software for implementing network operations, software for applying asset data (e.g., animation data for moving virtual objects over time), or many other possibilities.
[0043] Output devices, such as a display or speakers, can present any or all aspects of the virtual environment to the user. For example, the virtual environment may include virtual objects (which may include representations of inanimate objects, people, animals, lights, etc.) that can be presented to the user. A processor can determine a view of the virtual environment (e.g., corresponding to a "camera" with origin coordinates, viewing axis, and frustum) and render on the display a viewable scene of the virtual environment corresponding to that view. Any suitable rendering technique may be used for this purpose. In some examples, the viewable scene may include only some virtual objects in the virtual environment and exclude certain other virtual objects. Similarly, the virtual environment may include audio aspects that can be presented to the user as one or more audio signals. For example, virtual objects in the virtual environment may generate sounds originating from the object's location coordinates (e.g., a virtual character may speak or trigger a sound effect), or the virtual environment may be associated with musical cues or ambient sounds that may or may not be associated with a particular location. A processor can determine audio signals corresponding to "listener" coordinates, e.g., audio signals that correspond to a composite of sounds in the virtual environment and that are mixed and processed to simulate audio signals that would be heard by a listener at the listener coordinates, and present the audio signals to the user via one or more speakers.
[0044] Because the virtual environment exists only as a computer construct, the user cannot directly perceive the virtual environment using their normal senses. Instead, the user can only indirectly perceive the virtual environment as presented to the user, for example, by a display, speakers, haptic output device, etc. Similarly, the user cannot directly touch, manipulate, or otherwise interact with the virtual environment, but can provide input data via input devices or sensors to a processor, which can use the device or sensor data to update the virtual environment. For example, a camera sensor can provide optical data indicating that the user is attempting to move an object in the virtual environment, and the processor can use that data to cause the object to respond accordingly in the virtual environment.
[0045] Digital reverberation and ambient audio processing
[0046] The XR system can present a user with audio signals that appear to originate at a sound source with origin coordinates and travel in the direction of an orientation vector within the system. The user can perceive these audio signals as if they were real audio signals originating from the origin coordinates of the sound source and traveling along the orientation vector.
[0047] In some cases, audio signals may be considered virtual in that they correspond to computer signals in a virtual environment and not necessarily to real sounds in a real environment. However, virtual audio signals can be presented to a user as real audio signals detectable by the human ear, for example, as generated through speakers 120A and 120B of wearable head device 100 in FIG. 1 .
[0048] Some virtual or mixed reality environments suffer from the perception that the environment does not feel real or authentic. One reason for this perception is that audio and visual cues do not always match each other in the virtual environment. The entire virtual experience may feel fake and inauthentic, in part because it does not conform to one's expectations based on real-world interactions. It would be desirable to improve the user's experience by presenting audio signals that appear to interact realistically with objects in the user's environment, even in small ways. The more consistent such audio signals are with one's expectations based on real-world experiences, the more immersive and engaging the user's experience will be.
[0049] As discussed above, the processor can determine an audio signal corresponding to a sound composition within the virtual environment. The sound composition can be generated based on properties of the user's current environment. Exemplary properties include, but are not limited to, size, shape, material, and acoustic characteristics. For example, a brick wall may produce a different sound than a glass wall. As another example, the acoustic characteristics of a sound may be different when a couch is present in the current environment versus when the couch is absent. The processor may use information (e.g., one or more properties) about the user's current environment to set various parameters related to audio signal processing, discussed in detail below. The parameters can be used to determine information from lookup tables. Advantages of the embodiments disclosed below include reduced memory requirements, reduced network bandwidth, reduced power consumption, reduced computational complexity, and reduced computational delay. These advantages may be particularly significant for mobile systems, including wearable systems, where processing resources, networking resources, battery capacity, and physical size and weight are often limited.
[0050] In some embodiments, the processor may dynamically determine the parameters (e.g., calculate the impulse response on the fly). For example, the system may store one or more predetermined signals in memory. The wearable head unit may generate a test audio signal and determine its response in the user's current environment, for example, via sensors in the wearable head unit. The response may be, for example, a reflected audio signal propagated through the user's current environment. The processor may determine the parameters based on changes between the test audio signal and the reflected audio signal. The reflected audio signal may be responsive to the generated test audio signal.
[0051] In some embodiments, the processor may determine parameters based on one or more actions of the user. For example, the processor may use sensors on the wearable head device to determine whether the user has changed their gaze target, whether the user has changed their vital signs, etc. The processor may use the determined sensor information to determine parameters in the current environment that will result in the user's action.
[0052] In an environment as dynamic as AR, the filters used for audio signal processing must be continuously controlled, which can be achieved using a PPE, more specifically, a cascade of shelving filters that create a three-band parametric equalizer or tone control with little processing overhead.
[0053] The system may use a second-order infinite impulse response (IIR) filter topology that promotes parameter equalization. One such topology is the Regalia-Mitra topology. The Regalia-Mitra topology may be modified to obtain a parametric shelving filter with a "mutually similar" response for a given value of the control frequency ω.
[0054] In some embodiments, a true three-band parametric equalizer (e.g., bass / mid / treble) may be formed by cascading two proportional shelving filters. Cascading two filters may be equivalent to using one filter whose gain k is the product of the gains of the two filters. One filter may be a parametric low-shelving equalizer, and the other filter may be a parametric high-shelving equalizer. Cascading the low-shelving equalizer with the high-shelving equalizer can result in a dual-shelving equalizer. The dual-shelving equalizer may have adjustable crossover frequencies and may be efficiently implemented as a biquadratic HR filter.
[0055] Example Implementation
[0056] 5 illustrates an example process 500 that may be performed by an XR system, such as by one or more processors of the XR system. The example process 500 uses a prototype filter to determine parametric filter parameters, a lookup table to store corresponding gain values, and an indexing scheme to efficiently retrieve gain information from the lookup table. Once the gain information is obtained from the lookup table, data (e.g., gain values) related to control frequencies is calculated. Each step is discussed in further detail below and illustrated by way of non-limiting examples.
[0057] In step 510, the system determines the magnitude response of a filter at a frequency. In some embodiments, this step includes calculating the magnitude response of one or more filters. The filters may be two separate filters, such as a low shelving equalizer and a high shelving equalizer. As discussed above, the low shelving equalizer is configured to operate at a control frequency F l and the high shelving equalizer can have a control frequency F h can have:
[0058] In some embodiments, the magnitude response of the first filter can be determined (e.g., approximately derived) from the magnitude response of the second filter. This determination can include scaling the magnitude response information (e.g., gain) of the second filter and shifting the data (e.g., the scaled magnitude response information) along the frequency axis by a predetermined frequency amount. The predetermined frequency amount can be an amount needed to match the scaled magnitude response information of the second filter to the first filter.
[0059] In some embodiments, the filters may be symmetric. Thus, the magnitude response of a first filter (e.g., a high-shelving equalizer) can be determined by inverting the magnitude response of a second filter (e.g., a low-shelving equalizer) along the frequency axis. Examples of the present disclosure further include the first filter being a low-shelving equalizer and the second filter being a high-shelving equalizer.
[0060] In some embodiments, the frequency response of the prototype filter can be pre-calculated. The corresponding magnitude response can also be pre-calculated and stored in memory (step 520). The magnitude response can be stored in a look-up table along with other information such as frequency values and associated gain values.
[0061] At run time, the system retrieves magnitude response information from a lookup table in step 530. In step 540, the system uses the magnitude response information to determine the control frequency F l , F m , and F h The gain G for the desired combination of hl , G hm , G lm , and G lhThe system may then process the audio signal by implementing a filter and applying the calculated gain to the audio signal (step 550). In some embodiments, process 500 may include the additional step of transmitting the processed audio signal to a wearable head device.
[0062] Exemplary Magnitude Response Determination
[0063] For example purposes only, a prototype filter with a control frequency of 640 Hz may be selected. One advantage of the 640 Hz control frequency may be its suitability for audio applications. 640 Hz is approximately midway between 20 Hz and 20 kHz on a logarithmic scale, spanning useful human listening distances. Another advantage of the 640 Hz control frequency may be that it is far enough away from DC and Nyquist (assuming a 44.1 kHz or 48 kHz sample rate) to avoid warping problems. Examples of the present disclosure include control frequencies other than 640 Hz.
[0064] FIG. 6 illustrates the magnitude response of an exemplary low shelving prototype filter. Thin vertical lines indicate sampling frequency points. The sampling frequency points may be equally spaced entries in a lookup table. For example, the sampling frequency points may be spaced 12 octaves apart. As used throughout this disclosure, the term "filter gain" refers to the gain at a control frequency. In some instances, the low shelving prototype filter may have a 1 dB gain at a control frequency of 640 Hz and a 2 dB gain at DC, as shown in the figure.
[0065] In some embodiments, the magnitude responses of the prototype filters at those 12 octave frequency points may be stored in a look-up table (step 520).
[0066] In some cases, this lookup table may be used later for filters with control frequencies close to DC or Nyquist (step 530). Data from the magnitude response determination may not cover a wide enough frequency range. In some embodiments, the system may set the magnitude response of such filters to equal a saturation value. For example, the saturation value may be 2 dB when the control frequency is below 20 Hz or 0 dB when the control frequency is above 20 kHz. This assumed information may be stored in the lookup table (step 520). Alternatively, the system may determine that the control frequency is outside a threshold range for the lookup table and use the assumed information as a result of the determination.
[0067] FIG. 7A illustrates the measured magnitude response of an exemplary low-shelving equalizer, and FIG. 7B illustrates the approximated magnitude response of an exemplary low-shelving equalizer. FIG. 7C illustrates FIG. 7A overlaid on FIG. 7B. The approximated magnitude response shown in FIG. 7B can be obtained by shifting a prototype filter by a predetermined frequency amount along the frequency axis. As shown in the figure, the prototype filter can provide a very good approximation. In some embodiments, an approximation error for the low-shelving equalizer may exist when the control frequency approaches Nyquist. In some instances, the approximation error may be due to the shift in the control frequency F l However, it may not be close to Nyquist and therefore may not affect performance. l is F m Lower than F m is F h lower than
[0068] FIG. 8A illustrates the measured magnitude response of an exemplary high-shelving equalizer, and FIG. 8B illustrates the approximated magnitude response of an exemplary high-shelving equalizer. FIG. 8C illustrates FIG. 8A overlaid on FIG. 8B. The approximated magnitude response shown in FIG. 8B can be obtained by shifting a prototype filter along the frequency axis. As shown in the figure, the prototype filter can provide a very good approximation. In some embodiments, two gains G hl and G hm There may be an approximation error for the high shelving equalizer that affects the calculation of the control frequency F h , F l , and F m can be noticeable if set too high (eg, above 2 kHz).
[0069] Lookup Tables and Indexing Schemes
[0070] As discussed above, in step 520, the magnitude response at a given frequency can be stored in a lookup table. The magnitude response can indicate an associated gain value for the prototype filter. FIG. 9A illustrates an exemplary lookup table including frequencies and associated gain values for the prototype filter. Returning again to the above example of magnitude responses having 12 octave intervals, the lookup table can include an entry for each sampling frequency point. For example, as shown in the figure, frequency F1 can have an associated gain G1 stored in the table, frequency F2 can have an associated gain G2 stored in the table, and frequency F3 can have an associated gain G4 stored in the table. 12 is the associated gain G stored in a table 12 Thus, for a given frequency point of interest, the system may retrieve the corresponding gain value from the look-up table in step 530.
[0071] In some embodiments, the system can retrieve the gain information using an index. An index for each frequency and corresponding gain value can be stored in a lookup table. FIG. 9B illustrates an exemplary lookup table including the index and associated frequency and gain value. Returning to the previous example of a magnitude response with 12 octave intervals, the lookup table can include an index for each sampling frequency point. The index id for any two frequency points (e.g., frequency points F1 and F2) can be F2 and id F1 The relationship between can be expressed as follows: [ka]
[0072] Thus, the gain may be accessed from a table (in FIG. 9B) by using equation (1) to calculate the relative index. For example, G lm (When the gain is set to +1dB, F m The dB gain of the low shelving equalizer at may be derived by calculating its index as follows: [ka] In the formula, id Fcp is the index of the control frequency in the lookup table. In some embodiments, the index in the lookup table may be an integer value, as shown in the figure. As an example, frequency F6 in the table of FIG. 9B may be 640 Hz, which may correspond to index 6.
[0073] In some embodiments, the index relationship may be generalized to prototype filters sampled on n-octave intervals. The index relationship can be expressed as follows: [ka]
[0074] In some embodiments, the lookup table of FIG. 9B can be used for multiple filters, such as a low shelving filter and a high shelving filter. For example, the lookup table can store values from a low shelving filter, and the high shelving filter response can be obtained by inverting the prototype filter data along the frequency axis. For example, G hl The index of can be calculated as follows: [ka]
[0075] In some embodiments, the lookup table can include half the number of indexes used to retrieve the magnitude response information. Returning to the previous example of a magnitude response having 12 octave intervals, the lookup table can include half (e.g., six) indexes. The six indexes can store magnitude response information for a first filter (e.g., a low shelving filter). The magnitude response information for a second filter (e.g., a high shelving filter) can be obtained by using information from the first filter stored in the table by using Equation (4). In this way, each index in the table can be used for multiple frequencies.
[0076] 9C illustrates an example lookup table including half the number of indexes. Index 1 corresponds to frequency F1 (first filter) and frequency F 12 (second filter), index 2 can be used for frequency F2 (first filter) and frequency F 11 (second filter), and so on.
[0077] Equations (1)-(4) above are indexing formulas that allow the system to retrieve the gain value corresponding to the nearest control frequency. Embodiments of the present disclosure may include using one or more interpolation methods on the retrieved gain information to convert it to a more accurate value corresponding to the actual frequency.
[0078] For example, the remaining index id rem can be expressed as follows: [ka] Flooring Index ID F can be expressed as follows: [ka]
[0079] Linear interpolation may then generate the target index using: [ka]
[0080] Profit calculation
[0081] As discussed above, in step 530, the system retrieves magnitude response information from a lookup table. The magnitude response information may be a gain value. The desired dB gain at the low, mid, and high control frequencies of the dual shelving equalizer can be expressed as: [ka] In the formula, K l and K. h are the dB gains of the low and high shelving filters at their control frequencies, respectively (as shown in FIG. 1), K is the additional wideband gain, and G is the gain transformation matrix.
[0082] The gain transformation matrix G can be written as: [ka] In the formula, (1)G hl When the gain is set to +1 dB, the control frequency F l is the dB gain of the high shelving equalizer at (2)G hm When the gain is set to +1 dB, the control frequency F m is the dB gain of the high shelving equalizer at (3)G lm When the gain is set to +1 dB, the control frequency F m is the dB gain of the low shelving equalizer at (4)G lh When the gain is set to +1 dB, the control frequency F h is the dB gain of the low shelving equalizer at
[0083] From the matrix inversion of equation (9), the closed form solution for the internal gain can be determined and expressed as follows: [ka]
[0084] The inverse of the gain matrix can be expressed as: [ka] During the ceremony, [ka] and, [ka] is.
[0085] From equations (11)-(13), the system can calculate the low and high shelving equalizer gains.
[0086] Independent Control Frequency
[0087] In some embodiments, the control frequency of the three-band parametric equalizer may be different from the control frequency of the dual shelving filter. For example, the control frequency of the three-band parametric equalizer may be related to one or more characteristics of the user, such as head size. Meanwhile, the control frequency of the shelving filter may be controlled through the system and may not be based on the user's characteristics. In this way, the control frequency of the three-band parametric equalizer may be independent of the control frequency of the dual shelving filter.
[0088] The desired dB gains at the low, mid, and high control frequencies of the dual shelving equalizer can be expressed as follows: [ka] In the formula, K lc and K. hc are the dB gains of the low and high shelving filters at their control frequencies, respectively, K is the additional wideband gain, and G is the gain transformation matrix.
[0089] From equation (14), the gain transformation matrix G can be written as: [ka] In the formula, (1)G hcl When the gain is set to +1 dB, the control frequency F l is the dB gain of the high shelving equalizer at (2)G hcm When the gain is set to +1 dB, the control frequency F m is the dB gain of the high shelving equalizer at (3)G hch When the gain is set to +1 dB, the control frequency F h is the dB gain of the high shelving equalizer at (4)G lcl When the gain is set to +1 dB, the control frequency F lis the dB gain of the low shelving equalizer at (5)G lcm When the gain is set to +1 dB, the control frequency F m is the dB gain of the low shelving equalizer at (6)G lch When the gain is set to +1 dB, the control frequency F h is the dB gain of the low shelving equalizer at
[0090] From the matrix inversion of equation (15), the closed form solution for the internal gain can be determined and expressed as follows: [ka]
[0091] The inverse of the gain matrix can be expressed as: [ka] During the ceremony, [ka] and, [ka] is.
[0092] From equations (17)-(19), the system can calculate the low and high shelving equalizer gains.
[0093] Implementing a Filter
[0094] Filters can then be easily implemented based on their transfer functions. Figure 10 shows exemplary magnitude responses as a function of frequency for a low-shelving equalizer, a high-shelving equalizer, and a dual-shelving equalizer. The dual-shelving equalizer has multiple control frequencies, namely, a low control frequency F l , medium control frequency F m , and high control frequency Fh In some embodiments, the control frequencies of the low and high shelving equalizers are respectively equal to the low control frequency F of the dual shelving equalizer. l and high control frequency F h can be matched to
[0095] The transfer function of the parametric low shelving equalizer can be expressed as: [ka] During the ceremony, [ka] where k is the filter gain at DC and F C is the control frequency of the low shelving equalizer, and F S is the sampling frequency. In some embodiments, the gain at the control frequency ω is √k, which is half the decibel gain at DC.
[0096] The transfer function of the parametric high shelving equalizer can be expressed as: [ka] where k is the filter gain at Nyquist. In some embodiments, the gain at the control frequency ω is k, which is half the decibel gain at Nyquist.
[0097] 11A and 11B illustrate example magnitude and phase responses, respectively, of a dual-shelving equalizer having a target magnitude response that monotonically decreases with frequency. This dual-shelving equalizer may be useful in many applications, such as environmental acoustic modeling applications. As shown in the figures, the magnitude response may decrease continuously as frequency increases. The figures also show the magnitude responses of the low-shelving equalizer and the high-shelving equalizer. Using the method disclosed above, the gain values of the dual-shelving equalizer at three control frequencies are determined to be −2.5 dB at 200 Hz, −5.0 dB at 1,000 Hz, and −12.0 dB at 5,000 Hz. Thus, the disclosed three-band parametric equalizer achieves a specified magnitude response at the control frequencies with high accuracy.
[0098] 12A and 12B illustrate example magnitude and phase responses, respectively, of a dual-shelving equalizer having a target magnitude response that does not monotonically decrease with frequency. As shown in the figures, the two shelving equalizers may be cascaded shelving equalizers with identical dB gain codes. The figures also show the magnitude responses of the low and high shelving equalizers. Using the method disclosed above, the gain values of the dual-shelving equalizer at three control frequencies are determined to be −3.0 dB at 75 Hz, 4.5 dB at 1,500 Hz, and −6.0 dB at 12,000 Hz. Thus, the disclosed three-band parametric equalizer achieves a specified magnitude response at the control frequencies with high accuracy.
[0099] 13A and 13B illustrate an example magnitude response and an example phase response, respectively, of a dual shelving equalizer operated outside its operating range. A dual shelving equalizer can be operated outside its operating range when the required gains are too far apart for the control points and therefore too close in frequency. The figures also show the magnitude responses of the low and high shelving equalizers. Using the method disclosed above, the gain values of the dual shelving equalizer at the three control frequencies are determined to be 4.0 dB at 300 Hz, −2.0 dB at 1,200 Hz, and 10.0 dB at 4,000 Hz. As shown in the figures, the intermediate gain G m cannot be achieved (offset by about 5 dB).
[0100] As shown above, the modification of the Ragalia-Mitra structure provides a design that strictly respects the proportionality property for shelving filters at three points: DC, Nyquist, and the filter's control frequency. At other frequencies, the proportionality relationship is verified to be approximate. In practice, for settings of gain k within [-12 dB, +12 dB], the accuracy is sufficient for many audio applications.
[0101] With respect to the systems and methods described above, elements of the systems and methods can be implemented by one or more computer processors (e.g., CPUs or DSPs), as appropriate. The present disclosure is not limited to any particular configuration of computer hardware, including computer processors, used to implement these elements. In some cases, multiple computer systems can be employed to implement the systems and methods described above. For example, a first computer processor (e.g., a processor of a wearable device coupled to a microphone) can be utilized to receive input microphone signals and perform initial processing of those signals (e.g., signal conditioning and / or segmentation, such as those described above). A second (perhaps more computationally powerful) processor can then be utilized to perform more computationally intensive processing, such as determining probability values associated with speech segments in those signals. Another computer device, such as a cloud server, can host a speech recognition engine, to which the input signals are ultimately provided. Other suitable configurations will become apparent and are within the scope of the present disclosure.
[0102] Although the disclosed embodiments have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will be apparent to those skilled in the art. For example, elements of one or more implementations may be combined, deleted, modified, or supplemented to form further implementations. Such changes and modifications are to be understood as being included within the scope of the disclosed embodiments as defined by the appended claims.
Claims
1. A method for processing an audio signal for a user of a wearable head device, the method comprising: determining magnitude response information of a prototype filter, the magnitude response information including a plurality of gain values, at least one of the plurality of gain values including a first gain corresponding to a first frequency; storing the magnitude response information of the prototype filter in a look-up table; determining one or more parameters used to retrieve the magnitude response information from the lookup table; retrieving the magnitude response information of the prototype filter at the first frequency from the lookup table using the one or more parameters; calculating gains for a plurality of control frequencies based on the retrieved magnitude response information of the prototype filter at the first frequency; applying the calculated gain to the audio signal to generate a processed audio signal; presenting the processed audio signal to the user via the wearable head device; and determining the one or more parameters used to retrieve the magnitude response information from the lookup table comprises: determining one or more properties of the environment based at least in part on data received from one or more sensors of the wearable head device, the received data corresponding to reflections of a test audio signal; Detecting at least one action of the user of the wearable head device, the at least one action being detected by the one or more sensors of the wearable head device; determining the one or more parameters based on the at least one action of the user and the one or more properties of the environment; A method comprising:
2. Determining the magnitude response information of the prototype filter comprises: determining magnitude response information of a high shelving equalizer; scaling the magnitude response information of the high shelving equalizer; shifting the scaled magnitude response information of the high shelving equalizer along a frequency axis by a predetermined frequency amount, the shifted scaled magnitude response being the magnitude response information of the prototype filter; The method of claim 1 , comprising:
3. 3. The method of claim 2, wherein the predetermined frequency amount is equal to an amount required to match the scaled magnitude response information of the high shelving equalizer to the magnitude response information of the prototype filter.
4. Determining the magnitude response information of the prototype filter comprises: determining magnitude response information of a low shelving equalizer; scaling the magnitude response information of the low shelving equalizer; shifting the scaled magnitude response information of the low shelving equalizer along a frequency axis by a predetermined frequency amount, the shifted scaled magnitude response being the magnitude response information of the prototype filter; The method of claim 1 , comprising:
5. The method of claim 1 , wherein determining the magnitude response information of the prototype filter comprises inverting the magnitude response of a low-shelving equalizer along a frequency axis.
6. The method of claim 1 , wherein determining the magnitude response information of the prototype filter comprises inverting the magnitude response of a high-shelving equalizer along a frequency axis.
7. The method of claim 1 , wherein the lookup table includes equally spaced entries of the magnitude response information of the prototype filter.
8. 2. The method of claim 1 , wherein the first frequency is near DC or Nyquist, and wherein reading out the magnitude response information of the prototype filter at the first frequency includes setting the magnitude response information to be equal to a saturation value.
9. Determining the one or more properties of the environment includes: generating the test audio signal; determining the reflections in response to the generated test audio signal; determining the one or more properties of the environment based on variations between the test audio signal and the response; and The method of claim 1 , comprising:
10. The method described in claim 1, wherein the at least one action includes a change in the user's gaze target.
11. Retrieving the magnitude response information of the prototype filter includes: determining an index associated with the first frequency; using the determined index to find a corresponding index in the lookup table for retrieving the magnitude response information; The method of claim 1 , comprising:
12. 1. A system comprising: a wearable head device configured to provide an audio signal to a user, the wearable head device comprising one or more sensors; A circuit comprising: determining magnitude response information of a prototype filter, the magnitude response information including a plurality of gain values, at least one of the plurality of gain values including a first gain corresponding to a first frequency; storing the magnitude response information of the prototype filter in a look-up table; determining one or more parameters used to retrieve the magnitude response information from the lookup table; retrieving the magnitude response information of the prototype filter at the first frequency from the lookup table using the one or more parameters; calculating gains for a plurality of control frequencies based on the retrieved magnitude response information of the prototype filter at the first frequency; applying the calculated gain to the audio signal to generate a processed audio signal; presenting the processed audio signal to the user via the wearable head device; and a circuit configured to: determining the one or more parameters used to retrieve the magnitude response information from the lookup table comprises: determining one or more properties of the environment based at least in part on data received from the one or more sensors, the received data corresponding to reflections of a test audio signal; Detecting at least one action of a user of the wearable head device, the at least one action being detected by the one or more sensors of the wearable head device; determining the one or more parameters based on the at least one action of the user and the one or more properties of the environment; Including, the system.
13. The system of claim 12 further comprising a memory that stores the magnitude response information of the prototype filter.
14. The system of claim 13 , wherein the lookup table includes equally spaced entries of the magnitude response information of the prototype filter.
15. The system of claim 13, wherein the lookup table includes a plurality of indexes, each index associated with a plurality of frequencies.
16. The wearable head device one or more speakers configured to generate the test audio signal; the one or more sensors configured to determine the reflections in response to the generated test audio signal; The system of claim 12 , wherein the one or more characteristics of the environment are determined by the circuitry based on a change between the test audio signal and the response.
Citation Information
Patent Citations
General frequency characteristic display device
JP1990092105A
Sound characteristic correction system and karaoke device with the same
JP2008268257A
Methods and Apparatus to Assist Listeners in Distinguishing Between Electronically Generated Binaural Sound and Physical Environment Sound
US20170359467A1
Sound reproducing device using insert-type earphone
WO2009125567A1