Skip to content

Latest commit

Β 

History

History
97 lines (69 loc) Β· 2.34 KB

File metadata and controls

97 lines (69 loc) Β· 2.34 KB

Ring Ring Who's There

A magical door opening system with witch voice authentication that integrates with Amazon Ring doorbell.

Overview

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.

Features

  • πŸ§™β€β™€οΈ 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

Setup

1. Install Dependencies

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

2. Configure Environment

Copy .env.example to .env and fill in your API keys:

cp .env.example .env

Required 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

3. Run the Application

# Development mode with auto-reload
python src/main.py

# Or with uvicorn directly
uvicorn src.main:app --reload

The API will be available at http://localhost:8000

API documentation: http://localhost:8000/docs

Testing Individual Services

Test TTS Service

python -m src.services.tts_service "Passwort?"

Test STT Service

python -m src.services.stt_service path/to/audio.mp3

Test Password Matching

python -m src.services.password_service

Test Tracing

python -m src.services.tracing_service

Development Status

βœ… 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

Ring API Integration

⚠️ Note: Ring does not have an official public API. Integration options are being researched.

See SPECS.md and PLAN.md for detailed documentation.