From Ircam's XMM library (https://github.com/Ircam-RnD/xmm):
XMM is a portable, cross-platform C++ library that implements Gaussian Mixture Models and Hidden Markov Models for recognition and regression. The XMM library was developed for movement interaction in creative applications and implements an interactive machine learning workflow with fast training and continuous, real-time inference.
yarn add xmmjs
# OR
npm install --save xmmjs
<script src="https://cdn.jsdelivr.net/gh/JulesFrancoise/xmmjs/dist/index.js"></script>
Basic example of GMM-based recognition
const xmm = require('xmmjs');
// Create a training set to host the training data
const ts = xmm.TrainingSet({ inputDimension: 3 });
// Add a new phrase to the training set, and record data frames
const phrase1 = ts.push(0, 'one');
for (let i = 0; i < 1000; i += 1) {
const frame = Array.from(Array(3), () => Math.random()); // get data from somewhere
phrase1.push(frame);
}
const phrase2 = ts.push(1, 'two');
for (let i = 0; i < 1000; i += 1) {
const frame = Array.from(Array(3), () => 1 + Math.random()); // get data from somewhere
phrase2.push(frame);
}
// Train the GMM with the given configuration
const configuration = {
gaussians: 3,
regularization: {
absolute: 1e-1,
relative: 1e-10,
},
covarianceMode: 'full',
};
const gmmParams = xmm.trainMulticlassGMM(ts, configuration);
// Create a predictor to perform real-time recognition
const predictor = xmm.MulticlassGMMPredictor(gmmParams);
predictor.reset();
predictor.predict([0.5, 0.5, 0.5]);
console.log('results (0.5)', predictor.results);
predictor.predict([1.5, 1.5, 1.5]);
console.log('results (1.5)', predictor.results);
xmmjs has been developed at LIMSI-CNRS by Jules Françoise, and is released under the MIT Licence.
xmmjs
is based on the XMM C++ Library developed at Ircam-Centre Pompidou:
https://github.com/Ircam-RnD/xmm