Question about the required? account

My understanding, perhaps incorrect, was that MyCroft didn’t have to be tied to anything outside the LAN unless you wanted it to be. That was the whole reason I was interested in the project. But reading this page…

…I get the very strong impression that you must connect to the WAN to use this, which of course (a) breaks it if the WAN is down, and (b) presents a security issue.

If that’s the case, then a further question: does the project provide ALL of the source code in modifiable form so that this can be defeated?

Can someone from MyCroft officially clarify this for me?

Account still required for now, you can view the -core code to see what that does. See also The Mycroft Personal Server - Starting the Conversation

@baconater - Are you an official MyCroft operation representative?

Hi there @fyngyrz, I am Kathy from Mycroft, our Director of Developer Relations.

Essentially, what @baconator said.

At the moment, an account on home.mycroft.ai is required, but we are working towards a self-hosting solution. You can read more about the steps required here;

The current WAN operations are required to;

  • anonymise STT requests - we are currently using a cloud STT provider while we work with Mozilla to try and bring DeepSpeech STT to the local device
  • provide account information - such as name, location etc. This are set in your profile in home.mycroft.ai.
  • reach third party API services - several Skills leverage third party API services

The source code for home.mycroft.ai is currently not available, as it’s not scaled for personal use - it runs on over a dozen hosts in a microservices architecture - our intent with the personal server is to scale this down to be fit for scale for personal use.

Please let me know if you have any other questions.

Thank you for your answer Kathy.

I look forward with great interest to MyCroft breaking the leash to third parties and the WAN. I hope it happens soon.

Some observations / ideas for MyCroft:

anonymise STT requests - we are currently using a cloud STT provider while we work with Mozilla to try and bring DeepSpeech STT to the local device

In this regard, I’d much prefer to type my requests in at a local console (presumably a computer on the LAN) than be required to access a remote STT capability. Just as a suggestion, MyCroft might want to consider a module that 100% stands in for the STT at the keyboard. This would provide a wedge where any LAN-based skill can run without having to go out on the WAN with all its downsides. Perhaps there already is such a thing? If not, surely it would be a minimal project to undertake.

Skills that require WAN access (beyond the STT layer) could (should!) be flagged as such in the marketplace, and MyCroft would then be able to triage such skills based on a user preference for local operations. MyCroft devices should be able to completely disallow access to the WAN as a straightforward matter of user security.

Additionally, small systems that do general STT with low resources have existed for some years now; for instance, my handheld Garmin GPS, purchased around 2012, understands me reasonably well and pulls that off with nothing but a battery which lasts all day while also running the GPS receiver and display. No doubt these solutions are carefully guarded secrets by companies such as Garmin, however, the fact remains that it proves that it does not require a lot of computing power to do reasonable STT. Getting from here to there… that, of course, is the trick. Solutions that require lots of horsepower and a GPU are, to put it gently, suboptimal. Hopefully this will come about sooner rather than later.

provide account information - such as name, location etc.

Clearly, if the system is being run locally, there is no need for “an account” anywhere but at home. So this is a non-issue, other than providing for secure local storage of such information.

reach third party API services - several Skills leverage third party API services

If the WAN is not available, WAN APIs are not available either. There are two reasons the WAN would be unavailable: first, it may be down. Second, it may be disallowed. For instance, I have no interest whatsoever in WAN-based capabilities / requirements. What I am interested in is building open source skills that leverage 100% LAN-resident capabilities. Skills such as controlling local devices, reading local sensors, keeping local databases of shopping, to-do and other lists; that sort of thing.

Those of us who are knowledgable are well aware that data transiting the WAN cannot be guaranteed to be secure; third parties are absolutely unpredictable as to being trustworthy, as any organization may already have, or eventually incorporate, black hats operating sub-rosa or even right out in the open as is already the case at Google and Amazon; and the WAN itself is unreliable - it may simply not be available when the digital assistant is needed. Breaking the dependence on these factors is my #1 priority when it comes to digital assistants.

our intent with the personal server is to scale this down to be fit for scale for personal use.

I hope this project sees the light of day very soon. As I mentioned above, an easy start could be made entirely without STT; it seems there’s very little remaining to do beyond that. I hope MyCroft will seriously consider this.

That’s all for now. Thanks again for the quick response. Good luck with MyCroft!

You can use the CLI now to type, how you access depends which version you run. (start-mycroft.sh cli, mycroft-cli-client).

Indeed there is, the Mycroft CLI provides this ability. Picroft starts the CLI by default, and on Linux you can access it by typing ./start-mycroft.sh debug. On a Mark 1 you can also ssh in and access the CLI.

Mycroft is designed to be modular and can be used with different STT engines, some of which run locally - Kaldi, for example.

Thanks for volunteering! We warmly welcome assistance with every aspect of Mycroft. Ways that you can currently assist with STT include tagging DeepSpeech.

Thanks for your suggestions about where Mycroft’s roadmap should go. Your suggestion about identifying which Skills require WAN access is a great one. We could use the tags that each Skill has to achieve that. Is that something you might want to help us out with? Identify which Skills have WAN access and raise PRs on the Skills to change their tags?

At the moment our focus is on finalizing and shipping the Mark 2 hardware. However the Community is of course very welcome to work on the Personal Server at any time.

Let me know if you have any other questions.

Using tags could be a way to go, but I dot think it is the the best way. I would prefear a specifik section in README.md about that part. Describing which 3th party is used, and if that requeres userlogin.

I am making the great big list of skills https://andlo.github.io/mycroft-skills-list/, and did look into how to get that information, but didnt find a relaiarbly way to do it yet. But I think it is important to flag skills that uses 3th party services.

Mycroft CLI

Good to know. So STT need not be present at all.

Mycroft is designed to be modular and can be used with different STT engines, some of which run locally - Kaldi, for example.

Good. Then there’s no need for a home.mycroft.ai account WRT STT unless one is actually using a non-local engine, or even a speech engine at all, considering the present availability of the CLI interface.

Thanks for volunteering!

Yes, very funny. :slight_smile: I did not volunteer. It’s not my project. Yet. But I would be happy to put my shoulder to the wheel here as soon as the project doesn’t require the LAN it runs within to be hooked to the WAN in any way.

Is that something you might want to help us out with? Identify which Skills have WAN access and raise PRs on the Skills to change their tags?

No; by far the best use of my time is the creation, sharing and documentation of local skills that interact with local hardware and data. I’m a hardware and software developer of some 40 years experience, with numerous successful projects and companies to my credit. I would be delighted to lend my core competencies to MyCroft – just as soon as it can stand by itself. I am not alone in this either at the developer level or the user level. The central server dependency has come up as a major issue on both slashdot.org and soylentnews.org, both of which are significant foci for technical people interested in digital assistants.

However the Community is of course very welcome to work on the Personal Server at any time.

Are they? In your previous post, you said…

The source code for home.mycroft.ai is currently not available, as it’s not scaled for personal use - it runs on over a dozen hosts in a microservices architecture - our intent with the personal server is to scale this down to be fit for scale for personal use.

…which at least on its face implies that some level of roadblock may exist. Is the present closed-source home.mycroft.ai API fully documented such that a personal server could be written to that specification?

So far in this discussion, it seems that:

  • STT is not required to use mycroft (because CLI is available), and can be local anyway;
  • Name and location could be local rather than in the home.mycroft.ai profile;
  • 3d party API/WAN services can be blocked by any firewall that can reject any non-LAN access.

So it appears that the client itself should be just at the cusp of being able to stand alone, and there is no remaining reason for the requirement for a mycroft.home.ai account at all – going by the list you provided:

The current WAN operations are required to;

  • anonymise[sic] STT requests - we are currently using a cloud STT provider while we work with Mozilla to try and bring DeepSpeech STT to the local device
  • provide account information - such as name, location etc. This are set in your profile in home.mycroft.ai.
  • reach third party API services - several Skills leverage third party API services

Thank you again for your time and effort.

you could look at this fine project

Thank you; I’ve starred it on GitHub.

just updated that repo, neatly packaged now, available on pip, some bugs fixed, now works in python3, added examples folder and improved readme

if only some frontend developer volunteered to give this some steam :roll_eyes:

3 Likes

Thanks to all above, just started an install of Pycroft, with a (partially working) Adafruit Voice Bonnet. I’m testing some of this as part of a UK university project involving older people. As both a rabid open source person, a privacy, and security person I really don’t want external APIs.

My ‘customers’ will probably only want local indiscretion and won’t understand when the ‘server is down’.

Whisper has just been open sourced too, probably an extra, high quality STT.
Long story short, I’ll see what I can add to this, even if just a little.