@@ -89,7 +89,12 @@ <h1>SEPIA Web Audio Processor</h1>
8989 </ div >
9090 < div id ="wakeWordWorkerControls " class ="contorlGroup ">
9191 < label > < b > Wake-Word</ b > </ label >
92- < label > TBD - (Porcupine fixed values)</ label >
92+ < label > Buffer-Size:</ label > < input disabled placeholder ="same as input atm. ">
93+ < label > Sensitivity:</ label > < input id ="wakeWordSensitivity " class ="small " type ="number " value ="0.7 " max ="1 " min ="0 " step ="0.1 " placeholder ="0=low, 1=high " onchange ="setWakeWordSensitivity(+this.value); ">
94+ < label > Porcupine Version:</ label > < select id ="porcupineVersionSelect " onchange ="setPorcupineVersion(+this.value); ">
95+ < option value ="14 " selected > v1.4</ option >
96+ < option value ="19 "> v1.9</ option >
97+ </ select > < div style ="flex: 1 0 100%; "> </ div >
9398 < label > Gate:</ label > < div id ="wakeWordGateState "> </ div > < label > </ label >
9499 < label > Control:</ label > < button onclick ="wakeWordSetGate('open'); "> Listen</ button > < button onclick ="wakeWordSetGate('close'); "> Stop</ button > < label > </ label >
95100 </ div >
@@ -152,6 +157,7 @@ <h1>SEPIA Web Audio Processor</h1>
152157 + "Input Sample-Rate=" + info . inputSampleRate
153158 + " - Source-Type=" + info . sourceInfo . type ;
154159 console . log ( "onReady" , info ) ;
160+ if ( doUseWakeWordWorker ) showLogMessage ( "Available wake-words" , window . porcupineWorker . settings . options . setup . keywords ) ;
155161
156162 //for testing:
157163 if ( ! doUseWaveEncoder && rec . source . mediaStream ) createMediaRecorder ( rec . source . mediaStream , info . sourceInfo ) ;
@@ -352,19 +358,19 @@ <h1>SEPIA Web Audio Processor</h1>
352358 name : 'porcupine-wake-word-worker' ,
353359 type : 'worker' ,
354360 preLoad : {
355- wasmFile : 'src/modules/picovoice/porcupine-19.wasm'
361+ wasmFile : ( porcupineVersion == 14 ? 'src/modules/picovoice/porcupine-14.wasm' : 'src/modules/picovoice/porcupine- 19.wasm')
356362 } ,
357363 settings : {
358- onmessage : console . log , //TODO: change
364+ onmessage : onWakeWordMessage ,
359365 //sendToModules: (doUseWaveEncoder? [waveEncoderIndex] : []),
360366 options : {
361367 setup : {
362368 inputSampleRate : ( doUseResampler ? resamplerSampleRate : 0 ) ,
363369 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 ]
370+ bufferSize : resamplerBufferSize , //TODO: this has no effect yet
371+ version : porcupineVersion ,
372+ keywords : ( porcupineVersion == 14 ? [ "Hey SEPIA" ] : [ " Computer", "Jarvis" , "Picovoice" ] ) ,
373+ sensitivities : ( porcupineVersion == 14 ? [ 0.7 ] : [ 0.7 , 0.7 , 0.7 , 0.7 ] )
368374 }
369375 }
370376 }
@@ -581,6 +587,12 @@ <h1>SEPIA Web Audio Processor</h1>
581587 }
582588 }
583589 }
590+ function onWakeWordMessage ( msg ) {
591+ //console.log(msg);
592+ if ( msg && msg . keyword ) {
593+ showLogMessage ( "Wake-word detected" , msg . keyword ) ;
594+ }
595+ }
584596 function setVoiceActivity ( data ) {
585597 //console.log("vad", data);
586598 if ( data . voiceActivity != undefined ) {
@@ -782,6 +794,16 @@ <h1>SEPIA Web Audio Processor</h1>
782794 var doUseWakeWordWorker = document . getElementById ( "useWakeWordWorker" ) . checked ;
783795 var wakeWordGate = document . getElementById ( 'wakeWordGateState' ) ;
784796 var wakeWordGateOpen = false ;
797+ var wakeWordSensitivity = + document . getElementById ( "wakeWordSensitivity" ) . value ;
798+ var porcupineVersion = + document . getElementById ( "porcupineVersionSelect" ) . value ;
799+ function setWakeWordSensitivity ( sense ) {
800+ wakeWordSensitivity = sense ;
801+ console . log ( "wakeWordSensitivity" , wakeWordSensitivity ) ;
802+ }
803+ function setPorcupineVersion ( version ) {
804+ porcupineVersion = version ;
805+ console . log ( "porcupineVersion" , porcupineVersion ) ;
806+ }
785807 function wakeWordSetGate ( state ) {
786808 window . porcupineWorker . handle . sendToModule ( { gate : state } ) ;
787809 //wakeWordGate.textContent = state;
0 commit comments