System and method for interpolating a head-related transfer function

Information

  • Patent Grant
  • 12035126
  • Patent Number
    12,035,126
  • Date Filed
    Tuesday, September 14, 2021
    3 years ago
  • Date Issued
    Tuesday, July 9, 2024
    6 months ago
  • Inventors
    • da Costa Santos Fonseca; Nuno Miguel
    • Jorge dos Reis; Gustavo Miguel
    • Gomes Prazeres; Ashley Ines
  • Original Assignees
  • Examiners
    • Edwards; Carolyn R
    • Ganmavo; Kuassi A
    Agents
    • McAndrews, Held & Malloy, Ltd.
Abstract
This disclosure describes a system and method for Head-Related Transfer Function (HRTF) interpolation when an HRTF dataset does not contain a particular direction associated with a desired source. The disclosed HRTF interpolation uses a finite set of HRTFs from a dataset to obtain the HRTF of any possible direction and distance, even if the direction/distance doesn't exist on the current dataset.
Description
BACKGROUND

Limitations and disadvantages of conventional approaches to interpolate a head-related transfer function (HRTF) will become apparent to one of skill in the art, through comparison of such approaches with some aspects of the present method and system set forth in the remainder of this disclosure with reference to the drawings.


BRIEF SUMMARY

A system and method for interpolating a head-related transfer function is provided substantially as illustrated by and/or described in connection with at least one of the figures, as set forth more completely in the claims.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates an exemplary sound source positioned relative to a listener in accordance with aspects of this disclosure.



FIG. 2 illustrates an exemplary sphere mesh of an HRTF dataset in accordance with aspects of this disclosure.



FIG. 3 illustrates an exemplary alignment in time domain of impulse responses in accordance with aspects of this disclosure.



FIG. 4 illustrates an exemplary sound source positioned in front of a listener and at a distance shorter than the original distance of the HRTF dataset in accordance with aspects of this disclosure.



FIG. 5 illustrates an exemplary sound source positioned in front of a listener and outside the original distance of the HRTF dataset in accordance with aspects of this disclosure.



FIG. 6A illustrates an exemplary sound source located above a listener and at a distance shorter than original distance of the HRTF dataset in accordance with aspects of this disclosure.



FIG. 6B illustrates an exemplary sound source located above a listener and at a distance outside the original distance of the HRTF dataset in accordance with aspects of this disclosure.



FIG. 7 is a flowchart that illustrates exemplary method of generating an HRTF in accordance with aspects of this disclosure.





DETAILED DESCRIPTION

The perception of 3D sound can be obtained with headphones, thru the use of Head-Related Transfer Functions (HRTFs). An HRTF comprises a pair of filters (one for the left ear, another for the right ear) that when applied to a particular sound, give you the sense of a sound coming from a particular direction. To implement such systems, an HRTF dataset may be used. An HRTF dataset comprises a plurality of filter pairs, where each filter pair may correspond to a different direction.


This disclosure describes a system and method for HRTF interpolation when an HRTF dataset does not contain a particular direction. The disclosed HRTF interpolation uses a finite set of HRTFs from a dataset, to obtain the HRTF of any possible direction and distance, even if the direction/distance doesn't exist on the current dataset.


The method for HRTF interpolation may be performed in spherical coordinates on the angle/direction (e.g., azimuth and elevation) of the sound source and the distance of the sound source.



FIG. 1 illustrates an exemplary sound source 103 positioned relative to a listener 101. The azimuth 105 of the sound source 103 is determined in a clockwise direction from the x-axis 109. The elevation 107 of the sound source 103 is determined relative to the xy-plane 111 in the direction of the positive z-axis 113.


An HRTF dataset of Head-Related Impulse Responses (HRIRs) may be generated for different azimuths and elevations. FIG. 2 illustrates an exemplary sphere mesh 201 of an HRTF dataset, where each of the vertices corresponds to a pair of HRIR. The HRTF dataset in FIG. 2 comprises a pair of HRIR for each azimuth step of 15 degrees (i.e., 24 lines of longitude) and each elevation step of 15 degrees (i.e., 25 latitudes). Other step sizes or mesh structures, including HRTF datasets with multiple distances, are also envisioned by this disclosure.


The sphere mesh 201 is generated (for instance, using a convex-hull method), using the azimuths and the elevations recorded in the dataset. This sphere mesh 201 comprises triangles (e.g., triangle section 205). Each vertex in each triangle corresponds to a position (azimuth and elevation) in the original HRTF dataset. For simulating a sound being emitted by an audio source from an audio source location 203, the triangle section 205 pertaining to that audio source position is identified.


While this disclosure is illustrated with single point sources that intercept the triangle at a single point, larger sound sources (that overlap multiple triangles) may also be used. While this disclosure is illustrated with a sphere mesh comprising triangles, other sphere meshes (comprising, for example, quadrilaterals) may also be used.


A weight (W1, W2, and W3) of each triangle vertex is generated to triangulate the audio source location 203 within that triangle 205. These weights can be obtained using Vector-Base Amplitude Panning, or similar methods.


Each HRIR in the dataset may have a different initial delay (i.e., they may not be aligned to each other in the time domain). The proposed method implements an initial alignment in the time domain. FIG. 3 illustrates an exemplary alignment in time domain of two HRIRs 301a and 303a.


Before alignment, the HRIRs 301a and 303a are converted to a higher sample rate (e.g. ×1,000 times more resolution using a resampling algorithm). The time deviation (shift) between each HRIR 301a and 303a is determined by correlation. The HRIRs 301a and 303a may be aligned by padding zeros at the beginning or at the end, as necessary, or eventually by removing samples. For example, in FIG. 2, HRIR 301a arrives after HRIR 303a. The delay of HRIR 301a is added to the beginning of HRIR 303a to generate time-shifted HRIR 303b. To maintain the same length as time-shifted HRIR 303b, zeros are appended to the end of HRIR 301a to generate HRIR 301b.


The time alignment can either be done within each triangle (aligning the 3 vertices of a triangle), but it can also be done globally (alignment of all vertices between them).


The weights (W1, W2, and W3) are applied to the HRIRs of each vertex to compute the interpolated HRIR at the desired audio source location 203.


The weights (W1, W2, and W3) are also used to affect the time shift of the obtained HRIR. As such, the final time shift will be given by the weighted average of the time shifts computed during the alignment process.


After alignment, the obtained HRIR is converted back to the original sample rate (e.g. using a resampling algorithm).


To interpolate distance from a sound source, a different azimuth (az) and/or elevation (el) is selected for each ear.



FIG. 4 illustrates an example sound source 405 located in front of a listener and at a distance shorter than the distance of the HRTF dataset. Relative to the center of the head, the sound source is located at az=0°, nonetheless, regarding the left ear 401, the sound comes from the same direction as position 407, and regarding the right ear 403, the sound comes from the same direction as position 409. The proposed method uses these separated directions for each ear, instead of using a common direction as regular approaches.


For processing, an example head width of 18 cm (9 cm to each side of the center) may be considered. Although any head size may be substituted.



FIG. 5 illustrates an example sound source 505 located in front of and outside the HRTF distance. Relative to the center of the head, the sound source is located at az=0°, nonetheless, regarding the left ear 401, the sound comes from the same direction as position 507, and regarding the right ear 403, the sound comes from the same direction as position 509. The proposed method uses these separated directions for each ear, instead of using a common direction as regular approaches.



FIG. 6A illustrates an example sound source 601 located above a listener and at a distance shorter than the HRTF distance. The sound source is located on the z-axis 113 (el=90°). From the left ear 401 point-of-view and the right ear 403 point-of-view, each elevation is the same and is less than 90°. The virtual position 607 will be used for left ear 401, and the virtual position 609 will be used for the right ear 403.



FIG. 6B illustrates an example sound source 603 located above a listener and at a distance outside the HRTF distance. The sound source is located on the z-axis 113 (el=90°). From the left ear 401 point-of-view and the right ear 403 point-of-view, each elevation is the same and is less than 90°. The virtual position 607 will be used for left ear 401, and the virtual position 609 will be used for the right ear 403.



FIG. 7 is a flowchart that illustrates exemplary method of interpolating an HRTF in accordance with aspects of this disclosure. At 701, an HRTF dataset is opened and loaded into the system. For example, each vertex of each triangle section lies on the HRTF sphere.


At 703, a triangulation is performed over an HRTF sphere.


At 705, each HRIR is upsampled to obtain a higher quality.


At 707, for each triangle, the HRIR of all vertices are aligned in the time domain.


At 709, the system gets the position of the sound source in relation to the left ear position. For the left ear position: the system identifies which triangle contains the desired direction at 711; an impulse response is obtained with a weighted version of all vertices HRIRs at 713 (the weights are also used to apply a time offset to the obtained HRIR; and the HRIR is downsampled, to the original sample rate at 715. Note, for a point on the HRTF sphere that falls exactly on an edge or vertex of multiple triangle sections, only one triangle section needs to be considered. Then, the weight of each vertex is calculated.


At 717, the system gets the position of the sound source in relation to the right ear position. For the right ear position: the system identifies which triangle contains the desired direction at 719; an impulse response is obtained with a weighted version of all vertices HRIRs at 721 (the weights are also used to apply a time offset to the obtained HRIR; and the HRIR is downsampled, to the original sample rate at 723. Note, for a point on the HRTF sphere that falls exactly on an edge or vertex of multiple triangle sections, only one triangle section needs to be considered. Then, the weight of each vertex is calculated.


While the present system has been described with reference to certain implementations, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present system. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present disclosure without departing from its scope. Therefore, it is intended that the present method and/or system not be limited to the particular implementations disclosed, but that the present system will include all implementations falling within the scope of the appended claims.


As utilized herein the terms “circuits” and “circuitry” refer to physical electronic components (i.e. hardware) and any software and/or firmware (“code”) which may configure the hardware, be executed by the hardware, and or otherwise be associated with the hardware. As used herein, for example, a particular processor and memory may comprise first “circuitry” when executing a first one or more lines of code and may comprise second “circuitry” when executing a second one or more lines of code. As utilized herein, “and/or” means any one or more of the items in the list joined by “and/or”. As an example, “x and/or y” means any element of the three-element set {(x), (y), (x, y)}. In other words, “x and/or y” means “one or both of x and y”. As another example, “x, y, and/or z” means any element of the seven-element set {(x), (y), (z), (x, y), (x, z), (y, z), (x, y, z)}. In other words, “x, y and/or z” means “one or more of x, y and z”. As utilized herein, the term “exemplary” means serving as a non-limiting example, instance, or illustration. As utilized herein, the terms “e.g.,” and “for example” set off lists of one or more non-limiting examples, instances, or illustrations. As utilized herein, circuitry is “operable” to perform a function whenever the circuitry comprises the necessary hardware and code (if any is necessary) to perform the function, regardless of whether performance of the function is disabled or not enabled (e.g., by a user-configurable setting, factory trim, etc.).

Claims
  • 1. A method, the method comprising: determining a first point of intersection for a 3D sound source relative to a left ear, wherein audio from the 3D sound source is operable for presentation via headphones, wherein the first point of intersection for the 3D sound source relative to the left ear is a first position on a sphere mesh as centered on the left ear;generating a first impulse response according to a first set of existing impulse responses, wherein the first set of existing impulse responses comprises three existing impulse responses, and wherein the first impulse response is generated by aligning in the time domain and interpolating a plurality of existing impulse responses of the first set of existing impulse responses;time aligning the first impulse response according to a weighted combination of delays associated with each impulse response of the first set of existing impulse responses;determining a second point of intersection for the 3D sound source relative to a right ear, wherein the second point of intersection for the 3D sound source relative to the right ear is a second position on the sphere mesh as centered on the right ear;generating a second impulse response according to a second set of existing impulse responses; andtime aligning the second impulse response according to a weighted combination of delays associated with each impulse response of the second set of existing impulse responses.
  • 2. The method of claim 1, wherein the second set of existing impulse responses comprises three prerecorded impulse responses, and wherein the second impulse response is generated by time aligning and interpolating a plurality of existing impulse responses of the second set of existing impulse responses.
  • 3. The method of claim 1, wherein the method comprises in a dataset of impulse responses, and wherein each impulse response in the dataset of impulse responses is associated with a unique location of a sound source, and wherein each unique location of the sound source is equidistant from a location of the recording.
  • 4. The method of claim 1, wherein the first set of prerecorded impulse responses and the second set of prerecorded impulse responses are selected from a dataset, and wherein each impulse response in the dataset corresponds to an azimuth and an elevation, and wherein each azimuth and elevation corresponds to a vertex of the sphere mesh.
  • 5. The method of claim 1, wherein the first position on the sphere mesh is based on a first vector that begins at the left ear and passes through a desired sound source location, and wherein the second position on the sphere mesh is based on a second vector that begins at the right ear and passes through the desired sound source.
  • 6. The method of claim 1, wherein every position on the sphere mesh is within a triangle section of the sphere mesh, and wherein the three prerecorded impulse responses correspond to three vertices of the triangle section.
  • 7. The method of claim 1, wherein the interpolation comprises generating a magnitude-interpolated impulse response by combining a plurality of weighted magnitudes of time aligned impulse responses.
  • 8. The method of claim 1, wherein the method comprises mixing a mono component with the first impulse response and the second impulse response, if a desired sound source is located within a listener's head.
  • 9. A non-transitory computer-readable medium having a plurality of code sections, each code section comprising a plurality of instructions executable by one or more processors to perform actions, wherein the actions of the one or more processors comprise: determining a first point of intersection for a 3D sound source relative to a left ear, wherein audio from the 3D sound source is operable for presentation via headphones, wherein the first point of intersection for the 3D sound source relative to the left ear is a first position on a sphere mesh as centered on the left ear;generating a first impulse response according to a first set of prerecorded impulse responses, wherein the first set of prerecorded impulse responses comprises three prerecorded impulse responses, and wherein the first impulse response is generated by time aligning and interpolating a plurality of prerecorded impulse responses of the first set of prerecorded impulse responses;time aligning the first impulse response according to a weighted combination of delays associated with each impulse response of the first set of existing impulse responses;determining a second point of intersection for the 3D sound source relative to a right ear, wherein the second point of intersection for the 3D sound source relative to the right ear is a second position on the sphere mesh as centered on the right ear;generating a second impulse response according to a second set of prerecorded impulse responses; andtime aligning the second impulse response according to a weighted combination of delays associated with each impulse response of the second set of existing impulse responses.
  • 10. The non-transitory computer-readable medium of claim 9, wherein the second set of prerecorded impulse responses comprises three prerecorded impulse responses, and wherein the second impulse response is generated by time aligning and interpolating a plurality of prerecorded impulse responses of the second set of prerecorded impulse responses.
  • 11. The non-transitory computer-readable medium of claim 9, wherein the actions comprise controlling a device to record a dataset of impulse responses, and wherein each impulse response in the dataset of impulse responses is associated with a unique location of a sound source, and wherein each unique location of the sound source is equidistant from a location of the recording.
  • 12. The non-transitory computer-readable medium of claim 9, wherein the first set of prerecorded impulse responses and the second set of prerecorded impulse responses are selected from a dataset, and wherein each impulse response in the dataset corresponds to an azimuth and an elevation, and wherein each azimuth and elevation corresponds to a vertex of the sphere mesh.
  • 13. The non-transitory computer-readable medium of claim 9, wherein the first position on the sphere mesh is based on a first vector that begins at the left ear and passes through a desired sound source location, and wherein the second position on the sphere mesh is based on a second vector that begins at the right ear and passes through the desired sound source.
  • 14. The non-transitory computer-readable medium of claim 9, wherein every position on the sphere mesh is within a triangle section of the sphere mesh, and wherein the three prerecorded impulse responses correspond to three vertices of the triangle section.
  • 15. The non-transitory computer-readable medium of claim 9, wherein the interpolation comprises generating a magnitude-interpolated impulse response by combining a plurality of weighted magnitudes of time aligned impulse responses.
  • 16. The non-transitory computer-readable medium of claim 9, wherein the actions comprises mixing a mono component with the first impulse response and the second impulse response, if a desired sound source is located within a listener's head.
US Referenced Citations (16)
Number Name Date Kind
10327089 Foss et al. Jun 2019 B2
10425762 Schissler Sep 2019 B1
20090041254 Jin et al. Feb 2009 A1
20090046864 Mahabub et al. Feb 2009 A1
20100080396 Aoyagi Apr 2010 A1
20110264456 Koppens Oct 2011 A1
20130202124 Bellanova Aug 2013 A1
20150092965 Umminger Apr 2015 A1
20160044430 Mcgrath Feb 2016 A1
20160227338 Oh Aug 2016 A1
20160373877 Laitinen Dec 2016 A1
20180048979 Lee Feb 2018 A1
20180192226 Woelfl Jul 2018 A1
20180302737 Laitinen Oct 2018 A1
20190313200 Stein Oct 2019 A1
20200037091 Jeon Jan 2020 A1
Foreign Referenced Citations (3)
Number Date Country
101511047 Aug 2009 CN
2013142653 Sep 2013 WO
WO-2017135063 Aug 2017 WO
Non-Patent Literature Citations (2)
Entry
Int'l Search Report and Written Opinion AppIn No. PCT/US2022/058629 mailed Dec. 5, 2022.
Int'l Preliminary Report on Patentability AppIn No. PCT/IB2022/058629 dated Mar. 28, 2024.
Related Publications (1)
Number Date Country
20230081104 A1 Mar 2023 US