From 41d674e7bd69fcaa01245b02480d4bd0c64bd206 Mon Sep 17 00:00:00 2001 From: 0/0 Date: Sun, 9 Oct 2022 20:46:14 -0600 Subject: [PATCH] add LICENSE and README.md --- LICENSE | 24 ++++++++++++++++++++++++ README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3c577b0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,24 @@ +This is free and unencumbered software released into the public domain. + +Anyone is free to copy, modify, publish, use, compile, sell, or +distribute this software, either in source code form or as a compiled +binary, for any purpose, commercial or non-commercial, and by any +means. + +In jurisdictions that recognize copyright laws, the author or authors +of this software dedicate any and all copyright interest in the +software to the public domain. We make this dedication for the benefit +of the public at large and to the detriment of our heirs and +successors. We intend this dedication to be an overt act of +relinquishment in perpetuity of all present and future rights to this +software under copyright law. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR +OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +For more information, please refer to \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..1c843a5 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# whisper-rs + +Rust bindings to [whisper.cpp](https://github.com/ggerganov/whisper.cpp/) + +## Usage +```rust +fn main() { + // load a context and model + let mut ctx = WhisperContext::new("path/to/model").expect("failed to load model"); + + // create a params object + let mut params = FullParams::new(DecodeStrategy::Greedy { n_past: 0 }); + + // assume we have a buffer of audio data + // here we'll make a fake one, floating point samples, 32 bit, 16KHz, mono + let audio_data = vec![0_f32; 16000 * 2]; + + // now we can run the model + ctx.full(params, &audio_data[..]) + .expect("failed to run model"); + + // fetch the results + let num_segments = ctx.full_n_segments(); + for i in 0..num_segments { + let segment = ctx.full_get_segment_text(i).expect("failed to get segment"); + let start_timestamp = ctx.full_get_segment_t0(i); + let end_timestamp = ctx.full_get_segment_t1(i); + println!("[{} - {}]: {}", start_timestamp, end_timestamp, segment); + } +} +``` + +See [examples/basic_use.rs](examples/basic_use.rs) for more details. + +Lower level bindings are exposed if needed, but the above should be enough for most use cases. +See the docs: https://docs.rs/whisper-rs/ for more details. + +## License +[Unlicense](LICENSE) + +tl;dr: public domain