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:
- Move them to a folder in your PATH variable.
- Create a build script and
provide cargo with the path to the libraries with
cargo:rustc-link-search
orcargo: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:
- Move them to
/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. - During build, set the
LIBRARY_PATH
environment variable to the path to where you have the unzippedlibstt.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.
- If you followed option 1 above, as long as the libraries remain in the directory where they were installed, you should be able to run the executable without issues.
- If you followed option 2 above, you will need to set the
LD_LIBRARY_PATH
environment variable to the directory where you have the unzippedlibstt.tflite.Linux.zip
file. The libraries do not need to be in the same location as they were during build, as long asLD_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.