@Vapi hi i am trying to listen to the call using websocket and audiocontext on vue js 3 but still a a lot of noise this is my playAudioInRealTime(arrayBuffer) {
if (!arrayBuffer || arrayBuffer.byteLength === 0) {
console.warn("ArrayBuffer is empty, skipping playback");
return;
}
const int16Array = new Int16Array(arrayBuffer);
const float32Array = new Float32Array(int16Array.length);
for (let i = 0; i < int16Array.length; i++) {
float32Array[i] = int16Array[i] / 32767.0; // Correct normalization
}
if (float32Array.length === 0) {
console.warn("Float32Array is empty, skipping playback");
return;
}
const numberOfChannels = 2;
const sampleRate = 16000;
const frameCount = float32Array.length / numberOfChannels;
const audioBuffer = this.audioContext.createBuffer(numberOfChannels, frameCount, sampleRate);
const leftChannel = audioBuffer.getChannelData(0);
const rightChannel = audioBuffer.getChannelData(1);
for (let i = 0; i < frameCount; i++) {
leftChannel[i] = float32Array[i * 2];
rightChannel[i] = float32Array[i * 2 + 1];
}
const source = this.audioContext.createBufferSource();
source.buffer = audioBuffer;
// Directly connect to destination without filters/compression
source.connect(this.audioContext.destination);
source.start();
console.log("Playing audio in real-time without any processing");
}