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. Each section below is a quick reference for one of them, and 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 most of it needs a restart. A voice change does not need a restart: see Change your voice. 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 }
  }
}

To pick your own phrase with no training, see Change the Wake Word Without Training. To make the assistant answer only your voice, see Make OVOS Answer Only Your Voice.

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, so a failed primary engine there falls back to the next engine. On the stable and testing channels the chain is precise-lite → precise → vosk → pocketsphinx. On the alpha channel it is precise-onnx → WakeForge → vosk. 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 here, this one needs a terminal. OVOS has no on-device UI to install plugins. 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"
  }
}

You do not need to restart OVOS for a voice change. ovos-audio watches the configuration files. When tts.module or the settings block of that plugin changes, it shuts down the old voice and loads the new one. A change to another key in the tts section, such as lang, does not reload the voice. The log of ovos-audio shows (re)loading TTS engine when this happens.

Alpha channel only

On the stable channel (ovos-audio 0.4.0) and the testing channel (ovos-audio 1.2.0), the voice reloads only when the settings block of the plugin changes, for example a new voice value. If you change only module, and neither plugin has a settings block, the old voice keeps speaking until you restart OVOS. On the alpha channel, ovos-audio also reloads when module changes.

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