// eslint-disable-next-line @typescript-eslint/no-var-requires const portAudio = require('naudiodon'); // eslint-disable-next-line @typescript-eslint/no-var-requires let audio: string; let audioInput: string[] = []; export function initRecorder() { let ia = new portAudio.AudioIO({ inOptions: { channelCount: 1, sampleFormat: 16, sampleRate: 16000, deviceId: -1, closeOnError: false, } }); ia.setEncoding('base64'); ia.start(); ia.pause(); ia.on('error', (e: Error) => { console.log('error recording audio', + e); }); ia.on('data', (chunk: string) => { audioInput.push(chunk); console.log('Got %d characters of string data:', chunk.length); }); } async function processData(chunks: string[]): Buffer | Error { audio = ''; chunks.forEach(s => { audio += s; }) const buffer = Buffer.from(audio, "base64"); audioInput = []; return buffer; }