command.wasm : add voice assistant example for the Web (#171)

Same as the command-line tool "command", but runs in the browser

Also, added helper script "extra/deploy-wasm.sh" and fixed some timing
constants for the WASM examples.
This commit is contained in:
Georgi Gerganov
2022-11-26 11:40:06 +02:00
parent c536ff4005
commit 68ecadbbc9
12 changed files with 939 additions and 28 deletions

View File

@@ -160,12 +160,6 @@
<script type="text/javascript" src="helpers.js"></script>
<script type='text/javascript'>
const kRestartRecording_s = 15;
const kSampleRate = 16000;
window.AudioContext = window.AudioContext || window.webkitAudioContext;
window.OfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;
// web audio context
var context = null;
@@ -342,10 +336,17 @@
// microphone
//
const kSampleRate = 16000;
const kRestartRecording_s = 120;
const kIntervalAudio_ms = 250; // pass the recorded audio to the C++ instance at this rate
var mediaRecorder = null;
var doRecording = false;
var startTime = 0;
window.AudioContext = window.AudioContext || window.webkitAudioContext;
window.OfflineAudioContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;
function stopRecording() {
Module.set_status("paused");
doRecording = false;
@@ -357,7 +358,7 @@
function startRecording() {
if (!context) {
context = new AudioContext({
sampleRate: 16000,
sampleRate: kSampleRate,
channelCount: 1,
echoCancellation: false,
autoGainControl: true,
@@ -431,7 +432,7 @@
}
};
mediaRecorder.start(250);
mediaRecorder.start(kIntervalAudio_ms);
})
.catch(function(err) {
printTextarea('js: error getting audio stream: ' + err);
@@ -466,7 +467,7 @@
});
}
}
}, 250);
}, 100);
}
//