Manifold learning for sound field estimation

12444398 ยท 2025-10-14

Assignee

Inventors

Cpc classification

International classification

Abstract

System and methods are provided for estimating the sound field from partial observations. Estimating an acoustic environment for virtual reality and augmented reality applications is a step in the creation of simulated acoustic sound scenes. In particular, the impulse responses of room can be estimated with a generative model. In a teleconferencing scenario with remote participants and a group of participants in a common physical space, giving the remote participants the impression that all other participants are sitting is in the same room acoustically requires filtering the speech of the remote participants with impulse responses estimated at the desired rendering position in the conference room.

Claims

1. A computer-implemented method for estimating a sound field for virtual reality or augmented reality, comprising: receiving, for a first position associated with a near end room, room data comprising (i) input audio data and (ii) target audio data; generating measurement vector data from the input audio data; generating initial input vector data for a second position associated with the near end room; generating input data from (i) the measurement vector data, (ii) the first position, (iii) the initial input vector data, and (iv) the second position; applying initial filter parameters to the input data that results in filtered data; generating target data from the target audio data; determining an estimated loss from the filtered data and the target data; determining a matrix from a decoder of a trained variational autoencoder; combining the matrix, the estimated loss, and a step value that results in a tangent vector; applying the decoder to a point in a tangent space indicated by the tangent vector, wherein the decoder outputs updated filter parameters; receiving far end audio data; in response to receiving the far end audio data, substantially in real-time: generating near end audio data from (i) the far end audio data, (ii) the updated filter parameters, and (iii) the second position; and outputting the near end audio data.

2. The computer-implemented method of claim 1, further comprising: training a machine learning model with training data comprising a plurality of impulse responses for a second room as input training data and a training label, wherein the training data further comprises, for each impulse response in the plurality of impulse responses, a position relative to a source in the second room, and wherein training the machine learning model further comprises: determining a loss and a gradient of a neural network; and updating, based on the loss and the gradient, a weight of the neural network that results in the trained variational autoencoder.

3. The computer-implemented method of claim 2, wherein the training data further comprises a room type for the second room, and the input data further comprises a near end room type.

4. The computer-implemented method of claim 1, wherein generating the near end audio data further comprises: applying a machine learning model to the far end audio data, wherein the machine learning model outputs de-reverbed audio data.

5. The computer-implemented method of claim 4, wherein generating the near end audio data further comprises: determining a near end impulse response from the updated filter parameters at the second position; and applying the near end impulse response at the second position to the de-reverbed audio data that results in the near end audio data as reverbed.

6. The computer-implemented method of claim 1, further comprising: iteratively determining filter parameters until a threshold is satisfied.

7. One or more non-transitory computer-readable storage media storing computer executable instructions that when executed by a computing system perform operations comprising: receiving, for a first position associated with a near end room, room data comprising (i) input audio data and (ii) target audio data; generating measurement vector data from the input audio data; generating initial input vector data for a second position associated with the near end room; generating input data from (i) the measurement vector data, (ii) the first position, (iii) the initial input vector data, and (iv) the second position; applying initial filter parameters to the input data that results in filtered data; generating target data from the target audio data; determining an estimated loss from the filtered data and the target data; determining a matrix from a decoder of a trained generative model; combining the matrix, the estimated loss, and a step value that results in a tangent vector; applying the decoder to a point in a tangent space indicated by the tangent vector, wherein the decoder outputs updated filter parameters; receiving far end audio data; in response to receiving the far end audio data, substantially in real-time: generating near end audio data from (i) the far end audio data, (ii) the updated filter parameters, and (iii) the second position; and transmitting the near end audio data.

8. The one or more non-transitory computer-readable storage media of claim 7 storing further computer-executable instructions that when executed by the computing system perform further operations comprising: training a machine learning model with training data comprising a plurality of impulse responses for a second room as input training data and a training label, wherein the training data further comprises, for each impulse response in the plurality of impulse responses, a position relative to a source in the second room, and wherein training the machine learning model further comprises: determining a loss and a gradient of a neural network; and updating, based on the loss and the gradient, a weight of the neural network that results in the trained generative model.

9. The one or more non-transitory computer-readable storage media of claim 8, wherein determining the loss of the neural network further comprises: applying a loss function with a regularization term, wherein the regularization term causes a representation of a Hessian matrix of an adaptive filter cost function in a latent space to be approximately diagonal.

10. The one or more non-transitory computer-readable storage media of claim 7, wherein combining the matrix, the estimated loss, and the step value further comprises: calculating an inverse Hessian matrix from the matrix; and calculating the tangent vector from the matrix, the inverse Hessian matrix, the estimated loss, and the step value.

11. The one or more non-transitory computer-readable storage media of claim 7, wherein generating the near end audio data further comprises: applying a machine learning model to the far end audio data, wherein the machine learning model outputs de-reverbed audio data.

12. The one or more non-transitory computer-readable storage media of claim 11, wherein generating the near end audio data further comprises: determining a near end impulse response from the updated filter parameters at the second position; and applying the near end impulse response at the second position to the de-reverbed audio data that results in the near end audio data as reverbed.

13. The one or more non-transitory computer-readable storage media of claim 7, wherein the trained generative model comprises a variational autoencoder.

14. A system comprising: a non-transitory data storage medium; and a computer hardware processor in communication with the non-transitory data storage medium, wherein the computer hardware processor is configured to execute computer-executable instructions to at least: receive, for a first position associated with a near end room, room data comprising (i) input audio data and (ii) target audio data; generate measurement vector data from the input audio data; generate initial input vector data for a second position associated with the near end room; generate input data from (i) the measurement vector data, (ii) the first position, (iii) the initial input vector data, and (iv) the second position; apply initial filter parameters to the input data that results in filtered data; generate target data from the target audio data; determine an estimated loss from the filtered data and the target data; determine a matrix from a decoder of a trained generative model; combine the matrix, the estimated loss, and a step value that results in a tangent vector; apply the decoder to a point in a tangent space indicated by the tangent vector, wherein the decoder outputs updated filter parameters; receive far end audio data; generate near end audio data from (i) the far end audio data, (ii) the updated filter parameters, and (iii) the second position; and transmit the near end audio data.

15. The system of claim 14, wherein the computer hardware processor executes additional computer-executable instructions to at least: train a machine learning model with training data comprising a plurality of impulse responses for a second room as input training data and a training label, wherein the training data further comprises, for each impulse response in the plurality of impulse responses, a position relative to a source in the second room, and wherein to train the machine learning model, the computer hardware processor executes the additional computer-executable instructions to at least: determine a loss and a gradient of a neural network; and update, based on the loss and the gradient, a weight of the neural network that results in the trained generative model.

16. The system of claim 15, wherein to train the machine learning model with the training data, the computer hardware processor executes further computer-executable instructions to at least: apply a Kirchhoff-Helmholtz integral to the plurality of impulse responses at a respective position relative to the source in the second room.

17. The system of claim 15, wherein the training data further comprises a room type for the second room, and the input data further comprises a near end room type.

18. The system of claim 17, wherein the room type comprises at least one of a small room type, a medium room type, or a large room type.

19. The system of claim 14, wherein to generate the near end audio data, the computer hardware processor executes additional computer-executable instructions to at least: apply a machine learning model to the far end audio data, wherein the machine learning model outputs de-reverbed audio data.

20. The system of claim 19, wherein to generate the near end audio data, the computer hardware processor executes further computer-executable instructions to at least: determine a near end impulse response from the updated filter parameters at the second position; and apply the near end impulse response at the second position to the de-reverbed audio data that results in the near end audio data as reverbed.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) These and other features, aspects, and advantages are described below with reference to the drawings, which are intended for illustrative purposes and should in no way be interpreted as limiting the scope of the embodiments. Furthermore, various features of different disclosed embodiments can be combined to form additional embodiments, which are part of this disclosure. In the drawings, like reference characters can denote corresponding features throughout similar embodiments. The following is a brief description of each of the drawings.

(2) FIG. 1 is a schematic block diagram depicting an illustrative network environment for estimating sound fields using partial observations.

(3) FIG. 2 is a schematic block diagram depicting an illustrative general architecture of a computing device.

(4) FIG. 3 depicts a retraction on a manifold and a tangent space.

(5) FIG. 4 is a flow chart depicting a method implemented by the inference service for retraction and generative model based adaptive filter optimization.

(6) FIG. 5 is a flow chart depicting a method implemented by the sound field estimation system for estimating sound fields using partial observations.

DETAILED DESCRIPTION

(7) Generally described, aspects of the present disclosure are directed to estimating sound fields using partial observations. In an audio context, such as virtual or augmented reality contexts, modeling an acoustic environment can advantageously allow creating sound scenes. For example, in a teleconference scenario with remote participants and a group of participants in a conference room, giving the acoustic impression that all participants are in the same room can be accomplished by filtering the speech of the remote participants with impulse responses measured in the conference room at the desired rendering position. However, this information may not be available for a room with a single microphone, for example. In adaptive filtering, a topology can be used to represent data in solving optimization problems, such as coefficient optimization. A manifold is a topological space that is locally Euclidean, i.e., around every point there is a Euclidean space. The manifold can be differentiable and it is possible to use calculus to define a Euclidean tangent space for each point in the manifold. Retraction can be used to map a point in the tangent space back to the manifold. In adaptive filtering, modeling data as a manifold and using tangent spaces and retractions can lead to decreased computational complexity and increased convergence speed in solving optimization problems.

(8) As described herein, a trained generative model, such as a trained variational autoencoder, can be used to extrapolate the sound field at unknown positions in a new environment using partial observations. In particular, the optimization can be done in the Euclidean space and updated filter parameters can be determined via the generative model, which is a retraction that maps from the tangent space back onto the manifold, and the optimization can be performed. Accordingly, a sound field for a room can be estimated (the impulse responses) using partial observations, such as the input audio from a microphone and reference audio from an AEC from the single position in the room, and a trained generative model. The reference audio can refer to the signal sent to a speaker that in turn excites a room. As used herein, a room can refer to a part of a building for which a sound field can be estimated. A room can typically be a part of a building enclosed by walls, a floor, and a ceiling. A concert hall or a theater can be room.

(9) The systems and methods described herein may improve computer performance to estimate a sound field. In adaptive filtering and in underdetermined systems, the computational complexity of solving optimization problems can be significant. Estimating a sound field with partial observations can be an underdetermined system where there are fewer equations in a system of equations than unknowns. As described herein, using manifolds, tangent spaces, and retractions can lead to decreased computational complexity and increased convergence speed in solving optimization problems. Training a machine learning model by means of manifold learning and using training data composed of measurements from multiple microphones in different spaces can output a generative model. Moreover, in some cases, the second order adaptive filtering described herein can result in convergence on an estimated sound field with fewer computational resources. Therefore, the systems and methods described herein can use learned manifolds to estimate a sound field based on partial observations with reduced computational resources. As used herein, the term computing resource can refer to a physical or virtual component of limited availability within a computer system. Computing resources can include, but are not limited to, computer processors, processor cycles, and/or memory.

(10) The systems and methods described herein may improve computer performance to train machine learning models. As described herein, during training, a loss function can include a regularization term. The use of a regularization term can cause a representation of a Hessian matrix of the adaptive filter cost function to be approximately diagonal. Ensuring that the representation be approximately diagonal can enable the adaptation algorithm to execute using with fewer computing resources since the off-diagonal elements in the matrix can be ignored. The adaptation algorithm can be a second order adaptation. Second order adaptation algorithms may require calculating an inverse of a covariance matrix. Therefore, if the covariance matrix is diagonal then the inverse of the covariance matrix computation can be omitted. Therefore, the systems and methods described herein can result in training of machine learning models with fewer computing resources.

(11) Turning to FIG. 1, an illustrative network environment 100 for estimating sound fields using partial observations is depicted. The components of the network environment 100 can enable creating sounds from remote participants in a room as if those participants are in the same room, and, in particular, reproduce speech in a manner that gives the acoustic impression that the speech was uttered from specific positions in the room. Thus, the components of the network environment 100 can improve virtual or augmented reality experiences with generated sounds that fit within the virtual or augmented reality environments. The network environment 100 may include computing systems 102A, 102B and a sound field estimation system 104. One use case of the network environment 100 can be for substantially real-time audio streaming between the computing systems 102A, 102B. Instead of requiring that large microphone arrays record the rooms for complete observations, the sound field estimation system 104 can advantageously receive partial observations and substantially in real-time estimate the sound fields of the rooms with machine learning based on the partial observations. Accordingly, the components of the network environment 100 can estimate sound fields with less observed information (and potentially using less audio equipment) than existing audio systems.

(12) As used herein, the term substantially when used in conjunction with the term real time can refer to speeds in which no or little delay occurs as perceptible to a user. Substantially in real time can be associated with a threshold latency requirement that can depend on the specific implementation. In some embodiments, latency under 500 milliseconds, 250 milliseconds, 100 milliseconds, or 1 second can be substantially in real time depending on the specific context.

(13) The computing systems 102A, 102B can send and receive audio data 110A, 110B via the network 106. A first computing system 102A can include a speaker 132A, a microphone 134A, and an AEC 136A. The second computing system 102B can also include a speaker 132B, a microphone 134B, and an AEC 136B. In an example, the first computing system 102A can capture audio from a conference room with a group of participants. The AEC 136A of the first computing system 102A can compare the microphone 134A audio to the audio being sent to the speaker 132A to generate a room impulse response, which can be used by the AEC 136A to determine target audio. The first audio data 110A from the first computing system 102A can include the input audio and the target audio.

(14) The sound field estimation system 104 can receive the first audio data 110A. Before the start of the example conference meeting, the training service 120 of the sound field estimation system 104 can train a generative model 122, such as a variational autoencoder, using training data 112. In some embodiments, the training data 112 can include, but is not limited to, impulse response data from microphone arrays captured in different room types, the type of room, other room characteristics, reverberation time, clarity, microphone type, etc. The inference service 110 can determine a vector that estimates the sound field at a particular position in the room. The inference service 110 can use an initial null vector and a measurement vector from the input audio and a decoder of the generative model 122 to obtain a latent representation. The inference service 110 with the generative model 122 can perform a retraction that maps from the tangent space back onto the manifold. Accordingly, the inference service 110 can calculate an estimated vector for the desired position, which can be used by the sound field estimation system 104 and/or the first computing system 102A to filter the second audio data 110B and cause the speaker 132A of the first computing system 102A to output sound as if the remote participant uttered the speech from the desired position in the room.

(15) In some embodiments (while not illustrated in FIG. 1), some aspects of the sound field estimation system 104 can be implemented locally in the computing systems 102A, 102B. For example, the inference service 110 and the generative model 122 can execute locally in the first computing system 102A. Accordingly, the first computing system 102A can estimate a sound field substantially in real-time without communicating with the sound field estimation system 104. Moreover, in some embodiments, the first computing system 102A and the second computing system 102B can send and receive audio data 110A, 110B substantially in real-time without communicating with the sound field estimation system 104. The computing systems 102A, 102B can transmit audio data audio data 110A, 110B via a decentralized communications model in which each of the computing systems 102A, 102B have the same or similar networking capabilities, which is also known as peer-to-peer (P2P) network.

(16) The network 106 may be any wired network, wireless network, or combination thereof. In addition, the network 106 may be a personal area network, local area network, wide area network, cable network, satellite network, cellular telephone network, or combination thereof. In addition, the network 106 may be an over-the-air broadcast network (e.g., for radio or television) or a publicly accessible network of linked networks, possibly operated by various distinct parties, such as the Internet. In some embodiments, the network 106 may be a private or semi-private network, such as a corporate or university intranet. The network 106 may include one or more wireless networks, such as a Global System for Mobile Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long-Term Evolution (LTE) network, or any other type of wireless network. The network 106 can use protocols and components for communicating via the Internet or any of the other aforementioned types of networks, such as HTTP, TCP/IP, and/or UDP/IP.

(17) In some embodiments, the sound field estimation system 104 can be implemented by one or more virtual machines implemented in a hosted computing environment. The hosted computing environment may include one or more rapidly provisioned and/or released computing resources. The computing resources may include hardware computing, networking and/or storage devices configured with specifically configured computer executable instructions. A hosted computing environment may also be referred to as a serverless, cloud, or distributed computing environment.

(18) FIG. 2 is a schematic diagram of an illustrative general architecture of a computing device 201 for implementing aspects of the sound field estimation system 104 referenced in the environment 100 in FIG. 1. As described herein, the sound field estimation system 104 can extrapolate a sound field at unknown positions in a new environment using partial observations. The computing device 201 includes an arrangement of computer hardware and software components that may be used to execute the inference application 222 and/or the training application 224. The general architecture of FIG. 2 can be used to implement other devices described herein, such as the computing systems 102A, 102B referenced in FIG. 1. The computing device 201 may include more (or fewer) components than those shown in FIG. 2. Further, other computing systems described herein may include similar implementation arrangements of computer hardware and/or software components.

(19) The computing device 201 for implementing aspects of the sound field estimation system 104 may include a hardware processor 202, a network interface 204, a non-transitory computer-readable medium drive 206, and an input/output device interface 208, all of which may communicate with one another by way of a communication bus. As illustrated, the computing device 201 is associated with, or in communication with, an output device 218 and an input device 220. The network interface 204 may provide the computing device 201 with connectivity to one or more networks or computing systems. The hardware processor 202 may thus receive information and instructions from other computing systems or services via the network 106. The hardware processor 202 may also communicate to and from memory 210 and further provide output information (such as audio data) for the output device 218, such as a speaker, via the input/output device interface 208. The input/output device interface 208 may accept input from the input device 220, such as a microphone, video camera, keyboard, mouse, digital pen, and/or touch screen.

(20) The memory 210 may contain specifically configured computer program instructions that can be executed by the hardware processor 202. The memory 210 generally includes RAM, ROM and/or other persistent or non-transitory computer-readable storage media. The memory 210 may store an operating system 214 that provides computer program instructions for use by the hardware processor 202 in the general administration and operation of the computing device 201.

(21) The memory 210 may include the inference application 222 and/or the training application 224 that may be executed by the hardware processor 202. In some embodiments, the inference application 222 and/or the training application 224 may implement various aspects of the present disclosure. As described herein, the training application 224 can train a generative model on impulse response data from microphone arrays captured in different room types, the type of room, other room characteristics, reverberation time, clarity, microphone type, etc. The inference application 222 can calculate an estimated vector for the desired position. The inference application 222 can receive input data that includes input audio data and target audio data for a new room. The input data can also include other features, such as, but not limited to, the type of room, other room characteristics, reverberation time, clarity, microphone type, etc. The inference application 222 can use an initial null vector, the input audio, the target audio, and/or other features as input to the generative model 122 to obtain a latent representation. The inference application 222 with the generative model 122 can perform a retraction that maps from the tangent space back onto the manifold. As described herein, the determined vector can be used to create sound that gives the acoustic impression that the sound came from specific positions in the room.

(22) FIG. 3 depicts a retraction on the manifold M 300. The manifold M 300 is a topological space that is locally Euclidean. A tangent bundle TM is the union of all tangent spaces over all points on the manifold M. In signal processing and, in particular, adaptive filtering, it can be assumed that high-dimensional data can lie on a manifold that can be globally isometric to a subset of low-dimensional data in a Euclidean space. Accordingly, as described herein, modeling data to a manifold and low-dimensional parameterization of high-dimensional data can lead to decreased computational complexity and increased convergence speed in solving optimization problems.

(23) A retraction can be a local parameterization in the Euclidean tangent space. In other words, a retraction on the manifold M is a smooth mapping from the tangent bundle TM onto the manifold M with the following properties, let .sub.h denote the restriction of to T.sub.hM: (i) .sub.h(0.sub.h)=h, where Oh denotes the zero element of T.sub.hM; and (ii) the canonical identification T.sub.0.sub.hT.sub.hMT.sub.hM, .sub.h satisfies D.sub.h(0.sub.h)=id.sub.T.sub.h.sub.M, where id.sub.T.sub.h.sub.M denotes the identify mapping on T.sub.hM. As shown in FIG. 3, the tangent space T.sub.hM 304 is the vector space that contains the possible directions in which vectors can tangentially pass through the point h 302 on the manifold M 300. Moreover, as described herein, the depicted retraction allows movement in the direction of the tangent vector A 306 from the point h 302 to the new point h 308 while staying on the manifold M 300.

(24) FIG. 4 includes a flow chart depicting a computer-implemented method 400 for retraction and generative model based adaptive filter optimization. As described herein, the sound field estimation system 104 may be implemented with the computing device 201. In some embodiments, the computing device 201 may include the inference application 222, which may implement aspects of the method 400. The method 400 can solve a system identification problem, i.e., the adaptive filter optimization problem, with a retraction and/or generative model based approaches that were not available in existing systems. The method 400 can advantageously be used to estimate a sound field at unknown positions in a new environment with partial observations.

(25) Beginning at block 402, an input signal can be received. The input signal can be the sound captured from a room. At block 404, the input signal can be filtered with the estimated filter (h) that results in a replicated target signal. At block 406, a loss of the adaptive filter is estimated with the loss function L.sub.a based on the replicated target signal and the actual target signal 408. At block 410, a gradient of the estimated loss .sub.hL.sub.a with respect to the estimated filter (h) can be calculated. At block 412, a matrix (such as a Jacobi matrix) of the retraction map can be calculated. In some embodiments, the matrix can be obtained from a trained generative model, such as the Jacobi of a decoder of a trained variational autoencoder. At block 416, the gradient of the estimated loss .sub.hL.sub.a can be combined with the matrix and a step value 414, which can result in the tangent vector 418. In some embodiments, the combining at block 416 can include a tensor product .Math. of the vector spaces. For example: (gradient of the estimated loss .sub.hL.sub.a .Math. matrix ) .Math. step value p 414. At block 420, the retraction map .sub.h, from the tangent space can be applied at the previous point h onto the learned manifold to provide the updated filter parameters (h). The retraction mapping can be provided by a decoder of the trained generative model, such as a decoder of the trained variational autoencoder.

(26) In the retraction-based approach of the method 400, the optimization can be done in the Euclidean tangent space by translating the filter parameters by the tangent vector 418. The updated parameters can be determined based on mapping back onto the manifold by the retraction mapping of the tangent space at previous point h. The adaptive filter optimization problem can correspond to the following equation:

(27) opt = arg min R L L a ( h , ( ) ) .
Finding the optimal point over time t iteratively can be done by solving the following differential equation:

(28) d dt = L a ,
which can be solved using the Euler method until some threshold is satisfied, such as a steady state. The gradient of the loss with respect to the tangent space can be obtained using the chain rule:

(29) L a ( h , ( ) ) .Math. "\[RightBracketingBar]" = 0 = ( h T ) ( ) .Math. "\[RightBracketingBar]" = 0 ( L a ) ( h ) .
The update for the Euler method in the Euclidean tangent space with a step value can correspond to the following equations:

(30) ( n ) = ( n - 1 ) - .Math. .Math. ( L a ) ( h ) , and := ( h T ) ( ) .Math. "\[RightBracketingBar]" = 0 .
As described herein, a retraction onto the manifold can provide an updated parameters vector. Accordingly, the retraction mapping to h, h=.sub.h(), can be provided by the decoder of the trained generative model, such as the decoder of the trained variational autoencoder.

(31) FIG. 5 includes a flow chart depicting a computer-implemented method 500 for estimating a sound field using partial observations. The method 500 can enable sound field estimation at unknown positions in a new environment with partial observations via a generative model, which was not available in existing systems. In particular, the sound field estimation techniques of the method 500 can use manifolds, tangent spaces, and retractions that can lead to decreased computational complexity and, therefore, reduced usage of computational resources in solving optimization problems. As described herein, the method 500 can be applied to a teleconference, virtual reality, or augmented reality context to give the impression that all participants are in the same room. In particular, the generated audio can give the impression that speech of a remote participant originated position.

(32) Beginning at block 502, a generative model can be trained. The training service 120 can train a generative model. As described herein, the generative model can include a variational autoencoder, such as a topology aware variational autoencoder. Variational autoencoders can have an artificial neural network architecture. The variational autoencoder can include at least two neural networks: a first neural network for encoding data into a latent space and a second neural network for decoding, which can also be referred to as a decoder. The training service 120 can train a machine learning model with training data. The training data can include impulse responses for rooms as input training data and training labels. The training data can also include a position relative to a source in the room for each impulse response. As described herein, the impulse response training data can be obtained from recording rooms with computing systems that include microphone arrays and an AEC. In some embodiments, the training data can also include the respective room type, room characteristics, reverberation time, clarity, microphone type, etc. For example, different room types can be represented in the training data as a numerical value, such as particular number for a concert hall type, a living room type, a small office type, a small conference room type, etc. In some embodiments, the room type in the training data can include at least one of a small room type, a medium room type, or a large room type. During training, the training service 120 can determine a loss and a gradient for one or more neural networks. The training service 120 can also update, based on the loss and the gradient, a weight (which can include a bias) of a neural network that results in the trained generative model. In particular, the training service 120 can, for multiple iterations, feed the autoencoder architecture (the encoder followed by the decoder) with initial training data, compare the encoded-decoded output with the initial data, and backpropagate the error through the architecture to update the weights of the neural networks. In some embodiments, instead of training a single generative model for different room types, the training service 120 can train different generative models for each respective room type.

(33) In some embodiments, the training service 120 can train a topology aware variational autoencoder. In some cases, variational autoencoder may not preserve the topology between the input and the latent space. During training, the training service 120 can constrain a variational autoencoder to approximate a simplicial map satisfying the condition represented by the following equation.

(34) ( .Math. j = 1 k j j ) = .Math. j = 1 k j ( j )
In the foregoing equation, denotes the mapping performed by the encoder, can be a k-simplex in a simplicial complex K, and Y can be a convex coefficient vector. This condition can indicate that the vertices of a simplex in the input space spans a simplex in the latent space, as shown in the following equation.

(35) L t ( , K , ) = .Math. K j Dir ( dim ( ) , ) L t ( ( .Math. j = 1 dim ( ) j j ) , .Math. j = 1 dim ( ) j ( j ) )
In the foregoing equation, denotes the mapping performed by the encoder, can be a k-simplex in a simplicial complex K, .sub.j can be the vertex j of the dim()-simplex , can be a convex coefficient vector, and .sub..sub.j.sub.Dir(dim(),) can be the expectation for the (j).sub.j=0, . . . ,dim(). following a symmetric Dirichlet distribution with the order dim()+1 and the concentration parameter a. During training, the training service 120 can apply a cost function of the variational autoencoder in the following equation that results in a topology aware variational autoencoder: L:=L.sub.r+L.sub.t.

(36) Also during training, the training service 120 can relate measured impulse responses and microphone positions with a Kirchhoff-Helmholtz integral. Accordingly, the training service 120 can define a simplicial complex from the provided impulse response measurement positions. The training service 120 can apply a Kirchhoff-Helmholtz integral to the impulse responses at each respective position relative to a source in the room. The training service 120 can apply the following equation for the Kirchhoff-Helmholtz integral.

(37) P ( r , ) = ( n h ( r .Math. "\[LeftBracketingBar]" r 0 , ) P ( r 0 , ) - n P ( r 0 , ) h ( r .Math. "\[LeftBracketingBar]" r 0 , ) ) d r 0

(38) In the foregoing equation, h can be Green's function representation in the frequency domain due to a source at the position r.sub.0, n can denote the normal vector along the enclosing boundary, P(r.sub.0,)) can denote the sound pressure at the position r and the frequency , and h(r|r.sub.0,) can indicate the acoustic transfer function between the positions r and r.sub.0. The training service 120 can define a simplicial complex from the provided impulse response measurements at the positions. The vertices for each simplex can be a discretized boundary for the Kirchhoff-Helmholtz integral. A combination of the vertices in a simplex can provide a point r.sub.0 within the simplex (the boundary). The latent space representation of the impulse response from a speaker outside the simplex to a microphone at r.sub.0 can be equal to the sum of the latent representations of the impulse responses from a randomly or pseudo-randomly selected speaker position to the vertices after being filtered by the transfer function between the respective vertex and r.sub.0.

(39) During training, the training service 120 can determine loss with a loss function. In some embodiments, the loss function can include a regularization term. As described herein, the generative model can be or include a variational autoencoder and the latent space parameterization in a trained variational autoencoder can reflect the topological structure as the input data (as enforced by a particular cost function). During training, the training service 120 can minimize the following cost function, which can be the negative of the evidence lower bound (ELBO).

(40) L r := h [ z q ( z | h ) [ - log p ( h .Math. "\[LeftBracketingBar]" z ) ] + K L ( q ( z .Math. "\[LeftBracketingBar]" h ) .Math. p ( z ) ) ] + D ( q ( z ) .Math. p ( z ) )
In the foregoing equation, denotes the parameters of the decoder, denotes the parameters of the encoder, z is the latent variable, and D is a regularization term. The use of a regularization term can cause a representation of a Hessian matrix of the adaptive filter cost function in the latent space to be approximately diagonal. An approximately diagonal matrix can refer to a matrix having nonzero elements only in the diagonal and/or substantially constraining the off-diagonal elements in the matrix to be close to zero. The representation matrix can be a covariance matrix where the adaptive filter is a least squares adaptive filter. Ensuring that the representation matrix is approximately diagonal can enable the adaptation algorithm to execute using with fewer computing resources since the off-diagonal elements can be ignored. If the adaptation algorithm is a second order adaptation, the regularization term can disentangle the latent space. Second order adaptation algorithms may require calculating an inverse of a covariance matrix; however, if the covariance matrix is diagonal then that computation can be omitted, thereby reducing complexity. The training service 120 can use the following regularization term.

(41) D ( q ( z ) .Math. p ( z ) ) : = off .Math. i j [ C o v q ( z ) [ z ] ] i j 2 + diag .Math. i ( [ C o v q ( z ) [ z ] ] i i - 1 ) 2
In the foregoing equation, .sub.off can be a Lagrangian multiplier constraining the off diagonal elements of the covariance matrices, .sub.diag can be another Lagrangian for the diagonal elements, and

(42) 0 C o v q ( z ) [ z ] := q ( z ) [ ( z - q ( z ) [ z ] ) ( z - q [ z ] ( z ) ) T ] .

(43) At block 504, room data can be received for a new room. The sound field estimation system 104 can receive the room data, which can include, but is not limited to, input audio data and target audio data. In some embodiments the room data can include some impulse response data. The room data can originate from a near end room. The room data can be for a position in the room, such as the position in the room of the microphone that receives the input sound. Moreover, an AEC associated with the room can calculate the target audio data and impulse response data from the input audio data. In some embodiments, the sound field estimation system 104 can estimate a sound field substantially in real-time upon receiving the room data from the near end. Some or all of the subsequent blocks 506, 508, 510, 512, 514, 518, 520, 522, 524 of the method 500 can be performed substantially in real-time upon receiving the room data from the previous block 502. The room data can also include, but is not limited to, a room type, room characteristics, reverberation time, clarity, microphone type, etc. In some embodiments, the room type can include at least one of a small room type, a medium room type, or a large room type.

(44) At block 506, input data can be generated. The inference service 110 can generate input data. The inference service 110 can generate measurement vector data from the input audio data as the data would be represented in the generative model's output data model. The inference service 110 can generate initial input vector data for a second position associated with the near end room. The second position can be relative to the first position, which can be associated with a microphone in the near end room, for example. The initial input vector data can have zeros or some other null value, which can be the missing information in a system identification problem. As described herein, the second position can be the other position in the room that the sound field estimation system 104 will generate audio to emulate sounds as if they had originated from that other position. The inference service 110 can generate input data for the generative model input data from (i) the measurement vector data, (ii) the first position, (iii) the initial input vector data, and (iv) the second position. In some embodiments, the input data can include additional information, such as, but not limited to, a room type, room characteristics, reverberation time, clarity, microphone type, etc.

(45) At block 508, an estimated loss can be determined. The inference service 110 can apply initial filter parameters to the input data that results in filtered data. The inference service 110 can generate target data from at least the target audio data. The inference service 110 can determine an estimated loss, such as a gradient of the loss, from the filtered data and the target data. The inference service 110 can calculate a gradient of the loss with respect to the initial filter parameters. As described herein, such as with respect to FIG. 4, the inference service 110 can calculate the gradient of the loss using the chain rule.

(46) The loss function can be the loss for an adaptive filter. The loss function (which can also be referred to as a cost function) and correspond to the following equation.
L.sub.a={|e(n)|.sup.2}={|y(n)h.sup.Hx(n)|.sup.2}
In some embodiments, different loss functions can be used. Another loss function can explicitly take into account near-end noise with weighted least-squares or Huber loss. The gradient of the loss function can correspond to the following equation.
.sub.hL.sub.a=2{x(n)[y*(k)h.sup.Tx*(n)]}

(47) At block 510, the generative model can be applied. The inference service 110 can determine a matrix from a decoder of a trained generative model, such as a variational autoeconder. In some embodiments, the inference service 110 can calculate a matrix (such as a Jacobi matrix) of the retraction map from the decoder of the generative model. The initial latent representation can be an initial search point for the method 500. The latent representation can be in the tangent space of a manifold. Additional details regarding manifolds, a tangent space, and a matrix of the retraction map are described herein, such as with respect to FIGS. 3 and 4.

(48) At block 512, a tangent vector can be determined. The inference service 110 can combine the matrix, the estimated loss, and a step value that results in a tangent vector. The inference service 110 can combine the foregoing components using a tensor product .Math. of the vector spaces. In particular, the inference service 110 can calculate the tangent vector from: (gradient of the estimated loss V.sub.hL.sub.a.Math.matrix ).Math.step value or gradient of the estimated loss V.sub.hL.sub.a.Math.(matrix .Math.step value). Additional details regarding determining a tangent vector are described herein, such as with respect to FIG. 4.

(49) In some embodiments, the inference service 110 can determine a tangent vector with an inverse Hessian matrix. If the adaptation algorithm is a second order adaptation, a Newton-based update in the tangent space can be derived. The inference service 110 can determine a matrix from the decoder and calculate an inverse Hessian matrix from the matrix. The inference service 110 can calculate a Hessian matrix with the following equation.
F(n):=(n)x(n)x.sup.T(n).sup.T(n)
The inference service 110 can calculate the tangent vector from the matrix, the inverse Hessian matrix, the estimated loss, and the step value. The second-order update, which can determine the tangent vector, can be specified by the following equation.
z(n)=z(n1)+F.sup.1(n)(n)x(n)e*(n)

(50) At block 514, a decoder of the generative model can be applied. The inference service 110 can apply a decoder from the trained generative model to a point in a tangent space indicated by the tangent vector. The decoder can output updated filter parameters. In other words, the inference service's 110 application of the decoder can, via retraction, use its mapping to go from the tangent space to the manifold. In particular, the retraction map .sub.h, from the tangent space can be applied at the previous point h onto the learned manifold to provide the updated filter parameters (h), h=.sub.h(). The output of the decoder can include generated data, which can indicate an impulse response for the new position being solved. Additional details regarding decoders and retraction maps are described herein, such as with respect to FIG. 4.

(51) At block 518, it can be determined whether a threshold is satisfied. The inference service 110 can apply the input signal to updated filter parameters and compare the updated filtered data to the target data. In particular, the inference service 110 can repeat the algorithm for a number of iterations, which can be a predetermined number of iterations. If the threshold is not satisfied, the method 500 can return to blocks 506, 508, 510, 512, 514 to repeat the adaptive filtering optimization steps until the threshold is satisfied. Accordingly, blocks of the method 500 can iteratively determine filter parameters until a threshold is satisfied. If the threshold is satisfied, the method 500 can proceed to blocks 520, 522 to receive and process audio data.

(52) At block 520, audio data can be received. The sound field estimation system 104 and/or the first computing system 102A can receive audio data from the far end, such as the second computing system 102B. For example, the near end room can be a conference room. A remote participant can be at the far end. When the remote participant speaks, the remote participant's speech sounds are converted to audio data and transmitted to the sound field estimation system 104 and/or the first computing system 102A. In some embodiments, the sound field estimation system 104 and/or the first computing system 102A can generate subsequent audio data substantially in real-time upon receiving the audio data from the far end. Some or all of the subsequent blocks 522, 524 of the method 500 can be performed substantially in real-time upon receiving the audio data from the previous block 520. In some embodiments, the blocks 520, 522, 524 for receiving and processing audio data can be performed in parallel with the previous blocks 504, 506, 508, 510, 512, 514 for adaptive filtering optimization on the room data.

(53) At block 522, audio data can be generated. The sound field estimation system 104 can generate near end audio data from (i) the far end audio data, (ii) the updated filter parameters, and (iii) the new position. As described herein, the generated audio data can give the acoustic impression that the speech was uttered from the new position in the near end room. In particular, the sound field estimation system 104 can modify the far end audio data by the updated filter parameters associated with the new position, which can result in an estimate of the desired target signal. In some embodiments, the near end audio data can be generated by the local computing system at the near end.

(54) In some embodiments, the sound field estimation system 104 can generate audio data with de-reverbing and re-reverbing. The sound field estimation system 104, the first computing system 102A, and/or the second computing system 102B can apply a machine learning model to the far end audio data, which results in de-reverbed audio data. In some embodiments, a de-noising algorithm can generate the de-reverbed audio data. In other embodiments, the sound field estimation system 104, the first computing system 102A, and/or the second computing system 102B can generate de-reverbed audio data from a deconvolution of the far end audio data with far end impulse response data. The sound field estimation system 104 and/or the first computing system 102A can determine a near end impulse response from the updated filter parameters at the second position. The sound field estimation system 104 can apply the near end impulse response data at the second position to the de-reverbed audio data that results in the reverbed near end audio data.

(55) At block 524, the near end audio data can be transmitted. In some embodiments, the sound field estimation system 104 can transmit the near end audio data to the near end computing system 102A to be output. The near end computing system 102A can output the near end audio data via the speaker 132A. As described herein, the near end computing system 102A can estimate the sound field locally and generate the near end audio data.

(56) Not necessarily all objects or advantages may be achieved in accordance with any particular embodiment described herein. Thus, certain embodiments may be configured to operate in a manner that achieves or optimizes one advantage or group of advantages as taught herein without necessarily achieving other objects or advantages as may be taught or suggested herein.

(57) All of the processes described herein may be embodied in, and fully automated via, software code modules executed by a computing system that includes one or more computer hardware processors. The code modules (including computer-executable instructions) may be stored in any type of non-transitory computer-readable storage medium or other computer storage device. Some or all the methods may be embodied in specialized computer hardware.

(58) Many other variations than those described herein will be apparent from this disclosure. For example, depending on the embodiment, certain acts, events, or functions of any of the algorithms described herein can be performed in a different sequence, can be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the algorithms). Moreover, in certain embodiments, acts or events can be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures, rather than sequentially. In addition, different tasks or processes can be performed by different machines and/or computing systems that can function together.

(59) The various illustrative logical blocks and modules described in connection with the embodiments disclosed herein can be implemented or performed by a machine, such as a processing unit or processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A processor can be a microprocessor, but in the alternative, the processor can be a controller, microcontroller, or state machine, combinations of the same, or the like. A processor can include electrical circuitry configured to process computer-executable instructions. In another embodiment, a processor includes an FPGA or other programmable device that performs logic operations without processing computer-executable instructions. A processor can also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Although described herein primarily with respect to digital technology, a processor may also include primarily analog components. For example, some or all of the signal processing algorithms described herein may be implemented in analog circuitry or mixed analog and digital circuitry. A computing environment can include any type of computer system, including, but not limited to, a computer system based on a microprocessor, a mainframe computer, a digital signal processor, a portable computing device, a device controller, or a computational engine within an appliance, to name a few.

(60) Conditional language such as, among others, can, could, might or may, unless specifically stated otherwise, are otherwise understood within the context as used in general to convey that certain embodiments include, while other embodiments do not include, certain features, and/or elements. Thus, such conditional language is not generally intended to imply that features, and/or elements are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without user input or prompting, whether these features, and/or elements are included or are to be performed in any particular embodiment. The terms comprising, including, having, and the like are synonymous and are used inclusively, in an open-ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. Further, the term each, as used herein, in addition to having its ordinary meaning, can mean any subset of a set of elements to which the term each is applied.

(61) Disjunctive language such as the phrase at least one of X, Y, or Z, unless specifically stated otherwise, is otherwise understood with the context as used in general to present that an item, term, etc., may be either X, Y, or Z, or any combination thereof (e.g., X, Y, and/or Z). Thus, such disjunctive language is not generally intended to, and should not, imply that certain embodiments require at least one of X, at least one of Y, or at least one of Z to each be present.

(62) Any process descriptions, elements or blocks in the flow diagrams described herein and/or depicted in the attached figures should be understood as potentially representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or elements in the process. Alternate implementations are included within the scope of the embodiments described herein in which elements or functions may be deleted, executed out of order from that shown, or discussed, including substantially concurrently or in reverse order, depending on the functionality involved as would be understood by those skilled in the art.

(63) Unless otherwise explicitly stated, articles such as a or an should generally be interpreted to include one or more described items. Accordingly, phrases such as a device configured to are intended to include one or more recited devices. Such one or more recited devices can also be collectively configured to carry out the stated recitations. For example, a processor configured to carry out recitations A, B and C can include a first processor configured to carry out recitation A working in conjunction with a second processor configured to carry out recitations B and C.

(64) It should be emphasized that many variations and modifications may be made to the above-described embodiments, the elements of which are to be understood as being among other acceptable examples. All such modifications and variations are intended to be included herein within the scope of this disclosure and protected by the following claims.