Skip to content

Commit 52eebfb

Browse files
committed
updated test
1 parent f1b2006 commit 52eebfb

File tree

2 files changed

+83
-19
lines changed

2 files changed

+83
-19
lines changed

test.html

Lines changed: 77 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,17 @@ <h1>SEPIA Web Audio Processor</h1>
8282
<label><b>Basic Buffer</b></label>
8383
<label>Buffer-Size:</label><input id="basicBufferSize" class="small" value="512" onchange="setResamplerBufferSize(this);" placeholder="512">
8484
</div>
85+
<div id="vadWorkerControls" class="contorlGroup">
86+
<label><b>VAD</b></label>
87+
<label>Buffer-Size:</label><input id="vadWorkerBufferSize" class="small" value="960" placeholder="960" onchange="setVadWorkerBufferSize(+this.value);">
88+
<label>Mode:</label><input id="vadWorkerVadMode" class="small" value="3" placeholder="1-3 (3: agressive)" onchange="setVadWorkerVadMode(+this.value);">
89+
</div>
90+
<div id="wakeWordWorkerControls" class="contorlGroup">
91+
<label><b>Wake-Word</b></label>
92+
<label>TBD - (Porcupine fixed values)</label>
93+
<label>Gate:</label><div id="wakeWordGateState"></div><label></label>
94+
<label>Control:</label><button onclick="wakeWordSetGate('open');">Listen</button><button onclick="wakeWordSetGate('close');">Stop</button><label></label>
95+
</div>
8596
<div id="waveEncoderControls" class="contorlGroup">
8697
<label><b>Wave Encoder</b></label>
8798
<label>Lookback (ms):</label><input id="waveEncoderLookback" class="small" value="0" onchange="setWaveEncoderLookback(this);">
@@ -99,25 +110,23 @@ <h1>SEPIA Web Audio Processor</h1>
99110
<label>Control:</label><button onclick="startMediaRecorder();">Capture</button><button onclick="stopMediaRecorder();">Stop</button>
100111
<label>Export:</label><button onclick="getRawDataFromMediaRecorder();">Show Decoded Data</button>
101112
</div>
102-
<div id="vadWorkerControls" class="contorlGroup">
103-
<label><b>VAD</b></label>
104-
<label>Buffer-Size:</label><input id="vadWorkerBufferSize" class="small" value="960" placeholder="960" onchange="setVadWorkerBufferSize(+this.value);">
105-
<label>Mode:</label><input id="vadWorkerVadMode" class="small" value="3" placeholder="1-3 (3: agressive)" onchange="setVadWorkerVadMode(+this.value);">
106-
</div>
107113
<div class="contorlGroup">
108114
<label><b>Switches:</b></label>
115+
<div style="flex: 1 0 100%;"></div>
109116
<label>Volume-proc.:</label><input type="checkbox" id="useVolumeProcessor" checked onchange="useVolumeProcessor(this.checked);">
110117
<label>Resampler:</label><input type="checkbox" id="useResampler" checked onchange="useResampler(this.checked);">
111118
<label>Wave-encoder:</label><input type="checkbox" id="useWaveEncoder" checked onchange="useWaveEncoder(this.checked);">
112119
<label>VAD:</label><input type="checkbox" id="useVadWorker" checked onchange="useVadWorker(this.checked);">
120+
<label>Wake-Word:</label><input type="checkbox" id="useWakeWordWorker" checked onchange="useWakeWordWorker(this.checked);">
121+
<div style="flex: 1 0 100%;"></div>
113122
<label>Plot 1:</label><input type="checkbox" id="usePlot1" checked onchange="usePlot(1, this);">
114123
<label>Plot 2:</label><input type="checkbox" id="usePlot2" checked onchange="usePlot(2, this);">
115-
<label>Plot 3:</label><input type="checkbox" id="usePlot3" checked onchange="usePlot(3, this);">
124+
<label>Plot 3:</label><input type="checkbox" id="usePlot3" onchange="usePlot(3, this);">
116125
<label>Plot 4:</label><input type="checkbox" id="usePlot4" checked onchange="usePlot(4, this);">
117126
</div>
118127
<div id="chart1" class="chart"></div>
119128
<div id="chart2" class="chart"></div>
120-
<div id="chart3" class="chart"></div>
129+
<div id="chart3" class="chart" style="display: none;"></div>
121130
<div id="chart4" class="chart"></div>
122131
</div>
123132
<script type='text/javascript' src="test-commons.js"></script>
@@ -339,6 +348,30 @@ <h1>SEPIA Web Audio Processor</h1>
339348
window.vadWorker = vadWorker;
340349
var vadWorkerIndex;
341350

351+
var porcupineWorker = {
352+
name: 'porcupine-wake-word-worker',
353+
type: 'worker',
354+
preLoad: {
355+
wasmFile: 'src/modules/picovoice/porcupine-19.wasm'
356+
},
357+
settings: {
358+
onmessage: console.log, //TODO: change
359+
//sendToModules: (doUseWaveEncoder? [waveEncoderIndex] : []),
360+
options: {
361+
setup: {
362+
inputSampleRate: (doUseResampler? resamplerSampleRate : 0),
363+
inputSampleSize: resamplerBufferSize, //output bufferSize of previous module
364+
bufferSize: 1024, //TODO: change
365+
version: 19,
366+
keywords: ["Computer", "Jarvis"],
367+
sensitivities: [0.5, 0.5]
368+
}
369+
}
370+
}
371+
};
372+
window.porcupineWorker = porcupineWorker;
373+
var porcupineWorkerIndex;
374+
342375
//put together modules
343376
var activeModules = [];
344377
if (doUseVolumeProcessor){
@@ -355,15 +388,6 @@ <h1>SEPIA Web Audio Processor</h1>
355388
activeModules.push(bufferSwitch);
356389
bufferSwitchIndex = activeModules.length;
357390
}
358-
if (doUseWaveEncoder){
359-
activeModules.push(waveEncoder);
360-
waveEncoderIndex = activeModules.length;
361-
362-
//add to send function
363-
bufferSwitch.settings.sendToModules.push(waveEncoderIndex);
364-
resampler.settings.sendToModules.push(waveEncoderIndex);
365-
resamplerWorker.settings.sendToModules.push(waveEncoderIndex);
366-
}
367391
if (doUseVadWorker){
368392
activeModules.push(vadWorker);
369393
vadWorkerIndex = activeModules.length;
@@ -373,6 +397,24 @@ <h1>SEPIA Web Audio Processor</h1>
373397
resampler.settings.sendToModules.push(vadWorkerIndex);
374398
resamplerWorker.settings.sendToModules.push(vadWorkerIndex);
375399
}
400+
if (doUseWakeWordWorker){
401+
activeModules.push(porcupineWorker);
402+
porcupineWorkerIndex = activeModules.length;
403+
404+
//add to send function
405+
bufferSwitch.settings.sendToModules.push(porcupineWorkerIndex);
406+
resampler.settings.sendToModules.push(porcupineWorkerIndex);
407+
resamplerWorker.settings.sendToModules.push(porcupineWorkerIndex);
408+
}
409+
if (doUseWaveEncoder){
410+
activeModules.push(waveEncoder);
411+
waveEncoderIndex = activeModules.length;
412+
413+
//add to send function
414+
bufferSwitch.settings.sendToModules.push(waveEncoderIndex);
415+
resampler.settings.sendToModules.push(waveEncoderIndex);
416+
resamplerWorker.settings.sendToModules.push(waveEncoderIndex);
417+
}
376418

377419
//create processor
378420
rec = new SepiaFW.webAudio.Processor({
@@ -737,6 +779,25 @@ <h1>SEPIA Web Audio Processor</h1>
737779
}
738780
}
739781

782+
var doUseWakeWordWorker = document.getElementById("useWakeWordWorker").checked;
783+
var wakeWordGate = document.getElementById('wakeWordGateState');
784+
var wakeWordGateOpen = false;
785+
function wakeWordSetGate(state){
786+
window.porcupineWorker.handle.sendToModule({gate: state});
787+
//wakeWordGate.textContent = state;
788+
wakeWordGate.className = state;
789+
wakeWordGateOpen = (state == "open");
790+
console.log("wakeWordSetGate", state);
791+
}
792+
function useWakeWordWorker(useIt){
793+
doUseWakeWordWorker = useIt;
794+
if (useIt){
795+
document.getElementById("wakeWordWorkerControls").style.display = "";
796+
}else{
797+
document.getElementById("wakeWordWorkerControls").style.display = "none";
798+
}
799+
}
800+
740801
function showMediaRecorderCodecs(){
741802
//add codec options
742803
var codecSel = document.getElementById("mediaRecorderCodec");

tests.css

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,19 @@ label + input {
9595
width: 0%;
9696
background: #ff3355;
9797
}
98-
#waveEncoderGateState {
98+
#waveEncoderGateState,
99+
#wakeWordGateState {
99100
width: 18px;
100101
height: 18px;
101102
background: #eee;
102103
border-radius: 9px;
103104
}
104-
#waveEncoderGateState.open {
105+
#waveEncoderGateState.open,
106+
#wakeWordGateState.open {
105107
background: #0f5;
106108
}
107-
#waveEncoderGateState.close {
109+
#waveEncoderGateState.close,
110+
#wakeWordGateState.close {
108111
background: #000;
109112
border-radius: 0;
110113
}

0 commit comments

Comments
 (0)