You've already forked Irene-Voice-Assistant
mirror of
https://github.com/janvarev/Irene-Voice-Assistant.git
synced 2025-12-05 23:08:23 +02:00
6.0
Для WebApi добавлен HTML-клиент на основе Vosk Browser. Он распознает звук на клиенте, и вызывает API Ирины. - в папке webapi_client - доки в INSTALL_MULTI.md
This commit is contained in:
39
webapi_client/recognizer-processor.js
Normal file
39
webapi_client/recognizer-processor.js
Normal file
@@ -0,0 +1,39 @@
|
||||
class RecognizerAudioProcessor extends AudioWorkletProcessor {
|
||||
constructor(options) {
|
||||
super(options);
|
||||
|
||||
this.port.onmessage = this._processMessage.bind(this);
|
||||
}
|
||||
|
||||
_processMessage(event) {
|
||||
// console.debug(`Received event ${JSON.stringify(event.data, null, 2)}`);
|
||||
if (event.data.action === "init") {
|
||||
this._recognizerId = event.data.recognizerId;
|
||||
this._recognizerPort = event.ports[0];
|
||||
}
|
||||
}
|
||||
|
||||
process(inputs, outputs, parameters) {
|
||||
const data = inputs[0][0];
|
||||
if (this._recognizerPort && data) {
|
||||
// AudioBuffer samples are represented as floating point numbers between -1.0 and 1.0 whilst
|
||||
// Kaldi expects them to be between -32768 and 32767 (the range of a signed int16)
|
||||
const audioArray = data.map((value) => value * 0x8000);
|
||||
|
||||
this._recognizerPort.postMessage(
|
||||
{
|
||||
action: "audioChunk",
|
||||
data: audioArray,
|
||||
recognizerId: this._recognizerId,
|
||||
sampleRate, // Part of AudioWorkletGlobalScope
|
||||
},
|
||||
{
|
||||
transfer: [audioArray.buffer],
|
||||
}
|
||||
);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
registerProcessor('recognizer-processor', RecognizerAudioProcessor)
|
||||
Reference in New Issue
Block a user