Considering switching to wasm workers since they are a lot lighter and faster
This commit is contained in:
42
README.md
42
README.md
@@ -8,12 +8,46 @@
|
|||||||
- Support multiple models
|
- Support multiple models
|
||||||
- Model storage path management
|
- Model storage path management
|
||||||
- Model ID management (for model updates)
|
- Model ID management (for model updates)
|
||||||
- Smaller JS size (>3.1MB vs 1.4MB)
|
- Smaller JS size (>3.1MB vs 1.4MB gzipped)
|
||||||
- All related files (pthread worker, worklet processor,...) are merged
|
- All related files (pthread worker, worklet processor,...) are merged
|
||||||
- Shorter from-scratch build time
|
- Shorter from-scratch build time
|
||||||
- Faster loading and processing time
|
- Faster loading and processing time
|
||||||
|
|
||||||
# Basic usage
|
# Basic usage
|
||||||
- Use the prebuilt binary through JsDelivr
|
```
|
||||||
- See
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<script src="Vosklet.js" async defer></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("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)
|
||||||
|
transferer.port.onmessage = ev => {
|
||||||
|
recognizer.acceptWaveform(ev.data)
|
||||||
|
}
|
||||||
|
micNode.connect(transferer)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<button onclick="start()">Start</button>
|
||||||
|
</head>
|
||||||
|
</html>
|
||||||
|
```
|
||||||
|
|||||||
@@ -24,7 +24,6 @@
|
|||||||
console.log("Partial result: ", ev.detail)
|
console.log("Partial result: ", ev.detail)
|
||||||
})
|
})
|
||||||
let transferer = await module.createTransferer(ctx)
|
let transferer = await module.createTransferer(ctx)
|
||||||
console.log(transferer)
|
|
||||||
transferer.port.onmessage = ev => {
|
transferer.port.onmessage = ev => {
|
||||||
recognizer.acceptWaveform(ev.data)
|
recognizer.acceptWaveform(ev.data)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user