Mercurial
comparison dictation/README.md @ 275:78699f810817
Add Qwen3-VL and WebRTC dictation services
Add Bazel targets for the CUDA-backed Qwen3-VL server and a local WebRTC faster-whisper dictation service.
Co-authored-by: Copilot <[email protected]>
Copilot-Session: e3d8cb06-6c95-4ae0-9757-651d3796ab00
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 17 Aug 2026 10:58:47 -0700 |
| parents | |
| children | 49e9e591c9bb |
comparison
equal
deleted
inserted
replaced
| 274:c9be578316a6 | 275:78699f810817 |
|---|---|
| 1 # WebRTC dictation | |
| 2 | |
| 3 This Bazel package runs a local WebRTC speech-to-text service using aiortc and | |
| 4 faster-whisper. The default multilingual Whisper `small` model uses the RTX | |
| 5 4070 Ti through native WSL CUDA with `int8_float16` compute. | |
| 6 | |
| 7 ## Setup | |
| 8 | |
| 9 ```bash | |
| 10 bazel run //dictation:preflight | |
| 11 bazel run //dictation:download_model | |
| 12 bazel run //dictation:server | |
| 13 ``` | |
| 14 | |
| 15 Open <http://127.0.0.1:8090>, grant microphone permission, and start | |
| 16 dictation. Audio is carried by WebRTC and partial/final transcript events are | |
| 17 returned on the `transcripts` RTC data channel. | |
| 18 | |
| 19 To transcribe an existing audio file: | |
| 20 | |
| 21 ```bash | |
| 22 bazel run //dictation:transcribe -- /path/to/audio.wav | |
| 23 ``` | |
| 24 | |
| 25 To exercise the running HTTP signaling and WebRTC path with an audio file: | |
| 26 | |
| 27 ```bash | |
| 28 bazel run //dictation:webrtc_smoke -- /path/to/audio.wav | |
| 29 ``` | |
| 30 | |
| 31 The model is stored under `~/.cache/zenbu/faster-whisper-small` by default. | |
| 32 Override it with `DICTATION_MODEL_DIR`. | |
| 33 | |
| 34 Useful tuning: | |
| 35 | |
| 36 ```bash | |
| 37 DICTATION_COMPUTE_TYPE=int8_float16 \ | |
| 38 DICTATION_MAX_SESSIONS=1 \ | |
| 39 DICTATION_PARTIAL_INTERVAL_MS=1200 \ | |
| 40 DICTATION_SILENCE_MS=700 \ | |
| 41 bazel run //dictation:server | |
| 42 ``` | |
| 43 | |
| 44 The first version intentionally binds to loopback and does not configure STUN | |
| 45 or TURN. Remote WebRTC access requires HTTPS, authentication, origin policy, | |
| 46 and usually a TURN service. |