The upstream project is now unmaintained, and they recommend switching to Whisper or another STT service. I have written bindings for whisper.cpp as well, and you can find those over at https://github.com/tazz4843/whisper-rs.
Docs: https://docs.rs/coqui-stt/latest/coqui_stt
crates.io: https://crates.io/crates/coqui-stt
Github: https://github.com/tazz4843/coqui-stt
A simple, yet feature-filled wrapper around the coqui-stt C API.
Handles all low-level things for you. All you need to worry about is passing in a valid model, optionally scorer, and audio.
If you'd like to, audio streaming is supported with the Stream
class.
You can gain extended metadata about an audio result with the Metadata
class.
Some hidden functions are also exposed in the Rust API with #[doc(hidden)]
.
The Coqui-STT C libraries need to be discoverable by the rust linker. For that, you can do either of the following:
cargo:rustc-link-search
or cargo:rustc-link-lib
The libraries also have to be discoverable by the executable. If you followed the first option
in the previous section, it will run with no extra effort; otherwise, you will need to copy the
libraries to your current working directory (target/<profile name>
by default). It is recommended
that you use a tool such as cargo-make to automate this.
As for Windows, the libraries need to be discoverable by the rust linker. You have a couple of options:
/usr/local/lib
or /usr/lib
. This is the recommended way, if you have root
access, and plan to run the executable on the same machine where it was built.LIBRARY_PATH
environment variable to the path to where you have the unzipped
libstt.tflite.Linux.zip
file. This requires the corresponding environment variable during execution.Just like with Windows, the libraries need to be discoverable by the executable. Static linking is not possible.
LD_LIBRARY_PATH
environment variable to the
directory where you have the unzipped libstt.tflite.Linux.zip
file. The libraries do not need to be in the
same location as they were during build, as long as LD_LIBRARY_PATH
is set to the correct location.The MSRV is always the latest stable version, currently 1.58.1 (2022-01-20) as of this writing.