C++ ASR inference project for ARM platforms
Top 60.4% on sourcepulse
FastASR is a C++-based Automatic Speech Recognition (ASR) inference engine designed for high performance and minimal dependencies, targeting developers and researchers needing efficient ASR on various platforms, including ARM devices like the Raspberry Pi 4B. It offers near-commercial-grade accuracy by leveraging optimized Transformer models trained on extensive datasets, providing a fast and accurate solution for speech-to-text tasks.
How It Works
This project implements ASR inference purely in C++, eschewing deep learning framework dependencies like PyTorch or TensorFlow. This approach allows for significant CPU optimization tailored to specific architectures, leading to high execution efficiency. By minimizing data copying and utilizing pointer-heavy algorithms, FastASR achieves faster inference speeds compared to framework-based solutions, particularly on resource-constrained devices. It supports both non-streaming and streaming models, with VAD technology enabling long audio processing for non-streaming variants.
Quick Start & Requirements
pip install fastasr
for Python users. Source compilation is also supported for C++ integration and custom builds.libfftw3
, libopenblas
. For Raspberry Pi 4B optimization, a 64-bit OS and recompilation of dependencies are recommended. Pre-trained models must be downloaded separately.Highlighted Details
libfastasr.a
) and Python module (PyFastASR
) interfaces.Maintenance & Community
The project appears to be actively developed by chenkui164. Further community engagement channels are not explicitly listed in the README.
Licensing & Compatibility
The README does not explicitly state a license. Compatibility for commercial use or closed-source linking is not specified.
Limitations & Caveats
The project is still working on model quantization and compression. Punctuation addition requires a separate NLP model. The README notes that some models can be large and slow, potentially impacting client-side performance, though the C++ implementation aims to mitigate this.
2 years ago
Inactive