OpenVoiceOS / ovos-installer

Open Voice OS and/or HiveMind installer using Ansible with an intuitive and easy Text-based User Interface
https://www.openvoiceos.org
48 stars 13 forks source link

Experiences with installer on a Rpi5 and some suggestions #40

Closed timonvanhasselt closed 4 months ago

timonvanhasselt commented 6 months ago

First of all: I had a very good experience installing OVOS this way on a freshly installed rpi5 with RpiOS Bookworm. Great work! It worked out of the box in combination with a Jabra 510 speakerphone. The following are only suggestions. I can split it up in more feature requests/ 'issues' if you like, but I don't want to spam the whole repo. ;)

Pi5 specific:

I2C, I2S and SPI interfaces must be enahled. Follow the steps below: Echo etc.

Can this maybe be scripted in the installer? I only had to copy & paste the commands that were given, so maybe it could be a IFTTT scenario (if I2C etc not recognized then install etc)

General

[*] OVOS stand-alone (default)
[ ] OVOS configured as a Hivemind satellite (Only the needed audio components)
[ ] OVOS configured as a Hivemind master (Full OVOS install, satellites can connect to it in a secure way)

In case there's something not working or you want to change the configuration you can use the following commands.

* ovos-cli-client (deprecated, but still useful for text commands to check if an utterance is working and to see if a utterance is transribed).
* ovos-config show (to show the current config).
    To change the user config, use:

        ovos-config get -k example
    ovos-config set -k 

Or open: ~/.config/mycroft/mycroft.conf with an editor.

A few specifics/ recommendations for the Dutch config:

(I can imagine that the last features are not doable with all of the different localizations, but it would improve the user experience a lot)

builderjer commented 6 months ago

A few comments on yours

I had to reboot after install for the right time and date config to load. After the installer was done, 'hey mycroft, what time is it' worked, but it was in a different timezone.

I think this is an issue with the config not reloading to all of the skills. I think, from a look that I have had on a skill of my own, the skill itself needs to load the config values again after a change. If it is not coded in the skill, it doesn't seem to work.

Maybe add some useful (but necessary) OVOS commands in/after the last screen? For instance the following in the current finish screen or on another page. For instance:

These are what is shown on an SSH login to raspOVOS

echo ""
echo "OVOS Tool COMMANDs:"
echo "  ovos-config            Manage your local OVOS configuration files"
echo "  ovos-listen            Activate the microphone to listen for a command"
echo "  ovos-speak  <phrase>   Have OVOS speak a phrase to the user"
echo "  ovos-say-to <phrase>   Send an utterance to OVOS as if spoken by a user"
echo
echo "OVOS Skill Manager COMMANDs:"
echo "  osm install <skill|url>   Install mycroft skills"
echo "  osm remove  <skill|url>   Uninstall mycroft skills"
echo "  osm update                Update installed skills"
echo
echo "OVOS Docs COMMANDs:"
echo "  ovos-docs-viewer community          View the OVOS Community docs in the terminal"
echo "  ovos-docs-viewer techincal          View the OVOS Technical docs in the terminal"
echo "  ovos-docs-viewer hivemind           View the HiveMind docs in the terminal"
echo "  ovos-docs-viewer messages           View OVOS Message specs in the terminal"
echo
echo "Misc Helpful COMMANDs:"
echo "  ovos-simple-cli         Chat with your device through the terminal"
echo

ovos-simple-cli works WAY better than ovos-cli-client and I don't even include that in the raspOVOS image anymore. You just don't get the log feedback, but a simple tail -f command, or with the raspOVOS images ologs will show all of the logs in real time.

Can the standard time format be set to full instead of half in the nl-nl config? in the mycroft.conf file set `"time_format": "full" https://github.com/OpenVoiceOS/ovos-config/blob/ff7aa89a12d7e7511fb01f1e82273b12b6a1d410/ovos_config/mycroft.conf#L35

Can the Date format be DMY instead of MDY? in the mycroft.conf file set `"date_format": "DMY" https://github.com/OpenVoiceOS/ovos-config/blob/ff7aa89a12d7e7511fb01f1e82273b12b6a1d410/ovos_config/mycroft.conf#L39

timonvanhasselt commented 6 months ago

@builderjer Thanks, I knew there was a new cli client, but I couldn't find it / remember it. 😅 I think the commands shown in the raspOVOS image are a great pointer; in the installer version of @goldyfruit I think this kind of commands are missing (so new users possibly don't know where to start). (BTW: are the OVOS skill manager options still working?) And about the config: I was thinking more of automating maybe some configs for specific languages (like Dutch) if possible, so that the new user don't have to change it manually.

builderjer commented 6 months ago

languages should be picked up and converted automatically. If you ask a question in Dutch, it will respond in Dutch. Note, not all skills are compatible with all languages yet.

goldyfruit commented 6 months ago

Thanks for the great feedback!

  • During installing a message about:

I2C, I2S and SPI interfaces must be enahled. Follow the steps below: Echo etc.

Can this maybe be scripted in the installer? I only had to copy & paste the commands that were given, so maybe it could be a IFTTT scenario (if I2C etc not recognized then install etc)

This requires a reboot which is why I wanted to user to perform the actions but I guess the installer can perform the actions and prompt a reboot request.

  • During installing there's not an indication of the remaining time. Is a progressbar an option? Also: The installer shows all the logs of the installer. Maybe that could be an user checkbox (next to a progressbar?)

The progress status was the Ansible playbook output (which is not a log :+1: ). I will check how a progress bar could be implemented.

  • I had to reboot after install for the right time and date config to load. After the installer was done, 'hey mycroft, what time is it' worked, but it was in a different timezone.

The timezone is not configured by the installer but we can try to auto-detect it and configure it.

  • The logs were missing after installing (at least: I can't find them). I followed a hint from a Matrix thread about removing the 'stdout' part in config and then they were created in ~/.local/state/mycroft

Since the installer leverages either Docker or systemd, there is not really a need to have the logs into ~/.local/state/mycroft since docker logs or journald will provide the required log. Having the logs into ~/.local/state/mycroft is a user preference.

  • IMO the options in the profile part are what confusing. Maybe you can call them something like:

Might need some thinking. :+1:

  • I've tried reinstalling to update everything to the latest versions. The installer detects the current OVOS instance, and tells it has to be removed etc. That's ok. But from a user perspective, I'd expected that the installer would automatically install again (after removing), but that's not the case. It stops after deleting. I think that is something to explain more in the current "deinstall" screens. Or maybe a dedicated 'update' option via the installer is a possibility?

There is no need to uninstall to update the stack, if answer is No then the installer will reinstall the stack without uninstall it. I will add a line to the uninstall dialog.

  • [*] containers (install Docker Engine or Podman first before using this option) <-- otherwise errors during installing

The installer supports only Docker (not podman) and it installs it automatically if not already installed on the system.

  • Maybe add some useful (but necessary) OVOS commands in/after the last screen? For instance the following in the current finish screen or on another page. For instance:

In case there's something not working or you want to change the configuration you can use the following commands.

* ovos-cli-client (deprecated, but still useful for text commands to check if an utterance is working and to see if a utterance is transribed).
* ovos-config show (to show the current config).
  To change the user config, use:

        ovos-config get -k example
  ovos-config set -k 

Or open: ~/.config/mycroft/mycroft.conf with an editor.
  • For restarting all OVOS services on Raspberry Pi, use:
  systemctl --user restart ovos-*

  Or individual services with:
  systemctl --user restart ovos-listener
  systemctl --user restart ovos-audio
  systemctl --user restart ovos-core
  systemctl --user restart ovos-gui
  • Check the logs in realtime in ~/.local/state/mycroft:
  tail -f voice.log (for speech recognition)
  tail -f audio.log (for TTS and all audio)

This should be part of the official documentation, not the installer itselft.

  • Faster whisper in Dutch is not that good unfortunately... is it possible to use Chromium STT instead as default in the Dutch config and mention the use of this exernal STT also for the best experience?

We are trying to leverage the private and open infrastructure provided by the Open Voice OS community, the installer should stick to that.

But your point is valid and user should be aware of the limitations of FasterWhisper for Dutch or German languages but this is the role of the official documentation not the installer. I hope one day to see an online Open Voice OS configuration tool that will help users to get an optimised mycroft.conf based on their language.

  • The voice rdh-low is pretty good. It's a Flemish voice, but it's very responsive and pretty natural. The default is a server based version too (your server), should that be mentioned too? (maybe people expect OVOS to run fully local).

The default voice for Dutch is set to rdh-medium according to https://github.com/OpenVoiceOS/ovos-installer/blob/main/ansible/roles/ovos_installer/templates/mycroft.conf.j2#L50 but I can change it to rhd-low if you prefer.

  • Can the standard time format be set to full instead of half in the nl-nl config?
  • Can the Date format be DMY instead of MDY?

That is a user preference as well, an online configuration tool would solved these kind issues as at the end of the installer, the user could be redirected to this tool and some instructions.

goldyfruit commented 6 months ago

I think the commands shown in the raspOVOS image are a great pointer; in the installer version of @goldyfruit I think this kind of commands are missing (so new users possibly don't know where to start). (BTW: are the OVOS skill manager options still working?)

Depending the method selected during the installer, if containers then the commands will be available inside the ovos_cli container, if virtualenv then the command are in available in the virtualenv.

OSM is not fully working yet and will not be part of the installer until fully working.

ovos-docs-viewer why not.

JarbasAl commented 5 months ago

OSM will likely be deprecated and not get any new updates, it makes little sense until we have a skill marketplace, it was developed as a classic mycroft tool and assumes the old way of installing skills, its more likely to be rewritten than updated

goldyfruit commented 5 months ago

Can this maybe be scripted in the installer? I only had to copy & paste the commands that were given, so maybe it could be a IFTTT scenario (if I2C etc not recognized then install etc)

Done.

  • The logs were missing after installing (at least: I can't find them). I followed a hint from a Matrix thread about removing the 'stdout' part in config and then they were created in ~/.local/state/mycroft

Done for Python Virtual environment.

  • Faster whisper in Dutch is not that good unfortunately... is it possible to use Chromium STT instead as default in the Dutch config and mention the use of this exernal STT also for the best experience?

Chromium STT plugin is now part of the Docker image as well as the Python Virtual environment but the user will still have to configure the module in mycroft.conf.

goldyfruit commented 5 months ago
  • I had to reboot after install for the right time and date config to load. After the installer was done, 'hey mycroft, what time is it' worked, but it was in a different timezone.

Done.

goldyfruit commented 5 months ago

ovos-docs-viewer why not.

Done.

JarbasAl commented 5 months ago
  • Can the standard time format be set to full instead of half in the nl-nl config?
  • Can the Date format be DMY instead of MDY?

That is a user preference as well, an online configuration tool would solved these kind issues as at the end of the installer, the user could be redirected to this tool and some instructions.

These two i think should follow the convention of the language code as a default, in these cases we almost 100% sure the user does not want the US centric defaults, i think it would be in the scope of the installer to provide better default values if a language was selected

however i do agree such a tool should be made, i started some time ago but dropped it early https://github.com/OpenVoiceOS/ovos-config-assistant

perhaps getting it into shape should be prioritized

timonvanhasselt commented 5 months ago

Maybe (an easy solution if auto config is hard): ask the user in the installer wizard for a few preferences about the date & time presentation?

goldyfruit commented 5 months ago

Maybe (an easy solution if auto config is hard): ask the user in the installer wizard for a few preferences about the date & time presentation?

I really would like to avoid to go that route which will then create a path for, this should be added, and this as well, and that, etc...

The installer should not be overwhelming (which it is a bit already for people new to this "world"). An assistant configuration tool would be the most "simple" solution from a flow perspective and the overall solution will be easier to maintain.

goldyfruit commented 4 months ago

Closing as I think most of the possible enhancements have been made.

Thanks @timonvanhasselt for the awesome feedback! :+1: :1st_place_medal: