simen-onnx-node
v1.0.2
Published
Speech-to-text, text-to-speech, speaker diarization, and speech enhancement using ONNX Runtime for Node.js
Maintainers
Keywords
Readme
simen-onnx-node
Node.js addon for speech-to-text, text-to-speech, and speaker diarization using ONNX Runtime.
Features
- Streaming ASR: Real-time speech recognition
- Non-streaming ASR: Batch speech recognition
- TTS: Text-to-speech synthesis
- VAD: Voice activity detection
- Speaker Identification: Speaker recognition and verification
- Keyword Spotting: Wake word detection
Installation
Prerequisites
- Node.js >= 16.0.0
- CMake >= 3.15
- C++ compiler (GCC, Clang, or MSVC)
Download Dependencies
# macOS/Linux
chmod +x scripts/download-deps.sh
./scripts/download-deps.sh
# Windows (PowerShell)
.\scripts\download-deps.ps1Build sherpa-onnx Library
git clone https://github.com/k2-fsa/sherpa-onnx
cd sherpa-onnx
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=./install ..
make -j4 install
# Copy to prebuilt directory
cp -r ./install /path/to/simen-onnx-node/prebuilt/sherpa-onnxBuild the Addon
npm install
npm run buildUsage
const sherpaOnnx = require('simen-onnx-node');
// Create streaming recognizer
const recognizer = sherpaOnnx.createOnlineRecognizer({
modelConfig: {
transducer: {
encoder: './encoder.onnx',
decoder: './decoder.onnx',
joiner: './joiner.onnx',
},
tokens: './tokens.txt',
numThreads: 2,
},
enableEndpoint: true,
});
// Create stream and process audio
const stream = sherpaOnnx.createOnlineStream(recognizer);
sherpaOnnx.acceptWaveformOnline(stream, { samples: audioData, sampleRate: 16000 });
// Get result
const result = sherpaOnnx.getOnlineStreamResultAsJson(recognizer, stream);
console.log(JSON.parse(result));Project Structure
simen-onnx-node/
├── src/ # Node addon C++ bindings
├── lib/ # JavaScript wrappers
├── native/ # Core C++ source (reference)
│ ├── csrc/ # Core implementation
│ ├── c-api/ # C API layer
│ └── cmake/ # CMake modules
├── prebuilt/ # Prebuilt dependencies (gitignored)
│ ├── onnxruntime/ # ONNX Runtime library
│ └── sherpa-onnx/ # sherpa-onnx library
└── scripts/ # Build scriptsLicense
Apache-2.0
