π 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
8000
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)