Whisper-asr-CPU
Docker app from hernandito's Repository
Overview
Readme
View on GitHub
Whisper ASR Box
Whisper ASR Box is a general-purpose speech recognition toolkit. Whisper Models are trained on a large dataset of diverse audio and is also a multitask model that can perform multilingual speech recognition as well as speech translation and language identification.
🎉 Join our Discord Community! Connect with other users, get help, and stay updated on the latest features: https://discord.gg/4Q5YVrePzZ
Features
Current release (v1.10.0) supports following whisper models:
Quick Usage
CPU
docker run -d -p 9000:9000 \
-e ASR_MODEL=base \
-e ASR_ENGINE=openai_whisper \
onerahmet/openai-whisper-asr-webservice:latest
GPU
docker run -d --gpus all -p 9000:9000 \
-e ASR_MODEL=base \
-e ASR_ENGINE=openai_whisper \
onerahmet/openai-whisper-asr-webservice:latest-gpu
Cache
To reduce container startup time by avoiding repeated downloads, you can persist the cache directory:
docker run -d -p 9000:9000 \
-v $PWD/cache:/root/.cache/ \
onerahmet/openai-whisper-asr-webservice:latest
Key Features
- Multiple ASR engines support (OpenAI Whisper, Faster Whisper, WhisperX)
- Multiple output formats (text, JSON, VTT, SRT, TSV)
- Word-level timestamps support
- Voice activity detection (VAD) filtering
- Speaker diarization (with WhisperX)
- FFmpeg integration for broad audio/video format support
- GPU acceleration support
- Configurable model loading/unloading
- REST API with Swagger documentation
Environment Variables
Key configuration options:
ASR_ENGINE: Engine selection (openai_whisper, faster_whisper, whisperx)ASR_MODEL: Model selection (tiny, base, small, medium, large-v3, etc.)ASR_MODEL_PATH: Custom path to store/load modelsASR_DEVICE: Device selection (cuda, cpu)MODEL_IDLE_TIMEOUT: Timeout for model unloading
Documentation
For complete documentation, visit: https://ahmetoner.github.io/whisper-asr-webservice
Development
# Install poetry v2.X
pip3 install poetry
# Install dependencies for cpu
poetry install --extras cpu
# Install dependencies for cuda
poetry install --extras cuda
# Run service
poetry run whisper-asr-webservice --host 0.0.0.0 --port 9000
After starting the service, visit http://localhost:9000 or http://0.0.0.0:9000 in your browser to access the Swagger UI documentation and try out the API endpoints.
Credits
Requirements
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
onerahmet/openai-whisper-asr-webservice:latest-gpuRuntime arguments
- Web UI
http://[IP]:[PORT:9000]/docs- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--memory=12g
Template configuration
HTTP API + Swagger docs (http://host:9000/docs). Change the host port if a GPU Whisper container already uses 9000.
- Target
- 9000
- Default
- 9000
- Value
- 9000
Use faster_whisper (supports SubSyncarr's multilingual=true). Do NOT set to whisperx.
- Default
- faster_whisper
- Value
- faster_whisper
Model: tiny, base, small, medium, large-v3. On a weak CPU, 'medium' or 'small' trade accuracy for a big speed-up.
- Default
- large-v3
- Value
- large-v3
int8 = smallest + fastest on CPU. (float32/float16 are slower and heavier on CPU.)
- Default
- int8
- Value
- int8
Where models are stored INSIDE the container. Must match the Models host-path mapping below.
- Default
- /data/whisper
- Value
- /data/whisper
cpu = run entirely on the processor + RAM. No GPU is requested.
- Default
- cpu
- Value
- cpu
Host folder that persists downloaded models. Keeps the model OUT of the docker image.
- Target
- /data/whisper
- Default
- /mnt/cache/appdata/whisper-asr
- Value
- /mnt/cache/appdata/whisper-asr
CPU threads used for transcription. Set near your core count for best speed.
- Default
- 8
- Value
- 8
Seconds of inactivity before the model is unloaded from RAM (0 = keep loaded). Set e.g. 300 to free RAM between jobs at the cost of a reload delay.
- Default
- 0
- Value
- 0
SubSyncarr multilingual patch - bind-mounts the patched file over the image's copy. Survives image upgrades. Leave EMPTY if you do not use SubSyncarr.
- Target
- /app/app/webservice.py
- Default
- /mnt/user/appdata/subsync-build/wasr-multilingual-patch/webservice.py
- Value
- /mnt/user/appdata/subsync-build/wasr-multilingual-patch/webservice.py
SubSyncarr multilingual patch - bind-mounts the patched file over the image's copy. Survives image upgrades. Leave EMPTY if you do not use SubSyncarr.
- Target
- /app/app/asr_models/faster_whisper_engine.py
- Default
- /mnt/user/appdata/subsync-build/wasr-multilingual-patch/faster_whisper_engine.py
- Value
- /mnt/user/appdata/subsync-build/wasr-multilingual-patch/faster_whisper_engine.py