Speech Recognition (ASR)
Multiple recognition engines
Neurova ships ASRManager, which picks an available speech recognition engine through an engine fallback chain (FunASR / Whisper / Mock), supporting many languages including Chinese and English.
Supported engines
| Engine | Description | Characteristics |
|---|---|---|
| FunASR | Open-source speech recognition from Alibaba (Paraformer) | Strong in Chinese, streaming recognition |
| Whisper | An open model from OpenAI (local inference) | General-purpose across languages, high accuracy |
| Mock | A test engine | Verifies the chain when no model is present |
Core features
- Automatic fallback: if initialization fails, the next engine is tried
- Engine initialization: async initialize plus the _initialize_with_fallback chain
- Statistics: engine_name/stats reports the current engine and its runtime state
- Audio input: accepts many formats including wav and mp3
Configuration
from neurova.asr import ASRManager
asr = ASRManager()
await asr.initialize() # picks an available engine automatically
text = await asr.transcribe("audio.wav")
Related endpoints
GET /api/v1/audio/asr/engines # list available engines
POST /api/v1/audio/asr/transcribe # speech to text
Key files
neurova/asr/
├── manager.py # ASRManager (engine fallback + statistics)
├── funasr_engine.py # FunASR engine
├── whisper_engine.py # Whisper engine
└── mock_asr.py # test engine