https://github.com/mbari-org/ecoz2rs
ECOZ2 in Rust
https://github.com/mbari-org/ecoz2rs
hidden-markov-models hmm k-means linear-predictive-coding signal-recognition supervised-learning unsupervised-learning vector-quantization
Last synced: 3 months ago
JSON representation
ECOZ2 in Rust
- Host: GitHub
- URL: https://github.com/mbari-org/ecoz2rs
- Owner: mbari-org
- Created: 2019-09-03T19:57:01.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-04-04T23:46:13.000Z (3 months ago)
- Last Synced: 2025-04-13T12:13:02.142Z (3 months ago)
- Topics: hidden-markov-models, hmm, k-means, linear-predictive-coding, signal-recognition, supervised-learning, unsupervised-learning, vector-quantization
- Language: Rust
- Homepage:
- Size: 396 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: ChangeLog.md
Awesome Lists containing this project
README
# ECOZ2 in Rust
This project is mainly a "front-end" to the original
[ecoz2](https://github.com/ecoz2/ecoz2) implementation in C,
with some functionality implemented in Rust.## Installing and running
The `ecoz2` executable is currently being built and released for
Linux and MacOS, which you can find under
[releases](https://github.com/ecoz2/ecoz2rs/releases).Alternatively, you can also install the executable using
[`Rust`](https://www.rust-lang.org/tools/install).
For this you will also need a GNU gcc compiler on your machine.On Linux you can run:
$ export CC=gcc
$ cargo install ecoz2and on a MacOS, something like:
$ brew install gcc
$ export CC=gcc-10
$ cargo install ecoz2This may take some time to complete (example of output
[here](https://gist.github.com/carueda/0b4ede3e0152d3d670b0a0f2fc7098ce)).Running:
$ ecoz2
...
USAGE:
ecoz2
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
csv-show Basic csv selection info
cversion Show version of C code
help Prints this message or the help of the given subcommand(s)
hmm HMM operations
lpc Linear prediction coding
mm MM operations
nb NBayes operations
prd Predictor file operations
seq Sequence file operations
sgn Signal operations
util Utilities
vq VQ operationsStarting with a set of acoustic signals (WAV format) on your machine,
the typical use of the system will involve the following main subcommands
in this general order:- `ecoz2 lpc`: takes `*.wav` and generates predictor files `*.prd`
- `ecoz2 vq learn` takes `*.prd` and generates codebook files `*.cbook`
- `ecoz2 vq quantize` takes `*.cbook` and `*.prd` and generates observation sequences `*.seq`
- `ecoz2 hmm learn` takes `*.seq` and generates an HMM model `*.hmm`
- `ecoz2 hmm classify` takes `*.hmm` and `*.seq`, performs classification
of the sequences and reports the results## Development
[ecoz2](https://github.com/ecoz2/ecoz2) is included as a submodule,
with selected functionality exposed via
.$ export CC=gcc-10
$ cargo build [--release]
$ cargo install --path .