Esolafast
Fast C++ implementation of ESOLA using KFRLib, can be used for online time-stretch augmentation during SpeechToText training.
Install / Use
npx skills add viig99/esolafastInstalls into whichever agent you are using.
README
Epoch-Synchronous Overlap-Add (ESOLA)
Fast C++ implementation of ESOLA using KFRLib, can be used for online time-stretch augmentation during SpeechToText training.
C++ Rewrite
Mostly an C++ re-write of https://github.com/BaronVladziu/ESOLA-Implementation to be used in Online SpeechToText training.
Build
git clone https://github.com/viig99/esolafast.git
cd esolafast
git submodule update --init --recursive
mkdir build && cd build
cmake ..
make -j`nproc`
Run
./esolafast -i INPUT_PATH -o OUTPUT_PATH -t 1.5
./esolafast --help
Performance
Right now faster than sox, sound-stretch & rubberband, CPU usage is much higher. Quality is better than rubberband, same as sox & sound-stretch.
$ time sox sample_file.wav sox_1_5.wav tempo 1.5
sox sox_1_5.wav tempo 2.0 0.01s user 0.01s system 17% cpu 0.022 total
$ time soundstretch sample_file.wav st_1_5.wav -tempo=1.5
soundstretch st_1_5.wav -tempo=1.5 0.01s user 0.00s system 44% cpu 0.022 total
$ time esolafast -i sample_file.wav -o es_1_5.wav -t 1.5
esolafast -i -o -t 1.5 0.01s user 0.00s system 92% cpu 0.010 total
$ time rubberband -q -T 1.5 sample_file.wav rb_1_5.wav
rubberband -q -T 1.5 rb_1_5.wav 0.01s user 0.00s system 89% cpu 0.022 total
Python Bindings
Generate the python bindings, using pybind11
$ python setup.py build
For example using the python binding check examples/test.py
References
Related Skills
node-connect
385.5kDiagnose OpenClaw Android, iOS, or macOS node pairing, QR/setup code, route, auth, and connection failures.
blender-python-addon
40.5kBlender Python add-on rules for operators, panels, properties, registration, testing, and API-safe scripting
flutter-development-guidelines-cursorrules-prompt-file
40.5kCursor rules for Flutter development with MVVM architecture, Riverpod state management, Material widgets, and Dart style guidelines.
commit-push-pr
140.7kCommit, push, and open a PR
