aivox
Version:
A lightweight CLI tool for translating voice to text using Whisper, seamlessly piping the transcribed text to any Unix-like command for versatile integration.
36 lines (30 loc) • 935 B
text/typescript
const message = 'Recording: ';
const spinnerFrames = [
'⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'
];
let currentIndex = 0;
let frameIndex = 0;
let printedExit = false;
function typeMessage() {
if (currentIndex < message.length) {
process.stderr.write(message[currentIndex]);
currentIndex++;
} else {
if (!printedExit) {
process.stderr.write('press space to stop recording \t');
printedExit = true;
}
process.stderr.write('\b' + spinnerFrames[frameIndex]);
frameIndex = (frameIndex + 1) % spinnerFrames.length;
}
}
const intervalId = setInterval(typeMessage, 100); // Adjust the interval as needed
process.on('message', (msg) => {
if (msg === 'exit') {
process.stderr.write('\n');
clearInterval(intervalId);
process.exit();
}
});
// Keep the process alive
setInterval(() => {}, 1000);