asr.rebble.io: speech recognition for rebble
Rebble ASR provides automatic speech recognition services for Pebble smartwatches.
| Variable | Description | Default | Required |
|---|---|---|---|
ASR_API_KEY |
API key for ElevenLabs or Groq | None | Required for cloud providers |
ASR_API_PROVIDER |
Speech recognition provider (elevenlabs, groq, wyoming-whisper, or vosk) |
vosk |
No |
PORT |
Port for the HTTP server | 9039 |
No |
WYOMING_HOST |
Host address for Wyoming service | localhost |
Required for wyoming-whisper |
WYOMING_PORT |
Port for Wyoming service | 10300 |
Required for wyoming-whisper |
VOSK_MODEL_PATH |
Path to custom Vosk model directory | /code/model |
No |
DEBUG |
Enable detailed debug logging | false |
No |
SAVE_RECORDINGS |
Enable saving audio files and transcripts to disk | false |
No |
AUDIO_RECORDINGS_DIR |
Directory path for saved recordings | None | Required when SAVE_RECORDINGS=true |
MAX_AUDIO_RECORDINGS |
Maximum number of recordings to keep (auto-rotation) | 10 |
No |
Uses ElevenLabs' Scribe v1 model for high-quality transcription.
export ASR_API_PROVIDER=elevenlabs
export ASR_API_KEY=your_elevenlabs_api_keyUses Groq API with Whisper model for fast transcription.
export ASR_API_PROVIDER=groq
export ASR_API_KEY=your_groq_api_keyUses a local Wyoming-compatible speech recognition service (like Home Assistant's Whisper integration).
export ASR_API_PROVIDER=wyoming-whisper
export WYOMING_HOST=your_wyoming_host # IP address or hostname
export WYOMING_PORT=10300 # Default Wyoming portUses Vosk for offline speech recognition. No API key required.
export ASR_API_PROVIDER=voskEnable detailed logging for troubleshooting:
export DEBUG=trueDebug mode provides information about:
- Request details and headers
- Audio processing metrics
- Transcription timing and performance
- Service communication details
Rebble ASR can save audio files and their transcriptions to disk for debugging, quality assurance, or analysis purposes.
export SAVE_RECORDINGS=true
export AUDIO_RECORDINGS_DIR=/path/to/recordings
export MAX_AUDIO_RECORDINGS=10 # Optional, defaults to 10When enabled, each transcription request will save:
- WAV file: The audio data sent for transcription (e.g.,
recording_20251002_143022.wav) - TXT file: The transcribed text (e.g.,
recording_20251002_143022.txt)
Files are automatically rotated to keep only the most recent recordings based on MAX_AUDIO_RECORDINGS.
When using Docker Compose, map a host directory to persist recordings:
volumes:
- ./recordings:/recordingsThen set the environment variable to the container path:
export AUDIO_RECORDINGS_DIR=/recordings- Debugging: Analyze failed or incorrect transcriptions
- Quality Assurance: Review transcription accuracy
- Model Training: Collect real-world audio samples
- Troubleshooting: Identify issues with audio quality or format
- If no API key is provided, falls back to Vosk offline recognition
- If an invalid provider is specified, falls back to Vosk
- If Wyoming-Whisper is selected but the Wyoming package is not installed, falls back to Vosk
- If Wyoming-Whisper fails to connect to the Wyoming service, falls back to Vosk
- Gracefully handles errors by attempting alternative recognition methods