Skip to content

Make It Yours

In a nutshell

You just installed OVOS and it works. Now you want it to sound like your assistant: a different name to wake it up, a different voice answering you, or a different language altogether. All three are small edits to the same file, ~/.config/mycroft/mycroft.conf. This page is a quick-reference for all three. Each section links to the full page with more detail and more options.

Want to do this by voice instead of editing files?

Everything below needs opening a text file and a restart. If you'd rather change your wake word, voice, or volume by talking to your assistant, see What can I say? and It's Not Working: Quick Fixes for what's already possible hands-free (e.g. volume) versus what still needs a config edit (wake word, voice, language).

All the settings below live in your personal config file at ~/.config/mycroft/mycroft.conf (create it if it doesn't exist yet. See Configuration Management for how the layering works). It's JSON with comments allowed (JSONC). Open it with any text editor, for example:

nano ~/.config/mycroft/mycroft.conf

Prefer a browser over a terminal?

RaspOVOS images ship two web editors: ovos-yaml-editor edits this same configuration in the browser (port 9210), and ovos-skill-config-tool edits individual skill settings (port 8000). Open http://<device-ip>:9210 from any computer on your network. On other installs you can add them with pip. See RaspOVOS for details.

To change one skill's own settings, not the global config, use the Web-Based Settings UI instead. No terminal needed.

Before restarting, double-check the file still parses. A stray missing comma or bracket will stop it from loading. Because mycroft.conf allows // comments, plain json.tool will reject it even when it's fine. Use the same comment-aware loader OVOS itself uses. This runs a small Python command directly in the terminal. Paste it exactly as shown:

python3 -c "from ovos_utils.json_helper import load_commented_json; load_commented_json('$HOME/.config/mycroft/mycroft.conf'); print('OK')"

This prints OK if the file is valid, or a JSONDecodeError with a line/column pointing at the mistake if it isn't. You can also confirm a specific value actually took effect after restarting with ovos-config show --section <name> (see Configuration Management for the full CLI). Once the file parses cleanly, apply the change:

How to restart your assistant

OVOS is not one program — it's several separate services (the listener, ovos-core, ovos-audio, the messagebus, and more) that need to pick up a config change together. How you restart them depends on how OVOS was installed:

  • systemd install (the ovos-installer or a RaspOVOS image): restart the whole stack with one command —
    systemctl --user restart ovos.service
    
    ovos.service is a --user target unit that the other services (ovos-messagebus.service, ovos-listener.service, ovos-audio.service, ovos-core.service, ovos-phal.service, and — if installed — ovos-gui.service) declare as PartOf=, so restarting it cascades to all of them. Restarting a single service instead (e.g. only the listener after a wake-word change) works the same way: systemctl --user restart ovos-listener.service.
  • Docker/container install: restart the equivalent service(s) in your compose file, e.g.
    docker compose restart <service-name>
    
    (or docker compose restart with no name to restart everything).
  • Manual/development run: stop the running ovos-core process (Ctrl-C) and start it again.

Change your wake word

{
  "listener": { "wake_word": "hey_computer" },
  "hotwords": {
    "hey_computer": { "module": "ovos-ww-plugin-vosk", "listen": true }
  }
}

As with voices below, the plugin must be installed into the same environment OVOS runs in before the config can use it (pip install ovos-ww-plugin-vosk for this example). Take a custom hotword like this one, with no fallback_ww configured. A module that fails to load is logged loudly (an ERROR with a traceback in the listener log) and simply dropped, so the assistant stops responding to that wake word.

The shipped default hey_mycroft behaves differently. Its config chains through fallback_ww entries (tflite → precise → vosk → pocketsphinx), so a failed primary engine there falls back to the next engine. The assistant keeps listening, though each failed engine still logs its own ERROR (see Wake-word Plugins). Full walkthrough, plugin choices, and tuning: Wake-word Plugins.

Change your voice

Install the plugin's package first. Unlike most tweaks on this page, this one does require a terminal today. There is no on-device UI for installing plugins yet. phoonnx ships the ovos-tts-plugin-phoonnx plugin, so without it OVOS has nothing to load and the voice won't actually change. Activate the same Python virtual environment OVOS runs in before running this, or the plugin installs somewhere OVOS never looks. On raspOVOS images and ovos-installer setups this is the environment the installer created, for example source ~/.venvs/ovos/bin/activate:

pip install phoonnx

Make sure to install it into the same Python environment OVOS itself runs in. See the note in TTS Plugins.

{
  "tts": {
    "module": "ovos-tts-plugin-phoonnx"
  }
}

Browse voice samples and see every available plugin: TTS Plugins.

Make it talk slower

There is no single global speaking-rate setting. Rate lives in the active TTS plugin's own config block, under whichever key that plugin exposes, so check its entry in TTS Plugins first. If you are setting up a device for someone who needs a slower, steadier voice, Accessibility walks through picking a voice that stays clear at a reduced rate.

Change your language

{
  "lang": "de-DE"
}

This one line is enough on its own. STT, TTS, and every language-aware plugin follow the global lang automatically. Want the recommended plugins/voices for that language instead of your current ones? Run ovos-config autoconfigure -l de-DE --offline afterwards. Full picture, supported-language table, and gaps to watch for: Language Support.

Switching language

lang sets the primary language. To also understand a second language without replacing the primary one, add it to secondary_langs. See Language Selection for how OVOS picks a language per utterance from these two keys.


Read next: Fun stuff to try Related: Configuration Management · Wake-word Plugins · TTS Plugins · Language Support