A smart home assistant that combines voice control, task management, and morning routines using OpenAI's GPT and Whisper APIs, along with Todoist integration.
- Voice-activated assistant with multiple personality modes
- Bilingual support (English and Hungarian)
- Todoist task integration with upcoming task alerts
- Morning routine with weather updates and daily task summaries
- Background music with smart volume control
- Customizable voice personalities
- OpenAI API key
- Todoist API token
openai
speech_recognition
pyttsx3
playsound
python-dotenv
requests
pytz
pygame- Clone the repository
- Install required packages:
pip install openai speech_recognition pyttsx3 playsound python-dotenv requests pytz pygame- Create a
.envfile with your API keys:
OPENAI_API_KEY=your_openai_key_here
TODOIST_API_TOKEN=your_todoist_token_here
- English mode:
hey english - Hungarian mode:
hey hungary
- Bad News:
hey english bad news - Good News:
hey english good news - Whisper:
hey english whisper - Goblin:
hey english goblin - Superstar:
hey english superstar - Fred:
hey english fred - Weird:
hey english weird - Default (Antal):
hey english
- English:
close chat - Hungarian:
viszont latasraorviszontlΓ‘tΓ‘sra
The assistant automatically:
- Checks for tasks due within the next 30 minutes
- Provides audio alerts for upcoming tasks
- Triggers morning routine with "Wakey" task
Activated by the "Wakey" task in Todoist:
- Plays background music with smart volume control
- Announces weather information
- Lists all tasks for the day
- Utilizes OpenAI's Whisper model for accurate transcription
- Supports both English and Hungarian languages
- Maintains conversation context
project/
βββ sounds/
β βββ trigger_beep.wav
β βββ alert_hung.wav
β βββ 9.wav
βββ .env
βββ main.py
- Automatic recovery from connection issues
- Debug logging for troubleshooting
- Continuous operation with error recovery
- The assistant checks Todoist every 60 seconds
- Voice personality changes persist until chat is closed
- Background music volume adjusts automatically during interactions
MIT
Tamas Orban