Skip to content

Commit d18fa24

Browse files
committed
don't buffer mic audio inbetween calls when keepMic is true
1 parent 9f83d31 commit d18fa24

File tree

2 files changed

+10
-19
lines changed

2 files changed

+10
-19
lines changed

dist/watson-speech.js

Lines changed: 6 additions & 19 deletions
Large diffs are not rendered by default.

speech-to-text/recognize-microphone.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@ var L16 = require('./webaudio-l16-stream.js');
2222
var FormatStream = require('./format-stream.js');
2323
var assign = require('object.assign/polyfill')();
2424
var WritableElementStream = require('./writable-element-stream');
25+
var Readable = require('stream').Readable;
2526

2627
var preservedMicStream;
28+
var bitBucket = new Readable;
2729

2830
/**
2931
* @module watson-speech/speech-to-text/recognize-microphone
@@ -62,6 +64,7 @@ module.exports = function recognizeMicrophone(options) {
6264
var keepMic = options.keepMicrophone;
6365
var getMicStream;
6466
if (keepMic && preservedMicStream) {
67+
preservedMicStream.unpipe(bitBucket);
6568
getMicStream = Promise.resolve(preservedMicStream);
6669
} else {
6770
getMicStream = getUserMedia({video: false, audio: true}).then(function (mic) {
@@ -85,6 +88,7 @@ module.exports = function recognizeMicrophone(options) {
8588

8689
function end() {
8790
micStream.unpipe(l16Stream);
91+
micStream.pipe(bitBucket); // otherwise it will buffer the audio from in between calls and prepend it to the next one
8892
l16Stream.end();
8993
}
9094
// trigger on both stop and end events:

0 commit comments

Comments
 (0)