feat: add whisper.cpp engine via CLI wrapper abstraction (and outline path to real-time whisper.cpp with VAD) - #19
Conversation
|
Hey Samuel, Your whisper_cpp.py looks good — straightforward and well handled on the error paths. I just reworked the engine config system on my side (named instances, multi-instance support, etc.), so the integration points here would need to be redone against the new layout. I'm planning to take your whisper_cpp.py, wire it up to the current architecture, and co-author the commit with your name. Holler if you have any concerns or want to tweak anything before I do that. BTW I browsed through kaiku a bit — really liked how thorough the docs are. Picked up a few ideas from it. |
|
Please go forward! And feel free to copy/adopt anything from kaiku -- even from the README if you like it (though linking is perhaps also an option)! Don't let me hold you down. As I mentioned, this project was for me also a learning exercise and the kaiku README served as a place to document some of my learnings relating to ASR and related topics. Hopefully it serves someone! |
Summary
Implement a lightweight local speech-to-text alternative using whisper.cpp via a CLI wrapper:
Provide the structural foundation for whisper.cpp based local transcription, with a clear architectural path forward toward non-blocking concurrent queuing (Producer-Consumer) in future iterations.
Finalization and test plan
Disclaimers
Future steps
This CLI wrapper design is simple and well suited for occasional and/or long transcription jobs. However, the asr2clip project describes itself as "Real-time speech-to-text clipboard tool with Silero VAD and local ASR support". We could evolve or extend this implementation to fulfill that description better: The whisper.cpp project includes a simple HTTP server that could perhaps provide non-blocking concurrent queuing (a Producer-Consumer model) as an alternative that would be better suited for rapidly processing successive transcription jobs (mimicking the sherpa-onnx design but with a leaner implementation for resource constrained systems):