How would you make it self-hosted without making it suck? High quality voice recognition in a small box doesn't seem to be a thing that's even remotely possible today, let alone the query processing and knowledge database that comes with it.
You could build this on a pi with a mic, speakers, some foss stt and tts engines and some basic training data. But it'll suck.
You could build this on a pi with a mic, speakers, some foss stt and tts engines and some basic training data. But it'll suck.