A magical door opening system with witch voice authentication that integrates with Amazon Ring doorbell.
When someone rings the doorbell, the system responds with a witch voice asking "Passwort?" (Password?). The visitor's spoken response is transcribed using speech-to-text, matched against configured passwords using fuzzy matching, and grants access if the password is correct.
- 🧙♀️ Witch voice text-to-speech (ElevenLabs)
- 🎤 Speech-to-text transcription (OpenAI Whisper)
- 🔍 Fuzzy password matching (handles typos and pronunciation variations)
- 📊 Full tracing and monitoring (Langfuse)
- 🚪 Amazon Ring doorbell integration
- 🔒 Secure password validation with retry logic
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtCopy .env.example to .env and fill in your API keys:
cp .env.example .envRequired API keys:
- ElevenLabs: For text-to-speech (witch voice)
- OpenAI: For Whisper speech-to-text
- Langfuse: For tracing and monitoring
- Ring: Your Ring account credentials
# Development mode with auto-reload
python src/main.py
# Or with uvicorn directly
uvicorn src.main:app --reloadThe API will be available at http://localhost:8000
API documentation: http://localhost:8000/docs
python -m src.services.tts_service "Passwort?"python -m src.services.stt_service path/to/audio.mp3python -m src.services.password_servicepython -m src.services.tracing_service✅ Project setup and structure ✅ Configuration management ✅ Text-to-speech service ✅ Speech-to-text service ✅ Password matching with fuzzy logic ✅ Tracing and monitoring setup ⏳ Ring API integration (in progress) ⏳ Doorbell workflow orchestration ⏳ Webhook endpoints
See SPECS.md and PLAN.md for detailed documentation.