Mercurial
comparison dictation/README.md @ 277:1d99147f520c
Merge Qwen services and infinite canvas heads
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Mon, 17 Aug 2026 17:01:40 -0700 |
| parents | 78699f810817 |
| children | 49e9e591c9bb |
comparison
equal
deleted
inserted
replaced
| 276:b55c22cff335 | 277:1d99147f520c |
|---|---|
| 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. |