Home / Documentation / Configuration Guide

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

EngineDescriptionCharacteristics
FunASROpen-source speech recognition from Alibaba (Paraformer)Strong in Chinese, streaming recognition
WhisperAn open model from OpenAI (local inference)General-purpose across languages, high accuracy
MockA test engineVerifies 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