
š£ļø OVOS-core
š OpenVoiceOS is an open-source platform for smart speakers and other voice-centric devices.
ovos-core
(this repo) is the central component.
š Installing OVOS
š ļø 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.
šļø Skills
š 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!
š¤ Persona Support
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
Persona Files
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
Persona Pipeline
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"
]
}
}
š¤ Getting Involved
š 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!
š Credits
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
š Links