@@ -328,6 +328,7 @@ function process(data) {
328328 //Process if we have enough frames
329329 var vadResults = [ ] ;
330330 var loudnessResults = [ ] ;
331+ var mfcc = [ ] ;
331332 while ( _processRingBuffer . framesAvailable >= _vadBufferSize ) {
332333 //pull samples
333334 _processRingBuffer . pull ( _vadBuffer ) ;
@@ -343,6 +344,8 @@ function process(data) {
343344 _maxLoudness = Math . max ( _maxLoudness , loudness ) ;
344345 _movingAvgLoudness = getWeightedMovingAverage ( _movingAvgLoudness , loudness , _movingAvgLoudnessWeight ) ;
345346
347+ mfcc . push ( features . mfcc ) ;
348+
346349 //activity check
347350 var voiceActivity = ( loudness / _movingAvgLoudness ) > ( 1 + vadMode / 10 ) ? 1 : 0 ;
348351 vadResults . push ( voiceActivity ) ;
@@ -367,6 +370,7 @@ function process(data) {
367370 voiceActivity : vadResults ,
368371 voiceEnergy : voiceEnergy ,
369372 voiceLoudness : loudnessResults ,
373+ mfcc : mfcc ,
370374 movingAvgLoudness : _movingAvgLoudness ,
371375 maxLoudness : _maxLoudness
372376 } ) ;
@@ -387,8 +391,6 @@ function start(options) {
387391function stop ( options ) {
388392 //TODO: anything to do?
389393 //NOTE: timing of this signal is not very well defined
390- _movingAvgLoudness = undefined ;
391- _maxLoudness = 0 ;
392394}
393395function reset ( options ) {
394396 //TODO: clean up worker and prep. for restart
@@ -399,6 +401,8 @@ function release(options){
399401 _processRingBuffer = null ;
400402 _vadBuffer = null ;
401403 _previousVadBuffer = null ;
404+ _movingAvgLoudness = undefined ;
405+ _maxLoudness = 0 ;
402406}
403407
404408//--- helpers ---
0 commit comments