36 lines
1.2 KiB
HTML
36 lines
1.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src="Vosklet.js"></script>
|
|
<script>
|
|
async function start() {
|
|
let ctx = new AudioContext({sampleRate : 16000})
|
|
let micNode = ctx.createMediaStreamSource(await navigator.mediaDevices.getUserMedia({
|
|
video: false,
|
|
audio: {
|
|
echoCancellation: true,
|
|
noiseSuppression: true,
|
|
channelCount: 1,
|
|
sampleRate: 16000
|
|
},
|
|
}))
|
|
let module = await loadVosklet()
|
|
let model = await module.createModel("../usage/en-model.tgz","model","ID")
|
|
let recognizer = await module.createRecognizer(model, 16000)
|
|
recognizer.addEventListener("result", ev => {
|
|
console.log("Result: ", ev.detail)
|
|
})
|
|
recognizer.addEventListener("partialResult", ev => {
|
|
console.log("Partial result: ", ev.detail)
|
|
})
|
|
let transferer = await module.createTransferer(ctx)
|
|
console.log(transferer)
|
|
transferer.port.onmessage = ev => {
|
|
recognizer.acceptWaveform(ev.data)
|
|
}
|
|
micNode.connect(transferer)
|
|
}
|
|
</script>
|
|
<button onclick="start()">Start</button>
|
|
</head>
|
|
</html> |