OK so I have to admit that I am a bit anti-cloud these days. Privacy is a big concern especially in the home and I don’t like sending my voice data to some cloud via “she who must not be named” (Alexa!).
Besides that I need to be able to use a Smarthome server in my Campervan and I don’t always have access to the cloud.
Having looked into it (I am no expert); there seems to be a few options…
The most obvious is Mycroft because it is the most mature open source VA out there but…alas they do send data to Google (even though they say it is anonymous). So, that is off the list.
That leaves a few choices - Rhasspy, Sepia, Jaco-Assistant and Picovoice.
I have taken Jaco-Assistant off the list because although it looks promising - I think that it needs to mature more before I spend time using it in my projects.
Picovoice is a professional offering with a free personal edition and SDK, but as far as I can tell it is limited to 1000 voice transactions per month. I suspect that is more that enough “turn the lights on/off” for anybody but I don’t like being limited - so that is off my list!
Sepia seems promising and has an interesting method to integrate with any Smarthome hub. I like that it interfaces with the Smarthome app and then provides a way to manage the interactions via cards (in the Sepia app). It is a sensible approach but I would prefer to manage the integration within the smarthome solution - still worth checking out if you are interested.
Finally - my preferred solution; Rhasspy. This is a project based on the SNIPS voice assistant that was bought out by Sonos a couple of years ago, and so has a level of maturity already. The development is active and is progressing well. It has the advantage of being MQTT based and provides a wide range of speech models making it highly configurable.
I have seen (but not used) Rhasspy plugins for FHEM and Jeedom, however, because the speech intent data is sent via an MQTT API - it is quite flexible to integrate it via scripts.