How wenet-e2e/wenet works
WeNet is a speech-recognition toolkit spanning model training, Python transcription, and production runtimes across CPU, GPU, and mobile platforms. The primary user workflow is to provide audio through the Python API or CLI, select/load a recognition model, and receive recognized text. The tree also shows training and deployment branches, plus streaming and network-serving runtimes. The sampled source confirms the web demo’s model-selection/transcription calls, C++ feature extraction, and selected client behavior; links for unsampled training and runtime internals are kept conservative.
Main entry points: models ASR architectures · asr_decoder.cc ASR decoder · train.py Training entry · app.py Gradio demo
Components 22
Python recognition
- CLI recognition
wenet/bin/recognize.py - Python model API
wenet/cli/model.py - Transcription
wenet/cli/transcribe.py
Training and models
- Data loading
wenet/dataset - Training entry
wenet/bin/train.py - ASR architectures
wenet/models - Text tokenizers
wenet/text - Checkpoint averaging
wenet/bin/average_model.py - Model export
wenet/bin/export_onnx_cpu.py
Production runtime
- C++ recognition API
runtime/core/api/wenet_api.cc - Audio features
runtime/core/frontend/feature_pipeline.cc - ASR decoder
runtime/core/decoder/asr_decoder.cc - gRPC service
runtime/core/grpc/grpc_server.cc - HTTP service
runtime/core/http/http_server.cc - WebSocket service
runtime/core/websocket/websocket_server.cc - Triton serving
runtime/gpu/model_repo
Client applications
- Gradio demo
runtime/web/app.py - Android client
runtime/android/app/src/main/java/com/mobvoi/wenet/Recognize.java - iOS client
runtime/ios/WenetDemo/WenetDemo/ViewController.swift - Triton clients
runtime/gpu/client/speech_client.py
Other components
- Audio user
- Recognized text
Connections 22
- Audio user → Python model API: provides audio
- Python model API → Transcription: transcribes
- Transcription → Recognized text: returns text
- Audio user → CLI recognition: submits audio
- CLI recognition → Recognized text: outputs text
- Audio user → Gradio demo: records audio
- Gradio demo → Python model API: loads models
- Gradio demo → Transcription: calls transcription
- Training entry → Data loading: loads training data
- Training entry → ASR architectures: trains models
- Training entry → Checkpoint averaging: writes checkpoints
- Checkpoint averaging → ASR architectures: averages weights
- Model export → ASR architectures: exports model
- C++ recognition API → Audio features: accepts audio
- Audio features → ASR decoder: supplies features
- gRPC service → ASR decoder: dispatches recognition
- HTTP service → ASR decoder: dispatches recognition
- WebSocket service → ASR decoder: dispatches recognition
- Triton clients → Triton serving: sends inference
- Android client → C++ recognition API: uses native API
- iOS client → C++ recognition API: uses native API
- Text tokenizers → ASR architectures: encodes text