From 77284d8117b896cc91fc045bb61c843a56f3d7d2 Mon Sep 17 00:00:00 2001 From: picklesrus Date: Thu, 13 Sep 2018 14:05:22 -0400 Subject: [PATCH] =?UTF-8?q?Remove=20sound=20indicators=20at=20the=20start/?= =?UTF-8?q?end=20of=20listen=20block.=20=20Visual=20rep=E2=80=A6=20(#1575)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove sound indicators at the start/end of listen block. Visual replacement coming soon. * remove the sound files too. * ... and the manifest too --- .../scratch3_speech/assets/speech-rec-end.mp3 | Bin 5634 -> 0 bytes .../assets/speech-rec-start.mp3 | Bin 5947 -> 0 bytes src/extensions/scratch3_speech/index.js | 124 ++---------------- src/extensions/scratch3_speech/manifest.js | 4 - 4 files changed, 12 insertions(+), 116 deletions(-) delete mode 100644 src/extensions/scratch3_speech/assets/speech-rec-end.mp3 delete mode 100644 src/extensions/scratch3_speech/assets/speech-rec-start.mp3 delete mode 100644 src/extensions/scratch3_speech/manifest.js diff --git a/src/extensions/scratch3_speech/assets/speech-rec-end.mp3 b/src/extensions/scratch3_speech/assets/speech-rec-end.mp3 deleted file mode 100644 index eaf6556e6cc7f8f146486084af61ca16d6c22f4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5634 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 L|Cf9JFT?)@FILcA diff --git a/src/extensions/scratch3_speech/index.js b/src/extensions/scratch3_speech/index.js index 673cf5768..5cbde0d10 100644 --- a/src/extensions/scratch3_speech/index.js +++ b/src/extensions/scratch3_speech/index.js @@ -44,16 +44,6 @@ const finalResponseTimeoutDurationMs = 3000; */ const listenAndWaitBlockTimeoutMs = 10000; -/** - * The start and stop sounds, loaded as static assets. - * @type {object} - */ -let assetData = {}; -try { - assetData = require('./manifest'); -} catch (e) { - // Non-webpack environment, don't worry about assets. -} class Scratch3SpeechBlocks { constructor (runtime) { @@ -156,20 +146,6 @@ class Scratch3SpeechBlocks { */ this._audioPromise = null; - /** - * Player for sound to indicate that listending has started. - * @type {SoundPlayer} - * @private - */ - this._startSoundPlayer = null; - - /** - * Player for for sound to indicate that listending has ended. - * @type {SoundPlayer} - * @private - */ - this._endSoundPlayer = null; - /** * Diff Match Patch is used to do some fuzzy matching of the transcription results @@ -191,67 +167,6 @@ class Scratch3SpeechBlocks { this.runtime.on('PROJECT_STOP_ALL', this._resetListening.bind(this)); this.runtime.on('PROJECT_START', this._resetEdgeTriggerUtterance.bind(this)); - // Load in the start and stop listening indicator sounds. - this._loadUISounds(); - } - - /** - * Load the UI sounds played when listening starts and stops. - * @private - */ - _loadUISounds () { - const startSoundBuffer = assetData['speech-rec-start.mp3']; - this._decodeSound(startSoundBuffer).then(player => { - this._startSoundPlayer = player; - }); - - const endSoundBuffer = assetData['speech-rec-end.mp3']; - this._decodeSound(endSoundBuffer).then(player => { - this._endSoundPlayer = player; - }); - } - - /** - * Decode a sound and return a promise with the audio buffer. - * @param {ArrayBuffer} soundBuffer - a buffer containing the encoded audio. - * @return {Promise} - a promise which will resolve once the sound has decoded. - * @private - */ - _decodeSound (soundBuffer) { - const engine = this.runtime.audioEngine; - - if (!engine) { - return Promise.reject(new Error('No Audio Engine Detected')); - } - - // Check for newer promise-based API - return engine.decodeSoundPlayer({data: {buffer: soundBuffer}}); - } - - /** - * Play the given sound. - * @param {SoundPlayer} player The audio buffer to play. - * @returns {Promise} A promise that resoloves when the sound is done playing. - * @private - */ - _playSound (player) { - if (this.runtime.audioEngine === null) return; - if (player.isPlaying) { - // Take the internal player state and create a new player with it. - // `.play` does this internally but then instructs the sound to - // stop. - player.take(); - } - - const engine = this.runtime.audioEngine; - const chain = engine.createEffectChain(); - player.connect(chain); - player.play(); - return new Promise(resolve => { - player.once('stop', () => { - resolve(); - }); - }); } /** @@ -344,9 +259,7 @@ class Scratch3SpeechBlocks { _resolveSpeechPromises () { for (let i = 0; i < this._speechPromises.length; i++) { const resFn = this._speechPromises[i]; - // Boolean passed tells whether to play the end sound or not. Only play it for the first one, otherwise, - // we get the end sound played simultaneously which results in it being quite loud. - resFn(i === 0); + resFn(); } this._speechPromises = []; } @@ -738,34 +651,21 @@ class Scratch3SpeechBlocks { } /** - * Start the listening process if it isn't already in progress, playing a sound to indicate - * when it starts and stops. + * Start the listening process if it isn't already in progress. * @return {Promise} A promise that will resolve when listening is complete. */ listenAndWait () { - // TODO: Look into the timing of when to start the sound. There currently seems - // to be some lag between when the sound starts and when the socket message - // callback is received. Perhaps we should play the sound after the socket is setup. - // TODO: Question - Should we only play the sound if listening isn't already in progress? - return this._playSound(this._startSoundPlayer).then(() => { - this._phraseList = this._scanBlocksForPhraseList(); - this._resetEdgeTriggerUtterance(); - - const endSound = (shouldPlayEndSound => { - if (shouldPlayEndSound) { - this._playSound(this._endSoundPlayer); - } - }); - - const speechPromise = new Promise(resolve => { - const listeningInProgress = this._speechPromises.length > 0; - this._speechPromises.push(resolve); - if (!listeningInProgress) { - this._startListening(); - } - }); - return speechPromise.then(endSound); + this._phraseList = this._scanBlocksForPhraseList(); + this._resetEdgeTriggerUtterance(); + + const speechPromise = new Promise(resolve => { + const listeningInProgress = this._speechPromises.length > 0; + this._speechPromises.push(resolve); + if (!listeningInProgress) { + this._startListening(); + } }); + return speechPromise; } /** diff --git a/src/extensions/scratch3_speech/manifest.js b/src/extensions/scratch3_speech/manifest.js deleted file mode 100644 index cb76b3ac0..000000000 --- a/src/extensions/scratch3_speech/manifest.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - 'speech-rec-start.mp3': require('!arraybuffer-loader!./assets/speech-rec-start.mp3'), - 'speech-rec-end.mp3': require('!arraybuffer-loader!./assets/speech-rec-end.mp3') -};