Inertially stable virtual auditory space for spatial audio applications

During an initialization of a head pose tracker for a spatial audio system, a spatial audio ambience bed is rotated about a boresight vector to align the boresight vector with a center channel of the ambience bed. The boresight is computed using source device motion data and headset motion data. The ambience bed includes the center channel and one or more other channels. An ambience bed reference frame is aligned with a horizontal plane of a headset reference frame, such that the ambience bed is horizontally level with a user's ears. A first estimated gravity direction is fixed (made constant) in the ambience bed reference frame. During head pose tracking, the ambience bed reference frame is rolled about the boresight vector to align a second estimated gravity direction in the headset reference frame with the first estimated gravity direction fixed in the ambience bed reference frame.

TECHNICAL FIELD

This disclosure relates generally to spatial audio applications.

BACKGROUND

Spatial audio creates a three-dimensional (3D) virtual auditory space that allows a user wearing a headset to pinpoint where a sound source is located in the 3D virtual auditory space, while watching a movie, playing a video game or interacting with augmented reality (AR) content displayed on a source device (e.g., a computer screen). Some existing spatial audio platforms include a head pose tracker that uses a video camera to track the head pose of the user. Other existing spatial audio platforms use a single inertial measurement unit (IMU) in the headset for head pose tracking. If the source device is a mobile device (e.g., smartphone, tablet computer), then the source device and the headset are free to move relative to each other, which may adversely impact the user's perception of the 3D spatial audio. For example, in platforms that rely on a single IMU the audio would swivel off-center in cases such as movie-watching on a bus or plane that is turning, since it appears to the single headset IMU tracking solution that the user is turning their head.

SUMMARY

Embodiments are disclosed for an inertially stable virtual auditory space for spatial audio applications.

In an embodiment, a method comprises: during an initialization step of a head pose tracker for a spatial audio system that includes a source device and a headset coupled to the source device, a spatial audio ambience bed is rotated about a boresight vector to align the boresight vector with a center channel of the ambience bed. The boresight is computed using source device motion data and headset motion data. The ambience bed includes the center channel and one or more other channels. During the initialization step, an ambience bed reference frame is aligned with a horizontal plane of the user's head reference frame, such that the ambience bed is horizontally level with the user's ears. A first estimated gravity direction is fixed (made constant) in the ambience bed reference frame. During a head pose tracking step, the ambience bed reference frame is rolled about the boresight vector to align a second estimated gravity direction in the user's head reference frame with the first estimated gravity direction fixed in the ambience bed reference frame during initialization.

In an embodiment, the center channel and the one or more other channels are located in a common plane of the ambience bed.

In an embodiment, the ambience bed is configured for a 5.1 audio format.

In an embodiment, the source device is a mobile device that presents visual content synchronized with spatial audio played through the center channel and the one or more other channels of the ambience bed in the three-dimensional virtual auditory space.

In an embodiment, the estimated boresight vector determines an orientation of the ambience bed, and the ambience bed determines locations of audio channels around the user, such that when the center channel of the ambience bed is aligned with the boresight vector the center channel is rendered at an estimated location of source device.

In an embodiment, the first or second estimated gravity directions are computed by: determining a gravity direction using acceleration measurements output by an accelerometer of the source device, wherein the gravity direction is determined during a stationary or quiescence time interval when the source device is not moving; computing a specific force vector based on an average of the acceleration measurements; determining a reference gravity direction based on the specific force vector; predicting an attitude of the source device based on a rotation rate of the source device and the reference gravity direction, wherein the rotation rate is output by an angular rate sensor of the source device; and estimating the first or second gravity directions by rotating the determined gravity direction into an inertial reference frame using the predicted attitude of the source device.

In an embodiment, a system comprises: one or more processors; memory storing instructions that when executed by the one or more processors, cause the one or more processors to perform operations comprising: during an initialization of a head pose tracker for a spatial audio system that includes a source device and a headset coupled to the source device: rotating a spatial audio ambience bed in a three-dimensional virtual auditory space about a boresight vector to align a boresight vector with a center channel of the ambience bed, and to align an ambience bed reference frame with a horizontal plane of a headset reference frame, such that the ambience bed is horizontally level with a user's ears, and fixing a first estimated gravity direction in the ambience bed reference frame; and during head pose tracking: rolling the ambience bed reference frame about the boresight to align a second estimated gravity direction in the headset reference frame with the first estimated gravity direction fixed in the ambience bed reference frame, wherein the boresight is estimated using source device motion data and headset motion data, and the ambience bed includes the center channel and one or more other channels.

Other embodiments can include an apparatus, computing device and non-transitory, computer-readable storage medium.

Particular embodiments disclosed herein provide one or more of the following advantages. The relative motion (e.g., position and attitude) between a source device and a headset is tracked using motion data from both the source device and the headset to compensate for the motion of an externally moving global reference frame. Additionally, during head pose tracking an audio ambience bed including a center channel and other channels (e.g., L/R, L/R-S) is rolled about a boresight vector, so that an estimated gravity vector in a headset frame is aligned with estimated gravity vector fixed to an ambience bed reference frame during initialization of a head pose tracker. Without this alignment, a user would perceive virtual audio sources on one side of the ambience bed to be higher than virtual audio sources on the opposite side of the ambience bend when the user tilts their head.

DETAILED DESCRIPTION

Example Systems

FIG.1is a conceptual diagram illustrating the use of correlated motion to select a motion tracking state, according to an embodiment. In the example scenario shown, a user is viewing audio/visual (AV) content displayed on source device101while wearing headset102that is wired or wirelessly coupled to source device101.

Source device101includes any device capable of playing AV content and can be wired or wirelessly coupled to headset102, including but not limited to a smartphone, tablet computer, laptop computer, wearable computer, game console, television, etc. In an embodiment, source device101includes the architecture700described in reference toFIG.7. The architecture600includes inertial measurement unit (IMU)707that includes various motion sensors, including but not limited to angular rate sensors (e.g., 3-axis MEMS gyro) and accelerometers (e.g., 3-axis MEMS accelerometer). When source device103is moved or rotated, the motion sensors detect the motion. The outputs of IMU707are processed into rotation and acceleration data in an inertial reference frame. In an embodiment, source device101outputs AV content, including but not limited to augmented reality (AR), virtual reality (VR) and immersive video content. Source device101also includes an audio rendering engine (e.g., a binaural rendering engine) that simulates the main audio cues humans use to localize sounds including interaural time differences, interaural level differences, and spectral filtering done by the outer ears.

Headset102is any device that includes loudspeakers for projecting acoustic audio, including but not limited to: headsets, earbuds, ear phones and loudspeakers (e.g., smart speakers). In an embodiment, headset102includes the architecture800described in reference toFIG.8. The architecture includes IMU811that includes various motion sensors, including but not limited to angular rate sensors (e.g., 3-axis MEMS gyro) and accelerometers (e.g., 3-axis MEMS accelerometer). When the user translates or rotates her head, the motion sensors in IMU811detect the motion. The outputs of the headset motion sensors are processed into rotation and acceleration data in the same inertial reference frame as the rotation and acceleration output by IMU607of source device101.

In an embodiment, the headset motion data is transmitted to source device101over a short-range wireless communication channel (e.g., a Bluetooth channel). At source device101, correlation motion detector103determines similarities (e.g., similar attitude and gravity features) between the headset motion data and the source device motion data. If the headset data and source device motion data are determined to not be correlated, a head tracker is transitioned into a 1-IMU tracking state104, where head tracking is performed using only the headset motion data. If the headset motion data and the source device motion data are determined to be correlated, the head tracker is transitioned into a 2-IMU fusion tracking state105, where head tracking is performed using relative motion data computed from the headset motion data and source device motion data. In the 2-IMU fusion tracking state105, the relative position and relative attitude is computed using a relative motion model and extended Kalman filter, as described in Appendix A. The estimated relative motion (a boresight vector) is used by a head tracker to track the user's head pose and keep the spatial audio centered and inertially stable, as described in reference toFIGS.3-5. The boresight vector estimate is updated each time the relative motion changes, and thus may cause the virtual auditory space to become uncentered. Because the estimated boresight vector is subject to drift error, the boresight vector needs to be corrected periodically or in response to trigger event (e.g., a large user posture change), as described in Appendix A.

FIG.2illustrates a centered and inertially stabilized 3D virtual auditory space200, according to an embodiment. The virtual auditory space200includes virtual sound sources or “virtual speakers” (e.g., center (C), Left (L), Right (R), left-surround (L-S) and right-surround (R-S)) that are rendered in ambience bed202using known spatial audio techniques, such as binaural rendering. To maintain the desired 3D spatial audio effect, it is desired that the center channel (C) be aligned with a boresight vector203. The boresight vector203originates from a headset reference frame and terminates at a source device reference frame. When the virtual auditory environment is first initialized, the center channel is aligned with boresight vector203by rotating a reference frame for the ambience bed202(XA, YA, ZA) to align the center channel with boresight vector203, as shown inFIG.2.

This alignment process causes the spatial audio to be “centered.” When the spatial audio is centered, the user perceives audio from the center channel (e.g., spoken dialogue) as coming directly from the display of source device101. The centering is accomplished by tracking boresight vector203to the location of source device101from the head reference frame using an extended Kalman filter (EKF) tracking system, as described in Appendix A. Estimated boresight vector203only determines the location of the center channel. A second tracker takes as input the estimated boresight vector203and provides an output orientation of ambience bed202, which determines the location of the L/L-S and R/R-S surround channels around the user in addition to the center channel. Aligning the center channel of ambience bed202with boresight vector203allows rendering the center channel at the estimated location of source device101for the user's perception.

If boresight vector203is not centered on source device101(e.g., due to tracking error), then aligning the center channel of ambience bed202will not “center” the audio, since the center channel will still be rendered at the erroneous estimate of the location of source device101. Note that boresight vector203changes whenever the user's head rotates with respect to source device101, such as when source device101is stationary in front of the user and the user's head is rotating. In this case, the motion of the user's head is accurately tracked as the head rotates, so that even when boresight vector203changes, the audio stays centered on the estimated location of source device101because the EKF is providing accurate tracking of how the true boresight vector203is changing. Also note that spatial audio becomes uncentered when the estimated boresight vector203is not the true location of source device101due to tracking error, which may come from drift over time, such as IMU propagation errors from gyro bias, etc., or other sources of error. In an embodiment, the tracking error is corrected using a bleed-to-zero (BTZ) process when the user is quiescent or a complex transition is detected, as described in Appendix A.

Note that ambience bed202shown inFIG.2is for a 5.1 audio format, where all audio channels are located in an XAYAplane of ambience bed202(ZA=0), where XAis forward towards the center channel, YAis right and ZAis down. Other embodiments, can have more or fewer audio channels, and the audio channels can be placed at different locations in the 3D virtual auditory space arbitrarily in any plane.

FIG.3is a block diagram of system300for centering and inertially stabilizing a 3D virtual auditory space, according to an embodiment. System300includes initialization module301, center alignment module302and stabilizer module304. Relative motion tracker303provides an estimated boresight vector to modules301,302. Gravity direction estimator305provides an estimated gravity direction to modules301,304.

During initialization, initialization module301uses an the estimated gravity direction and boresight vector203to constrain the right side of ambience bed202(seeFIG.2) to lie within the XY horizontal plane of the user's head (in the plane through the user's ears). Relative motion tracker303estimates boresight vector203in a headset sensor reference frame using an extended Kalman filter, as described in Appendix A. Gravity direction estimator305estimates a gravity direction based on acceleration data from an accelerometer of source device101, as described in reference toFIG.4.

During head pose tracking, center alignment module302rotates ambience bed202to align with the center channel using an updated boresight vector203. Stabilizer module304uses the estimated gravity vector to rotate (e.g., rolls) ambience bed202about boresight vector203to align the estimated gravity direction in the user's head reference frame with the gravity direction fixed in the ambience bed202reference frame during initialization.

FIG.4is a flow diagram of process400for estimating gravity direction using sensor data, according to an embodiment. Process400can be implemented using, for example, the source device architecture shown inFIG.7.

Process400begins by initializing an accelerometer-based gravity direction (402). For example, during a stationary or quiescence time interval when source device101is not moving an average specific force vector fave(t) is computed by averaging accelerometer measurements (axis-wise) in that time interval. Then the reference gravity direction in a stationary sensor frame is computed using Equation [1]:

Process400continues by predicting an attitude of the source device using the accelerometer-based gravity direction (403). For example, a quaternion-based Kalman filter can be used to predict an attitude quaternion q(t) representing the attitude of the source device using rotation rate ω(t) from a 3-axis MEMS gyro and the reference gravity direction {tilde over (γ)}(t).

Process400continues by estimating the gravity direction by rotating the accelerometer-based gravity direction into an inertial reference frame using the predicted attitude of the source device (404) and Equation [2]:
{circumflex over (γ)}(t)=C(q(t))·{tilde over (γ)}(t),  [2]
where C(q(t)) is given by Equation [3], I3is 3×3 identity matrix and q(t)=[qvT, qc]T, and where qvis the vector part of the q(t) and qcis the scaler part of q(t):
C(q(t))=(qc2−qvTqv)I3−2qc|qvx|+2qvqvT.  [3]

The estimated gravity direction {circumflex over (γ)}(t) is then used to stabilize the virtual auditory space, as described in reference toFIG.2.

FIGS.5A-5Dillustrate how an ambience bed is inertially stabilized when the user tilts their head, according to an embodiment.

FIG.5Aillustrates a user tilting their head to the right with the boresight vector aligned with the center channel (C) of the ambience bed. With the center channel aligned with the boresight vector, the ambience bed roll angle is defined about the boresight vector to place the L/R and L/R-S channels in the ambience bed so that the channels are horizontally level with the user's ears at initialization.

FIG.5Billustrates the user in a forward facing viewing position. The right side of the ambience bed is shown aligned to the user's right ear because the boresight vector is directly in front of the user along the +X direction. If the boresight vector is off to one side, the right side of the ambience bed would be aligned to lie in the horizontal plane of the user's ears. The inertial gravity direction is shown fixed in the ambience bed reference frame.

FIG.5Cillustrates the ambience bed reference frame (XA, YA, ZA), and a headset reference frame (XL, YL, ZL). The YZ gravity direction is constant to avoid violating the boresight vector constraint, where the boresight must always be aligned with the center channel of the ambience bed.

FIG.5Dillustrates the ambience bed reference frame (XA, YA, ZA), the headset reference frame (XL, YL, ZL), and the inertial gravity vector fixed in the ambience bed. To position the L, R, LS and RS channels, the roll of the ambience bed is constrained. On initialization, the ambience bed is rolled about the boresight vector to align YA of the ambience bed reference frame with the horizontal XLYLplane of the headset frame such that the ambience bed is horizontally level with the user's ears. During tracking, the ambience bed is rolled about the boresight vector to align the current gravity direction estimate in the headset reference frame with the gravity direction fixed in the ambience bed reference frame during initialization.

FIG.6is a flow diagram of process600of centering and inertially stabilizing a virtual auditory space, according to an embodiment. Process600can be implemented using, for example, the source device architecture shown inFIG.7.

During a head pose tracker initialization step601, a spatial audio ambience bed is rotated about a boresight vector to align a boresight vector with a center channel of the ambience bed, and to align an ambience bed reference frame with a horizontal plane of a headset reference frame, such that the ambience bed is horizontally level with a user's ears, and fixing a first estimated gravity direction in the ambience bed reference frame.

During a head pose tracking step602, the ambience bed reference frame is rolled about the boresight to align a second estimated gravity direction in the headset reference frame with the first estimated gravity direction fixed in the ambience bed reference frame, wherein the boresight is computed using source device motion data and headset motion data, and the ambience bed includes the center channel and one or more other channels.

Example Software/Hardware Architectures

FIG.7is a conceptual block diagram of source device software/hardware architecture700implementing the features and operations described in reference toFIGS.1-6. Architecture700can include memory interface721, one or more data processors, digital signal processors (DSPs), image processors and/or central processing units (CPUs)722and peripherals interface720. Memory interface721, one or more processors722and/or peripherals interface720can be separate components or can be integrated in one or more integrated circuits.

Sensors, devices and subsystems can be coupled to peripherals interface720to provide multiple functionalities. For example, IMU707, light sensor708and proximity sensor709can be coupled to peripherals interface720to facilitate motion sensing (e.g., acceleration, rotation rates), lighting and proximity functions of the wearable computer. Location processor710can be connected to peripherals interface720to provide geo-positioning. In some implementations, location processor710can be a GNSS receiver, such as the Global Positioning System (GPS) receiver. Electronic magnetometer711(e.g., an integrated circuit chip) can also be connected to peripherals interface720to provide data that can be used to determine the direction of magnetic North. Electronic magnetometer711can provide data to an electronic compass application. IMU707can include one or more accelerometers and/or gyros (e.g., 3-axis MEMS accelerometer and 3-axis MEMS gyro) configured to determine change of speed and direction of movement of the source device. Barometer706can be configured to measure atmospheric pressure around the mobile device.

Camera/3D depth sensor702captures digital images and video and can include both forward-facing and rear-facing cameras. The 3D depth sensor can be any sensor capable of capturing 3D data or point clouds, such as a time of flight (TOF) sensor or LiDAR.

Communication functions can be facilitated through wireless communication subsystems712, which can include radio frequency (RF) receivers and transmitters (or transceivers) and/or optical (e.g., infrared) receivers and transmitters. The specific design and implementation of the wireless communication subsystem712can depend on the communication network(s) over which a mobile device is intended to operate. For example, architecture700can include communication subsystems712designed to operate over a GSM network, a GPRS network, an EDGE network, a Wi-Fi™ network and a Bluetooth™ network. In particular, the wireless communication subsystems712can include hosting protocols, such that the mobile device can be configured as a base station for other wireless devices.

Audio subsystem705can be coupled to a speaker703and one or more microphones704to facilitate voice-enabled functions, such as voice recognition, voice replication, digital recording and telephony functions. Audio subsystem705can be configured to receive voice commands from the user.

I/O subsystem713can include touch surface controller717and/or other input controller(s)715. Touch surface controller717can be coupled to a touch surface718. Touch surface718and touch surface controller717can, for example, detect contact and movement or break thereof using any of a plurality of touch sensitivity technologies, including but not limited to capacitive, resistive, infrared and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements for determining one or more points of contact with touch surface746. Touch surface718can include, for example, a touch screen or the digital crown of a smart watch. I/O subsystem713can include a haptic engine or device for providing haptic feedback (e.g., vibration) in response to commands from processor or a digital signal processor (DSP)722. In an embodiment, touch surface718can be a pressure-sensitive surface.

Other input controller(s)715can be coupled to other input/control devices716, such as one or more buttons, rocker switches, thumb-wheel, infrared port and USB port. The one or more buttons (not shown) can include an up/down button for volume control of speaker703and/or microphones704. Touch surface718or other input control devices716(e.g., a button) can include, or be coupled to, fingerprint identification circuitry for use with a fingerprint authentication application to authenticate a user based on their fingerprint(s).

In one implementation, a pressing of the button for a first duration may disengage a lock of the touch surface718; and a pressing of the button for a second duration that is longer than the first duration may turn power to the mobile device on or off. The user may be able to customize a functionality of one or more of the buttons. The touch surface718can, for example, also be used to implement virtual or soft buttons.

In some implementations, the mobile device can present recorded audio and/or video files, such as MP3, AAC and MPEG files. In some implementations, the mobile device can include the functionality of an MP3 player. Other input/output and control devices can also be used.

Memory interface721can be coupled to memory723. Memory723can include high-speed random access memory and/or non-volatile memory, such as one or more magnetic disk storage devices, one or more optical storage devices and/or flash memory (e.g., NAND, NOR). Memory723can store operating system724, such as the iOS operating system developed by Apple Inc. of Cupertino, Calif. Operating system724may include instructions for handling basic system services and for performing hardware dependent tasks. In some implementations, operating system724can include a kernel (e.g., UNIX kernel).

Memory723may also store communication instructions725to facilitate communicating with one or more additional devices, one or more computers and/or one or more servers, such as, for example, instructions for implementing a software stack for wired or wireless communications with other devices. Memory723may include graphical user interface instructions726to facilitate graphic user interface processing; sensor processing instructions727to facilitate sensor-related processing and functions; phone instructions728to facilitate phone-related processes and functions; electronic messaging instructions729to facilitate electronic-messaging related processes and functions; web browsing instructions730to facilitate web browsing-related processes and functions; media processing instructions731to facilitate media processing-related processes and functions; GNSS/Location instructions732to facilitate generic GNSS and location-related processes; and camera/3D depth sensor instructions733for capturing images (e.g., video, still imges) and depth data (e.g., a point cloud). Memory723further includes spatial audio instructions734for use in spatial audio applications, including but not limited AR and immersive video applications.

SoC801further includes various modules, such as a radio frequency (RF) radio (wireless transceiver) for wireless bi-directional communication with other devices, such as a source device103, as described in reference toFIGS.1-6. SoC801further includes an application processor (AP) for running specific applications, memory (e.g., flash memory), central processing unit (CPU) for managing various functions of the headsets, audio codec for encoding/decoding audio, battery charger for charging/recharging rechargeable battery804, I/O driver for driving I/O and charge port810(e.g., a micro USB port), digital to analog converter (DAC) converting digital audio into analog audio and LED driver for driving LEDs807. Other embodiments can have more or fewer components.

FIG.9illustrates various reference frames and notation for relative pose tracking as described more fully in Appendix A attached hereto, according to an embodiment.

FIG.10illustrates the geometry for a relative motion model used in headtracking as described more fully in Appendix A attached hereto, according to an embodiment.

As described above, some aspects of the subject matter of this specification include gathering and use of data available from various sources to improve services a mobile device can provide to a user. The present disclosure contemplates that in some instances, this gathered data may identify a particular location or an address based on device usage. Such personal information data can include location-based data, addresses, subscriber account identifiers, or other identifying information.

In the case of advertisement delivery services, the present disclosure also contemplates embodiments in which users selectively block the use of, or access to, personal information data. That is, the present disclosure contemplates that hardware and/or software elements can be provided to prevent or block access to such personal information data. For example, in the case of advertisement delivery services, the present technology can be configured to allow users to select to “opt in” or “opt out” of participation in the collection of personal information data during registration for services.