mirror of
https://github.com/danog/libtgvoip.git
synced 2025-01-09 06:08:17 +01:00
5caaaafa42
I'm now using the entire audio processing module from WebRTC as opposed to individual DSP algorithms pulled from there before. Seems to work better this way.
46 lines
1.7 KiB
C++
46 lines
1.7 KiB
C++
/*
|
|
* Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef MODULES_AUDIO_PROCESSING_VAD_GMM_H_
|
|
#define MODULES_AUDIO_PROCESSING_VAD_GMM_H_
|
|
|
|
namespace webrtc {
|
|
|
|
// A structure that specifies a GMM.
|
|
// A GMM is formulated as
|
|
// f(x) = w[0] * mixture[0] + w[1] * mixture[1] + ... +
|
|
// w[num_mixtures - 1] * mixture[num_mixtures - 1];
|
|
// Where a 'mixture' is a Gaussian density.
|
|
|
|
struct GmmParameters {
|
|
// weight[n] = log(w[n]) - |dimension|/2 * log(2*pi) - 1/2 * log(det(cov[n]));
|
|
// where cov[n] is the covariance matrix of mixture n;
|
|
const double* weight;
|
|
// pointer to the first element of a |num_mixtures|x|dimension| matrix
|
|
// where kth row is the mean of the kth mixture.
|
|
const double* mean;
|
|
// pointer to the first element of a |num_mixtures|x|dimension|x|dimension|
|
|
// 3D-matrix, where the kth 2D-matrix is the inverse of the covariance
|
|
// matrix of the kth mixture.
|
|
const double* covar_inverse;
|
|
// Dimensionality of the mixtures.
|
|
int dimension;
|
|
// number of the mixtures.
|
|
int num_mixtures;
|
|
};
|
|
|
|
// Evaluate the given GMM, according to |gmm_parameters|, at the given point
|
|
// |x|. If the dimensionality of the given GMM is larger that the maximum
|
|
// acceptable dimension by the following function -1 is returned.
|
|
double EvaluateGmm(const double* x, const GmmParameters& gmm_parameters);
|
|
|
|
} // namespace webrtc
|
|
#endif // MODULES_AUDIO_PROCESSING_VAD_GMM_H_
|