🌟 OpenVoiceOS is an open-source platform for smart speakers and other voice-centric devices.
ovos-core
(this repo) is the central component.
🛠️ If you have an existing system, we strongly recommend using the ovos-installer to install OVOS and its dependencies. This tool simplifies installing everything in one go!
📦 For Raspberry Pi users, the RaspOVOS image is a perfect choice. It runs in a "headless" mode (no GUI) and is optimized for Raspberry Pi 3B or higher. 💨 Enjoy even better performance on newer devices!
🔧 For embedded systems, check out ovos-buildroot – a custom Linux distribution for minimal and efficient setups. Stay tuned for updates!
📚 More detailed documentation is available in the ovos-technical-manual.
🎯 Developers can install ovos-core
standalone via:
pip install ovos-core
This includes the core components, perfect for custom assistant development.
🌟 OVOS is powered by skills!
While some skills come pre-installed, most need to be installed explicitly.
🔍 Browse OVOS-compatible skills on PyPI or explore the OVOS GitHub organization.
🤔 Did you know most classic Mycroft skills also work on OVOS?
🎉 Feel free to share your creative skills with the community!
ovos-persona can be used to generate responses when skills fail to handle user input
💡 With Persona you can connect a LLM to ovos-core
List Personas
- "What personas are available?"
- "Can you list the personas?"
- "What personas can I use?"
Activate a Persona
- "Connect me to {persona}"
- "Enable {persona}"
- "Start a conversation with {persona}"
- "Let me chat with {persona}"
Stop Conversation
- "Stop the interaction"
- "Terminate persona"
- "Deactivate Large Language Model"
Creating a Persona: Click to expand
Personas are configured using JSON files. These can be:
1️⃣ Provided by plugins (e.g., OpenAI plugin).
2️⃣ Created as user-defined JSON files in ~/.config/ovos_persona
.
Personas rely on solver plugins, which attempt to answer queries in sequence until a response is found.
🛠️ Example: Using a local OpenAI-compatible server.
Save this in ~/.config/ovos_persona/salamandra.json
:
{
"name": "Salamandra",
"solvers": [
"ovos-solver-openai-persona-plugin"
],
"ovos-solver-openai-persona-plugin": {
"api_url": "https://ollama.uoi.io/v1",
"model": "hdnh2006/salamandra-7b-instruct",
"key": "sk-xxxx",
"persona": "helpful, creative, clever, and very friendly."
}
}
Now the "Salamandra"
persona should be available, the example above is using a demo server, please note no uptime is guaranteed
More details on how to create your personas here
Pipeline Configuration: Click to expand
Add the persona pipeline to your mycroft.conf after the _high
pipeline matchers
{
"intents": {
"persona": {"handle_fallback": true},
"pipeline": [
"stop_high",
"converse",
"ocp_high",
"padatious_high",
"adapt_high",
"ovos-persona-pipeline-plugin-high",
"ocp_medium",
"fallback_high",
"stop_medium",
"adapt_medium",
"padatious_medium",
"adapt_low",
"common_qa",
"fallback_medium",
"ovos-persona-pipeline-plugin-low",
"fallback_low"
]
}
}
🌍 OVOS is open source and thrives on community contributions. Whether you're a coder, designer, or translator, there's a way to contribute!
🌐 Translate! Help improve OVOS in your language through our Translation Portal.
🙋♂️ Have questions or need guidance? Say hi in the OpenVoiceOS Chat, and a team member will be happy to mentor you.
💡 Join our Discussions to ask questions, share ideas, and learn from the community!
The OpenVoiceOS team extends gratitude to the following organizations for their support in our early days:
- Mycroft was a hackable, open-source voice assistant by the now-defunct MycroftAI. OpenVoiceOS continues that work
- NeonGecko
- KDE / Blue Systems
- 🛠️ Release Notes
- 📘 Technical Manual
- 💬 OpenVoiceOS Chat
- 🌐 Website
- 📣 Open Conversational AI Forums (previously Mycroft forums)