Just replaced picroft with raspovos, first impressions

Hi there,
running fresh installation of raspovos headless for RPI3+

the good:

  • it recognized my webcam and speaker automatically without any fiddling like on picroft

the bad

  • it seems slower then picroft, takes him about 5-6 seconds to speak when I run ovos-speak bla and about 8-9 seconds to execute the command or respond to a question like how are you. TBH was expecting it to be maybe even faster then picroft, as I they haven’t updated picroft for a while until they killed it…

here is my mycroft.conf

    "tts": {
        "ovos-tts-plugin-server": {
            "voice": "ryan-high"
        }
    }
}

other observations and questions:

  • it seems systemctl --user restart ovos.service does not work, it was dead until I executed ovos-core command. ovos-message bus was autostarted fine I guess…
    so I ended up adding ovos-core to rc.local. EDIT: it seems exited status can be ignored, it works without executing ovos-core, I guess it did not complete booting up when I was checking if its alive…
● ovos.service - OVOS A.I. Software stack.
     Loaded: loaded (/etc/xdg/systemd/user/ovos.service; enabled; preset: enabled)
     Active: active (exited) since Thu 2024-03-28 10:23:56 MDT; 1h 16min ago
    Process: 977 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 977 (code=exited, status=0/SUCCESS)
        CPU: 6ms

Mar 28 10:23:56 mycroft systemd[958]: Starting ovos.service - OVOS A.I. Software stack....
Mar 28 10:23:56 mycroft systemd[958]: Finished ovos.service - OVOS A.I. Software stack..
  • I miss mycroft-cli-client clone, where you could see in realtime what is going on, what it is doing when I speak to it, etc…to better understand what is taking so long
  • ovos-logs does not have a tail option, to be able to at least follow in realtime what is going on…
  • could not find the path of the logs in documentation so I can tail them manually
  • selection of female english voices is very poor, on mycroft I was using female google voice, and here its only 3 female voices, mostly low quality…
        'en-gb': ['alan-low', 'alba-medium', 'southern_english_female-low'],
        'en-us': ['amy-low',
                  'danny-low',
                  'kathleen-low',
                  'lessac-low',
                  'lessac-medium',
                  'libritts-high',
                  'ryan-high',
                  'ryan-low',
                  'ryan-medium',
                  'lessac'],
  • how do you update it? microft was updating itself automatically when you run cli-client, easy peasy :slight_smile: Is there any update script?

is maybe Neon more similar to mycroft experience? But available only for Mark devices for now…I didnt find any rpi images…

meanwhile, any advice how to optimize raspovos experience will be welcomed :slight_smile:

ovos should be faster than picroft, but it will mainly depend on your plugin choice

picroft used a google proxy for STT, OVOS uses FasterWhisper public servers. While more private we can’t really compete with google for performance.

That said, you can change STT and OVOS has way more options than mycroft! including the equivalent

Here is a non-exhaustive list of STT plugins

https://openvoiceos.github.io/ovos-technical-manual/stt_plugins/#list-of-stt-plugins

as above, OVOS supports all options mycroft did and more!

the female voice you are looking for

Here is a non-exhaustive list of TTS plugins

https://openvoiceos.github.io/ovos-technical-manual/tts_plugins/#list-of-tts-plugins

these 2 plugin choices will be the main factor in response speed, by default we choose the most private option, users can sacrifice their privacy for speed if they want and trust the 3rd party STT/TTS providers

interesting, i had no idea about this.
But how come then picroft could not understand my wife and children, only me?
when i duckduckgoed the explanation was, mycroft was developed mostly by white caucasian males, who donated voices and trained him…
Shouldn’t he have had google superpowers if he was using its STT?

1 Like

That seems to be info about the wake word, “hey Mycroft” model was trained by Mycroft in house and had those limitations, but the speech after that was sent to Google

A new model was trained for the mk2 (and used in OVOS) that should work better for child and female voices, since they had more data by that time

1 Like

ah right, that makes sense!
thanks for all the clarifications! I was 100% sure ovos will be better/faster/leaner as picroft was abandonware, hence my initial shock by speed :slight_smile:

can you tell me where are ovos logs, and is there any auomated update script or procedure?

EDIT: to answer to myself, I found a configured alias ologs that does exactly what I want, tails the ovos log (which is in ramdisk, smart, so it doesnt wear out sd card)

1 Like

From ovos log:
STT request to https://stt.smartgic.io/chromium failed

Tried to use this server that supposedly runs this, status https://stt.smartgic.io/chromium/status says its ok but it doesnt work for me…

edit: made it work by using https://stt.smartgic.io/chromium/stt
yes, its faster then default, with the price of privacy…

In ovos-tools, there are 7 .service files and (start|stop|restart}ovos in the usr/local/sbin directory, if that might help.

startovos calls systemctl and also mounts the log file directory as a tmpfs.

$ ls -latr ovos*service usr/local/sbin/*ovos
-rw-rw-r-- 1 pi pi   503 Mar 27 10:18 ovos-audio.service
-rw-rw-r-- 1 pi pi   464 Mar 27 10:18 ovos-phal.service
-rw-rw-r-- 1 pi pi   489 Mar 27 10:18 ovos-phal-admin.service
-rw-rw-r-- 1 pi pi   416 Mar 27 10:18 ovos-messagebus.service
-rw-rw-r-- 1 pi pi   485 Mar 27 10:18 ovos-media.service
-rw-rw-r-- 1 pi pi   519 Mar 27 10:18 ovos-listener.service
-rw-rw-r-- 1 pi pi   509 Mar 27 10:18 ovos-core.service
-rwxrwxr-x 1 pi pi   139 Mar 27 10:18 usr/local/sbin/restartovos
-rwxrwxr-x 1 pi pi   521 Mar 27 10:18 usr/local/sbin/stopovos
-rwxrwxr-x 1 pi pi  2884 Mar 27 10:18 usr/local/sbin/startovos

GitHub - mike99mac/ovos-tools: Scripts and more to work with the Open Voice Operating System

1 Like

Thank you for testing the raspOVOS image. I am glad that the initial setup went well. As far as speed? Hmmmm, I did not think that it took quite that long to respond on a rpi3, but I will boot another up and give it a go. I would say that there is quite a bit more going on with OVOS than there was with PiCroft. I don’t think that a pi3 has quite the power to be extremely fast. Just upgrading to a pi4 makes a world of difference. Even when running a GUI it is fast.

I will look into some optimizations for the image to see if I can speed things up.

Logs are located in /ramdisk/mycroft but there are links at ~/.local/state/mycroft/ as that is the standard that OVOS uses.

As far as the services not starting, that is strange. It usually means that there is an error in a config file somewhere.

I hope we can help make your device what you want it to be.

1 Like

Thanks for all your work with ovos!

Meanwhile I had discovered that you guys preconfigured alias “ologs” that tails the log which is perfect for me!

The services also run fine, i guess i was trying to speak to it while it had not finished starting. I guess that skill for saying “please wait before trying to speak to me” would make sense for inpatient people like me, maybe I’ll install it.

And about the speed, with google stt its the same as picroft…yeah I agree with you rpi3 is what it is…

1 Like

Nice!! Im glad it is working well. My pi3 takes about 4 minutes to fully load all of the skills

By using this proxy, Google doesn’t directly get information from your IP address, Google will only see requests coming from the server IP which will not make much sense for profiling.

If you want to get faster response, you can bypass the proxy and directly speaks to the Google Translate servers but that will reduce your privacy.

  "stt": {
    "module": "ovos-stt-plugin-chromium"
  }

It worth some testing to wrap your head about STT performances.

2 Likes

I would recommend to use ryan-low instead of ryan-high in order to speed-up the TTS answer (gain almost a full second in my case).

1 Like

id argue the benefits are limited, google gets the audio, its more than enough for them to translate, tag speakers, cross reference with all their other data… the ip is the least concerning thing to hide in this case IMHO

i dont think a google proxy gives any meaningful privacy, if anything it let’s google know that you are a OVOS user as extra info

But they might have more trouble to link voice with someone.