The proposed technology generally relates to audio technology and rendering of sound over headphones or similar audio devices using audio filters. More specifically the proposed technology relates to a method and system for constructing a filter database using head-tracking data, an audio filter database and a corresponding computer program and computer-program product.
In certain applications it is desired to render a sound over headphones to a listener such that the sound is perceived as coming from a specific position in space outside of the listening person's head. A typical application is Virtual Reality, where the listener would wear a Virtual Reality head-set that presents a visual image together with headphones that complement the experience with audio. Sometimes Virtual Reality is also referred to as Augmented Reality, AR, or X Reality, XR, where X stands for “unknown”.
A head-tracking solution is normally used that senses which general direction a person is facing in relation to a sound source. What the person sees and hears is consequently updated in real time so that the person can look in different directions in the virtual world and get an experience of being there.
When the listener turns, the relative direction to sound sources in the virtual world changes. Head-tracking information is thus needed so that sound sources can be rendered in their correct place in the virtual world regardless of which direction the listener is facing.
By way of example, a common method used to render virtual audio sources is based on convolving an audio source signal with a HRTF response. The HRTF (Head Related Transfer Function) is comprised of one transfer function for each ear which has encoded in it the necessary information that the brain needs to sense the direction of the sound. Described simply, a HRTF response can be measured by placing microphones in the ears of a person, then placing a sound source at a specific angle and distance to the person and then measuring the transfer function (or equivalently, the impulse response) from the sound source to each of the listener's ears. The angle of the source is specified by the 3D polar angle in relation to the head, with origo in the center of the head.
By measuring HRTFs for a large number of directions to a person, a database of HRTFs can be constructed and this enables the rendering of virtual sound sources at many different locations as well as moving sound sources. The way that an HRTF database is normally measured is by having the person that the measurements are taken on sit still and face in a very precise direction during the measurements while the position of the sound source is changed for each measurement. Since the person sits still while the position of the sound source is changed, the head and torso of the person are kept in the same constant relation during the measurements. More information about the current state of the art in binaural technology can be found in reference [1].
It is a general object to improve the content and/or usefulness of an audio filter data base constructed based on HRTF measurements.
It is a specific object to provide a method for creating a filter database using head-tracking data.
It is also an object to provide a system for constructing a filter database using head-tracking data.
Another object is to provide an audio filter database.
Yet another object is to provide a computer program and computer-program product.
These and other objects are met by the proposed technology as claimed herein.
According to a first aspect, there is provided a method for creating a filter database using head-tracking data. The method comprises:
According to a second aspect, there is provided a system for constructing a filter database using head-tracking data. The system is configured to determine, based on measurements of sound from a sound source, representations of Head Related Transfer Functions, HRTFs, each HRTF representation associated with a head pose, also referred to as a position of the head of an intended subject, relative to the torso pose in addition to a position and/or direction of the sound source. The system is further configured to track the head pose relative the torso pose for each measurement to obtain associated head-tracking data. The system is also configured to store, in the database, the determined representations of HRTFs together with the associated head-tracking data and information representative of the position and/or direction of the sound source.
According to a third aspect, there is provided an audio filter database implemented in a memory structure having memory locations for storing information representative of audio filters. The audio filter database comprises a number of representations of Head Related Transfer Functions, HRTFs, stored in the memory locations of the database, wherein each HRTF representation is stored together with associated head-tracking data representing a head pose, also referred to as a head position, relative to a torso pose of an intended subject and information representative of a position and/or direction of a sound source.
According to a fourth aspect, there is provided a computer program comprising instructions, which when executed by at least one processor, cause the at least one processor to:
According to a fifth aspect, there is also provided a computer-program product comprising a computer-readable medium having stored thereon such a computer program.
In this way, it is possible to create a filter database using head-tracking data for storing HRTF representations together with associated head-tracking data defining the head pose relative to the torso pose of an intended subject as well as associated information of the position and/or direction of a sound source.
The proposed technology offers substantial improvement(s) with regard to the content and/or usefulness of an audio filter data base constructed based on HRTF measurements.
As mentioned, a common method used to render virtual audio sources is based on convolving an audio source signal with a HRTF response. The HRTF comprises a transfer function for each ear which has encoded in it the necessary information that the brain needs to sense the direction of the sound. Described simply, a HRTF response can be measured by placing microphones in the ears of a person, then placing a sound source at a specific angle and distance to the person and then measuring the transfer function (or equivalently, the impulse response) from the sound source to each of the listener's ears. The angle of the source is specified by the 3D polar angle in relation to the head, with origo in the center of the head.
We argue that the above described procedure for measuring HRTFs is problematic. This is because in a natural situation, a person often tends to move the head to look in different directions while keeping the torso static. What the above procedure emulates is a situation where a person moves the whole body while keeping the head static in relation to the body. HRTFs contain information both about the complex response of the pinna and head diffraction, but also about the reflections from the torso. The reflection pattern from the torso changes depending on the pitch, roll and yaw of the head in relation to the torso. An example of a study of the influence of the yaw-dimension can be found in reference [2].
Humans actively move their head and body when orienting or localizing sounds. So in order to capture HRTFs related to these dynamic head and body movements a dynamic head-tracker-based HRTF system is proposed. This solution opens up for a completely new dimension, creating a set of HRTFs based on the head's rotation around the X- and/or Z-axis in relation to the torso, see
Our research shows that the influence on the HRTFs due to isolated head movements as described herein is important to model correctly when simulating virtual audio sources, that modeling it correctly improves perceived locational accuracy and finally that it alleviates the need for individualization of HRTFs. It is a highly complex task to measure and determine these dynamical HRTFs with a high degree of accuracy and resolution in the pitch, roll and yaw dimensions. Our novel system implementation for HRTF measurements described below has therefore been critical to verify that our hypothesis is indeed correct. Sonograms of HRTFs obtained from our measurement system, see
According to different aspects of the proposed technology, there is provided at least:
According to a first aspect, there is provided a method for creating a filter database using head-tracking data.
In the example of
S1: measuring, for a given sound source, and constructing Head Related Transfer Functions, HRTFs, each HRTF associated with a head pose, also referred to as a position of the head of an intended subject, relative to a torso pose in addition to a position and/or direction of the sound source;
S2: tracking the head pose relative the torso pose for each measurement to obtain associated head-tracking data; and
S3: storing representations of the HRTFs together with the associated head-tracking data and information representative of the position and/or direction of the sound source in the database.
In this way, it is possible to create a filter database using head-tracking data for storing HRTF representations together with associated head-tracking data defining the head pose relative to the torso pose of an intended subject as well as associated information of the position and/or direction of a sound source.
The proposed technology offers substantial improvement(s) with regard to the content and/or usefulness of an audio filter data base constructed based on HRTF measurements.
By way of example, the representations of the HRTFs include, for each HRTF, at least a subset of the HRTF and/or a processed version of at least a subset of the HRTF.
The skilled person realizes that any suitable HRTF representation may be determined and stored in the database, e.g. for later retrieval and use for calculating an audio filter.
As an example, the step S1 of measuring HRTFs comprises measuring HRTFs for at least one of the dimensions of the head pose relative to the torso pose.
For example, the pose, or position, of the head may be defined in terms of pitch, roll and/or yaw.
According to an illustrative example of a practical procedure, the HRTFs may be measured for a number of different head poses and/or a number of different positions of the sound source.
In other words, each HRTF representation may preferably be associated with the head pose relative to the torso pose in addition to the sound source's direction in relation to the torso.
For example, the head-tracking data may be obtained by a head-tracking device tracking the head's pitch, roll and/or yaw in relation to the torso.
In a particular non-limiting example, the HRTFs are measured by a binaural HRTF capturing system including microphones located at the ears of the intended subject.
According to a second aspect, there is provided a system for constructing a filter database using head-tracking data. The system is configured to determine, based on measurements of sound from a sound source, representations of Head Related Transfer Functions, HRTFs, each HRTF representation associated with a head pose, also referred to as a position of the head of an intended subject, relative to the torso pose in addition to a position and/or direction of the sound source. The system is further configured to track the head pose relative the torso pose for each measurement to obtain associated head-tracking data. The system is also configured to store, in the database, the determined representations of HRTFs together with the associated head-tracking data and information representative of the position and/or direction of the sound source.
By way of example, reference can be made to the example implementations of
For example, the representations of the HRTFs include, for each HRTF, at least a subset of the HRTF and/or a processed version of at least a subset of the HRTF.
As an example, the system comprises a measurement system for performing the measurements of sound from the sound source, a HRTF determination block configured to determine the representations of HRTFs, and an HRTF database for storing the determined representations of HRTFs together with the associated head-tracking data and associated information representative of the position and/or direction of the sound source. For example, reference can be made to
In a particular example, the system comprises a head-tracker configured to track the head pose relative the torso pose for each measurement to obtain the head-tracking data and/or an input interface configured to receive the head-tracking data.
The system may be configured to determine representations of HRTFs for at least one of the dimensions of the head pose relative to the torso pose. For example, the pose, or position, of the head may be defined in terms of pitch, roll and/or yaw.
In a practical example implementation, the system may be configured to determine representations of HRTFs for a number of different head poses and/or a number of different positions of the sound source.
In other words, each HRTF representation may be associated with the head pose relative to the torso pose in addition to the sound source's direction in relation to the torso.
By way of example, the system comprises a binaural HRTF capturing system including microphones located at the ears of the intended subject.
For example, the system may be configured to extract binaural HRTFs based on audio data sent to the sound source and audio data recorded by microphones located at the ears of the intended subject.
In a particular example, the system comprises a processor and a memory, the memory comprising instructions executable by the processor, whereby the processor is operative to determine the representations of HRTFs and store them in the HRTF database. For example, reference can be made to the example implementation of
According to a third aspect, there is provided an audio filter database implemented in a memory structure having memory locations for storing information representative of audio filters. The audio filter database comprises a number of representations of Head Related Transfer Functions, HRTFs, stored in the memory locations of the database, wherein each HRTF representation is stored together with associated head-tracking data representing a head pose, also referred to as a head position, relative to a torso pose of an intended subject and information representative of a position and/or direction of a sound source.
For example, the representations of the HRTFs may include, for each HRTF, at least a subset of the HRTF and/or a processed version of at least a subset of the HRTF.
In a particular example, the representations of HRTFs stored in the database are determined based on measurements of sound from the sound source, and each HRTF representation is stored together with information about both the position and/or direction of the sound source and the head-tracking data representing a head pose relative to a torso pose at the time of the measurement on which the HRTF representation is based.
By way of example, the representations of HRTFs stored in the database are determined based on measurements by microphones located at the ears of the intended subject.
For example, the head pose may be represented by pitch, roll and yaw or a subset thereof.
In a particular example, the HRTFs may be represented by FIR filters or by IIR filters or a combination thereof.
Optionally, the representations of HRTFs include a HRTF representation describing an individual person's HRTF and/or a HRTF representative of a plurality of persons.
As an example, the audio filter database may be represented by a collection of time-domain filter responses, or the data in the audio filter database may be represented as a transform involving time, frequency and/or spatial dimensions.
According to a non-limiting example, the representations of HRTFs stored in the database are representations of binaural HRTFs.
For the interested reader it may be useful to distinguish between the respective scopes of a virtual sound source and a virtual sound object. For example, this may be done in the following way:
A virtual sound object may be defined as an audio stream or clip that has a position (and a velocity) in a virtual space.
Not until one has defined also the position (and velocity) of a listener in this virtual space, it can be rendered as intended for that listener. This rendering may include creating reflections (maybe as new virtual sound objects), room reverberation, distance gain reduction, occlusion gain reduction and coloration, doppler effect, and HRTF-like processing for binaural playback.
By way of example, a virtual sound source may be defined as a passage from the virtual space to the audio rendering system, possibly including psychoacoustic processing, such as HRTFs.
The following two examples illustrate that there may be a confusion between virtual sound source and virtual sound object:
For example, the source direction may be defined as the direction to the virtual sound source relative to the listeners general position (e.g. defined by the listener's torso). The head pose is registered separately by the head tracker. Together, the head pose and the source direction, determine a unique representation of a HRTF (Dynamic HRTF).
When acquiring data for creating a HRTF database, it is possible to use physical reference loudspeakers to represent virtual sound sources. They may be placed at certain positions relative to the intended subject to coincide with the source direction. By letting the subject move his/her head wearing a head tracker while playing excitation sounds in the reference loudspeaker, it is possible to acquire the HRTF for a specific head pose and source direction.
For a better understanding, the proposed technology will now be described with reference to non-limiting examples.
By way of example, there is provided a database of HRTFs, e.g. binaural HRTFs, and a method and system for measuring and constructing the HRTFs, associated with the head pose relative to the torso pose in addition to the sound source's direction in relation to the torso.
The database stores HRTFs and associated head-tracking data, created by audio measurements on one or more subjects.
The pose, or position, of the head can be described in terms of pitch, roll and/or yaw (see
The term “head-tracking device” or “head-tracker” shall be understood to denote a device which tracks the head pose relative to the torso, typically in addition to the direction relative to a given sound source.
An HRTF database can be created by measuring HRTFs for a sound source at a certain position for all three dimensions (pitch, roll and yaw) of the head pose relative to the torso pose, or a subset thereof (for example only pitch and roll).
To create the HRTFs stored in the database, we may by way of example use a binaural HRTF capturing system including a head-tracking device tracking the head's pitch, roll and yaw in relation to the torso, microphones at the ears, a sound source at a known position, and software running on a computer connected to the aforementioned devices, or a more general system as described later on.
The system can extract individual HRTFs or combine several individuals' HRTFs into an HRTF which represents a typical person (a “universal HRTF”). Individual aspects of each person's HRTF, such as the ITD (Interaural Time Difference), can also be extracted.
We denote an HRTF associated with both the head pose relative to the torso pose and the sound source's direction in relation to the torso, a dynamic HRTF.
Another aspect of the proposed technology concerns a system for sound reproduction such as a binaural 3D sound rendering system for producing virtual sound sources taking into account the effect of the head pose relative to the torso pose, in addition to the direction of the sound source in relation to the torso, using an HRTF database as described above. A virtual sound source can for example be a virtual loudspeaker.
In brief, the rendering system may use the HRTF database, a head-tracking device, audio input for a sound source at a desired position and selects and applies appropriate HRTFs from the database to output audio data for a sound system. Several sound sources at different positions can be processed by parallel rendering blocks. For example, a virtual home theater loudspeaker set-up could be created by combining for example five virtual sound sources positioned in a typical home theater configuration.
The dimensions (pitch, roll and yaw) considered can be three dimensions, two dimensions or even a single dimension. Preferably, at least two dimensions are considered for the HRTF database, even though the use of a single dimension in a HRTF database for a head-tracking-based sound rendering system is also included in the scope of the proposed technology. A basic idea is to capture also the influence on the HRTFs due to isolated head movements relative to the torso.
The overall system includes an audio source, a head-tracking-based HRTF filter system 20, a head-tracker and an associated sound system, and an optional block for considering other effects. By way of example, the HRTF filter system includes a HRTF database, a filter selection block and a convolver.
In this example, the Audio Source block produces the audio that is supposed to be rendered at a specific point in space as well as the direction of the virtual source. The audio data enters the convolver block and the direction data enters the HRTF Selection block.
The HRTF database block includes HRTFs for a set of measured directions.
The Head-Tracker block produces real-time data about a person's head pose.
By way of example, the HRTF Selection block combines the head pose input from the Head Tracker block and the direction information from the Audio Source block to select one or more HRTFs from the HRTF database, and calculating the proper HRTF given the head pose and source direction information. Each HRTF can be for example an FIR filter or an IIR filter, or a combination, in cascade or in parallel, thereof.
As an example, the Convolver block convolves the selected HRTF with the audio data from the Audio Source block and sends it to the Sound System block.
The Sound System block represents an audio system that is configured to deliver an audio signal such as a binaural audio signal to a listener.
The Other Effects block is an optional block that may add e.g. room effects like reflections to the sound.
The blocks mentioned may be in the form of a software implementation running on for example a mobile phone, a PC, a headphone, or a Virtual Reality and/or Augmented Reality headset. Each block can run on any other processing device with sufficient memory and CPU cycles. The Head-Tracker, the Audio Source, the Other Effects block and the Sound System each provides input and/or output for our system as described above.
The systems described herein can be made more efficient by removing the Interaural Time Difference, ITD, from the HRTF and applying it as a separate delay line rather than within the Convolver block.
The system of
By way of example, the Measurement system uses Microphone input that may be providing, as input, the recording of the sound at each ear from a known sound source. For example, a microphone in each ear may capture audio data and this may be used as input to the HRTF database constructing system. The position of the sound source is known as well as the audio data sent to the sound source. Based on the recorded audio data from the two microphones, the HRTF determination block extracts the associated binaural HRTF and may for example output it as digital filters (FIR, IIR or any combination thereof), one for each ear, to the HRTF database. Associated head-tracking data (such as pitch, roll and/or yaw of the head) and the sound source position are stored with each binaural HRTF.
The HRTF determination block can for example be implemented in various ways using system identification. In essence it deconvolves the measurements with the known audio data sent to the sound source. See for example [3] or [4]. In practice, smoothing and interpolation can be useful to create better models than basic deconvolution. To reduce the memory requirements of the HRTF database the ITD can be extracted from the HRTF impulse response using for example cross-correlation or zero-crossing detection to the left of the main peak of the impulse response of the HRTF.
The filter database constructed using for example the system described herein, may thus store a number of dynamic HRTFs, each one either represented by FIR filters or by IIR filters or a combination thereof, in either case either as a (binaural) HRTF describing an individual person's binaural HRTF or a universal (binaural) HRTF representative of a large number of persons, together with the associated position of the sound source in relation to the person, and the head pose (described by pitch, roll and yaw or a subset thereof) in relation to the torso pose.
It should be understood that the invention is not limited to a certain format of the data in the HRTF filter database. By way of example, the HRTF filter database can be represented by a collection of time-domain filter responses, or for example the data could be represented as some transform involving for example time, frequency and/or spatial dimensions. Other parts of the described system are not limited to a certain form of the data either.
It will be appreciated that the methods and arrangements described herein can be implemented, combined and re-arranged in a variety of ways.
For example, embodiments may be implemented in hardware, or in software for execution by suitable processing circuitry, or a combination thereof.
The steps, functions, procedures, modules and/or blocks described herein may be implemented in hardware using any conventional technology, such as discrete circuit or integrated circuit technology, including both general-purpose electronic circuitry and application-specific circuitry.
Alternatively, or as a complement, at least some of the steps, functions, procedures, modules and/or blocks described herein may be implemented in software such as a computer program for execution by suitable processing circuitry such as one or more processors or processing units.
Examples of processing circuitry includes, but is not limited to, one or more microprocessors, one or more Digital Signal Processors (DSPs), one or more Central Processing Units (CPUs), video acceleration hardware, and/or any suitable programmable logic circuitry such as one or more Field Programmable Gate Arrays (FPGAs), or one or more Programmable Logic Controllers (PLCs).
It should also be understood that it may be possible to re-use the general processing capabilities of any conventional device or unit in which the proposed technology is implemented. It may also be possible to re-use existing software, e.g. by reprogramming of the existing software or by adding new software components.
Optionally, the arrangement/system 100 may also include a communication circuit 130. The communication circuit 130 may include functions for wired and/or wireless communication with other devices, but may simply be a suitable input/output (I/O) device, input port(s) and/or output port(s).
It is also possible to provide a solution based on a combination of hardware and software. The actual hardware-software partitioning can be decided by a system designer based on a number of factors including processing speed, cost of implementation and other requirements.
The term ‘processor’ should be interpreted in a general sense as any system or device capable of executing program code or computer program instructions to perform a particular processing, determining or computing task.
The processing circuitry including one or more processors 210 is thus configured to perform, when executing the computer program 225, well-defined processing tasks such as those described herein.
The processing circuitry does not have to be dedicated to only execute the above-described steps, functions, procedure and/or blocks, but may also execute other tasks.
In a particular embodiment, the computer program 225; 235 comprises instructions, which when executed by at least one processor 210, cause the processor(s) 210 to perform the tasks described herein, including tasks related to the filer selection system, the filter system and/or the database constructing system.
In a particular example, there is provided a computer program comprising instructions, which when executed by at least one processor, cause the at least one processor to:
There is also provided a computer-program product comprising a computer-readable medium having stored thereon such a computer program.
The proposed technology provides a carrier comprising the computer program, wherein the carrier is one of an electronic signal, an optical signal, an electromagnetic signal, a magnetic signal, an electric signal, a radio signal, a microwave signal, or a computer-readable storage medium.
By way of example, the software or computer program 225; 235 may be realized as a computer program product, which is normally carried or stored on a computer-readable medium 220; 230, in particular a non-volatile medium. The computer-readable medium may include one or more removable or non-removable memory devices including, but not limited to a Read-Only Memory (ROM), a Random Access Memory (RAM), a Compact Disc (CD), a Digital Versatile Disc (DVD), a Blu-ray disc, a Universal Serial Bus (USB) memory, a Hard Disk Drive (HDD) storage device, a flash memory, a magnetic tape, or any other conventional memory device. The computer program may thus be loaded into the operating memory of a computer or equivalent processing device for execution by the processing circuitry thereof.
The procedural flows presented herein may be regarded as a computer flows, when performed by one or more processors. A corresponding apparatus may be defined as a group of function modules, where each step performed by the processor corresponds to a function module. In this case, the function modules are implemented as a computer program running on the processor.
The computer program residing in memory may thus be organized as appropriate function modules configured to perform, when executed by the processor, at least part of the steps and/or tasks described herein.
The embodiments described above are merely given as examples, and it should be understood that the proposed technology is not limited thereto. It will be understood by those skilled in the art that various modifications, combinations and changes may be made to the embodiments without departing from the present scope as defined by the appended claims. In particular, different part solutions in the different embodiments can be combined in other configurations, where technically possible.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SE2017/051042 | 10/24/2017 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62417538 | Nov 2016 | US |