It’d be nice if there was a version of Mycroft that could be run from a server but have the front-end speaker and mic system be on another device.
A useful example is how Amazon structures their Alexa offerings:
- Alexa Voice Service (https://developer.amazon.com/alexa-voice-service) - API’s for implementing a client (e.g. a smart speaker) that interacts with an Alexa user’s account and can access all the custom skills
- Alexa Custom Skills (https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/getting-started-guide) - hosted custom skills that can be installed and linked to a user’s Alexa account
For this to work in Mycroft (or in a self-hosted Mycroft) there’d probably need to be an account management layer for identifying users when serving voice/skill requests for multiple users.
Also the Mycroft skill intent parsing may need to be split up into 2 pieces:
- Skill interface - e.g. the utterances and skill schema definition (as this will be run by a centralized Mycroft server)
- Custom Skill - this is a hosted skill service that can handle requests for multiple users
I think if Mycroft could be setup to work more like the Alexa platform (or provide it as an option) it would be a lot easier for user’s to access custom skills as they could simply “Add” the skill in a Mycroft web Portal (or by voice) and they could use the hosted version of that skill.