/DA.Whisper

CLI Program and Binding of whisper.cpp to .NET

Primary LanguageC#MIT LicenseMIT

DA.Whisper

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, bindgen is run to convert the whisper.cpp submodule code into Rust bindings. Then, csbindgen is 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.