voice-agent / static /pcm-worklet.js
RalphThings's picture
Deploy Hugging Face Space
5f0a2ac
raw
history blame contribute delete
559 Bytes
class PCMRecorderProcessor extends AudioWorkletProcessor {
process(inputs) {
const input = inputs[0];
if (!input || !input[0]) {
return true;
}
const samples = input[0];
const pcm16 = new Int16Array(samples.length);
for (let i = 0; i < samples.length; i += 1) {
const value = Math.max(-1, Math.min(1, samples[i]));
pcm16[i] = value < 0 ? value * 32768 : value * 32767;
}
this.port.postMessage(pcm16.buffer, [pcm16.buffer]);
return true;
}
}
registerProcessor("pcm-recorder", PCMRecorderProcessor);