👋 Hello, world
I'm thrilled to introduce you to OpenHome - an open-source AI smart speaker project.
OpenHome Vision: Imagine a world where your smart speaker is your companion. It adapts, learns, and grows with you. That's what we're building with OpenHome – a groundbreaking open-source AI smart speaker project designed to push the boundaries of imagination
At OpenHome, we believe in the power of community-driven development to create technology that's not only advanced but also accessible. Whether you're a seasoned developer, a curious beginner, or somewhere in between, OpenHome is your opportunity to contribute to an AI smart speaker that's as simple to get started with as it is powerful.
Our Mission: To build an AI smart speaker that's cutting edge, open, customizable, and versatile for every user. We're not just creating a product, we're creating an ecosystem where every idea counts and is integrated to one giant super brain.
Accessibility: Easy-to-understand codebase and well-documented features for all skill levels.
Innovation: A playground for your most creative ideas to take shape and evolve.
Community: A supportive and collaborative space where questions are welcomed, and knowledge is shared.
Open-Source: We're committed to being open-source and empowering people to create the technology they want.
Work in Progress Technical Architecture: https://docs.google.com/document/d/1yp--z4FfSuFPeo2WAHFhK2l-vD85TCIgqeVTpSUI5xE/edit#heading=h.hug0acjqpx7j
The Heart of OpenHome: A Dynamic, Ever-Evolving Core At the core of OpenHome is a unique and powerful loop that continuously evolves the personality of your smart speaker. This isn't just about responding to commands; it's about creating an experience that's deeply personal and constantly refreshing. Every interaction with OpenHome is a step towards a more nuanced and tailored experience.
How It Works: The Magic Behind the Scenes Dynamic Personality: OpenHome begins with a foundation of diverse personalities, each ready to provide a distinct interaction experience. But here's the twist – these personalities aren't static. They evolve with every conversation, adapting to your preferences, your style, and your world.
Seamless Interactions: Through our advanced audio module, OpenHome listens and understands, converting your spoken words into a digital format that it can process. This is where the conversation begins.
Smart Processing: Leveraging the power of OpenAI's GPT model, OpenHome intelligently processes your input. Whether it's a command, a query, or casual chatter, the system is designed to understand and respond in the most relevant way.
Personalized Responses: The heart of OpenHome beats in its ability to learn from each interaction. Using our DynamicPersonalityConstructor, the system crafts responses that aren't just accurate but also personalized, taking into account your history and preferences.
Audible Magic: What good is a smart response if it can't be enjoyed? Our text-to-speech module brings the conversation to life, turning text responses into natural, fluent speech.
Sure, here's the complete markdown for your GitHub README.md file:
Welcome to OpenHome! We're excited to have you join us on this journey to create an open-source AI smart speaker that learns and grows with you. Whether you're here to build, learn, or contribute, we've got you covered with this step-by-step guide to get OpenHome running on your system.
Before you start, ensure you have the following installed on your system:
- Python 3.11: The preferred Python version for OpenHome.
- Homebrew (macOS users): For installing Python and other dependencies.
- PDM (Python Dependency Manager): For managing Python packages.
-
Install Homebrew (if you haven't already):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install Python 3.11 using Homebrew:
brew install python@3.11
-
Install PDM:
curl -sSL https://pdm.fming.dev | python3 -
-
Update your PATH: Add PDM to your PATH by inserting the following line into your
.zshrc
or.bash_profile
:export PATH=/Users/your-username/.local/bin:$PATH
Replace
your-username
with your macOS username. -
Install MPV for media playback:
brew install mpv
-
Ensure Python 3.11 is installed: If your Python version is below 3.11, add the deadsnakes PPA and install Python 3.11:
sudo add-apt-repository ppa:deadsnakes/ppa sudo apt install python3.11
-
Install curl (if not installed):
sudo apt install curl
-
Install PDM:
curl -sSL https://pdm-project.org/install-pdm.py | python3 -
-
Update your PATH:
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc source ~/.bashrc
-
Fix PyAudio errors (if any after running
pdm install
):sudo apt install python3.11-dev build-essential gcc pdm install
-
Install MPV for media playback:
sudo apt-get install mpv
Run the following command in the OpenHome directory to install required dependencies:
pdm install
To start OpenHome, run:
pdm run main
--debug
: Show all logs.--default
: Load the preset/default personality.--config
: Toggle prompts to update system configuration.--speech-off
: Disable speech output, with results visible in logs.--cold-start
: Clear previous history for a fresh conversation start.--mic-off
: Disable mic, you will be prompted instead to write user message.--whisper-mic
: This will disable deepgram microphone and enable openai whisper.
Example:
pdm run main --default
For a full list of flags, run:
pdm run main --help
If you encounter errors, reset the database and upload environment variables:
pdm run reset_db
pdm run upload_env
Detailed Guide: https://docs.google.com/document/d/1CQtW3JeNSXF2qKMfYVH5qPJdQtV0XeoyF9_1bbVBVxk/edit?usp=sharing
To add new capabilities to OpenHome:
- Copy and modify
template.py
in thecapabilities/
folder. - Register the capability with its function call, as shown below:
class TimerCapability(Capability):
@classmethod
def register_capability(cls):
return cls(unique_name="timer", hotwords=["call", "timer"])
def call(self):
# Your code here