DA.Whisper
September 9, 2024 ยท View on GitHub
DA.Whisper is an experimental .NET Binding and application of whisper.cpp, inspired by Whisper.Net.
Parts
Design Ideas
- The .NET Interop code is generated in Rust. First,
bindgenis run to convert thewhisper.cppsubmodule code into Rust bindings. Then,csbindgenis run against that to create C# bindings. This could be automated against so that whenever whisper.cpp updates, these bindings can be regenerated to validate if they still work with the current codebase. This could help keep these bindings up to date and protect against issues with breaking ABI changes. - Keep the base library small, with enough code written to handle the underlying native code in a C# way, but without doing too much additional work to make it hard to maintain against breaking changes. This work can be done in "Helper" libraries that can be independent of the binding code.