I’m currently writing my bachelor thesis about digital voice assistants. I’m also taking a deeper look into mycroft (cause I’m into privacy and really like your idea of being an open source community project)
However I have some questions left I can’t answer myself, so I thought I’m going to ask them here:
What function does mycroft pass on hardware and which one in cloud?
As far as I understood from an article of one mycroft employee (https://opensource.com/article/19/2/mycroft-voice-assistant) intent parsing, skills, and text-to-speech (TTS) are done locally on the device However in the same article it’s written that after the wake word detection, the command is recorded and sent to the cloud for STT.
The transcribed text file is sent back to the device.
Then NLP, skill handling and TTS are carried out.
So does summed up meaning the following?: ASR and Wake Word Spotting as well as recording the commands of the user are done locally and offline.
Then STT is done in the cloud by using Mycroft Home which uses for ex. Mozilla Deep Speech or Google STT followed by sending the Text back to the device, where intend parsing = NLP (meaning NLU and NLG) is done.
The result of NLG is emitted using TTS and the intent of the user command (for ex. starting a skill or doing some smart home automation using the Home API once again?) is executed
If I’m right the only thing done in cloud is STT.
However I saw the personal backend (https://github.com/MycroftAI/personal-backend) as well as the goal of your personal server (cant link that cause i’m only allowed to use 2 reflinks -.-).
Does this result in being the same? And does its goal is to get offline TTS in an own server which means a user would be able to use mycroft completely offline? If that’s the point I’ll get myself a pie and will start translating my skill from alexa to mycroft
Also when you say skill Handling is done on device does this mean that every skill activated is downloaded to be executed offline or is it just the handling meaning to figure out what skill to adress and then calling the skill in the cloud?
Also I don’t get the function of Mycroft Home. Is it like SW that knows which APIs to address depending on the selection the user did in the config (meaning its like an online account linked config)? So for executing a skill, or calling the selected STT ?
Sorry for these (obviously stupid) questions but the more I read the more I get confused.
Also i just used the contact form to ask this but i just found this forum and think asking this here would be better