Local voice-to-text workflows with a production macOS always-on path and separated experiment tracks.
This is the setup you use every day.
- Check state:
cd /Users/remi/voice2clipboard
./voice_control.sh status- Start services:
./voice_control.sh start- Open live transcript in VS Code:
./voice_control.sh live- Capture a clipboard window:
./voice_control.sh mark-start
# speak
./voice_control.sh mark-stopVoice-command mode is enabled by default in daemon service:
- say
roger startto begin selection - say
roger stopto end selection and copy - aliases:
copy start/copy stop
- Stop everything:
./voice_control.sh stopMain runbook: docs/runbooks/STABLE_OPERATIONS.md
Use this when you want to tweak daemon params manually.
cd /Users/remi/voice2clipboard
./voice_control.sh stop
./scripts/mac/run_voxmlx_server.shIn a second terminal:
cd /Users/remi/voice2clipboard
source /Users/remi/.virtualenvs/voice2clipboard/bin/activate
python tools/always_on_voxtral_daemon.py \
--runtime-dir /Users/remi/voice2clipboard/runtime/always_on \
--samplerate 16000 \
--blocksize 1280 \
--commit-every 0.2 \
--segment-silence 0.8Legacy scripts are now under:
apps/linux/legacy_whisper/
voice_control.sh- single daily entrypoint for macOS operation (start/stop/status/markers/live/logs)
tools/- runtime core (
always_on_voxtral_daemon.py,always_on_capture.py) and utility scripts
- runtime core (
docs/runbooks/- operational docs you should follow
docs/research/- dated notes, diagnostics, analysis, papers-derived writeups
experiments/benchmarks/- benchmark runners and analysis scripts
experiments/vllm_voxtral/- vLLM/vllm-metal based Voxtral runtime experiments
apps/linux/legacy_whisper/- previous Whisper-first pipeline and launch scripts
Only ./voice_control.sh is kept at repo root for daily usage.
Other command scripts moved to:
scripts/mac/(production macOS operations)scripts/experiments/(benchmarking and vLLM experiment entrypoints)
- Daily operations:
docs/runbooks/STABLE_OPERATIONS.md - Always-on details:
docs/runbooks/ALWAYS_ON_VOXTRAL_RUNBOOK.md - Benchmarking workflow:
docs/runbooks/BENCHMARKING_RUNBOOK.md
- Marker boundary compensation default is currently
1.5s(symmetric start/stop) intools/always_on_capture.py. voice_control.sh startalready runs daemon + server; do not start a second manual daemon at the same time.