Mycroft languages

One more for Brazilian Portuguese

I too can help with Dutch! Secondary help with German, if needed.

Before starting up language teams, I think it would be useful to know where the I18n and L10n files are hiding, and/or how Mycroft is supposed to be able to speak all the languages.
I’ve looked the docs and the Github Language project, but cannot find any clear information regarding this.
Once the documentation/process for let’s say English is clear, groups will organise themselves.
I’ve found @WLigtenberg for Dutch, I went ahead and translated mycroft/res/text/en-us/ to Dutch.

There are two ways to help, as far as I can see:

  1. Simple translation in the core and in skills
  2. Coding Speech To Text/Text To Speech.

I can currently only help with the first part, and others probably also. I just need to know where all the bits can be found to translate.

A “to be translated to…” mechanism might also help.
I just came across the mycroft-skills repository, but to add a language to any skill, i seem to go into all the skills and fork/clone them to be able to locally work on the dialog files. That could be easier, perhaps?

The word “default” means “fallback”… So in creating a fallback for the default, you’ll create two defaults… :wink:
The preferred language can have a fallback, which would be the default. I guess since this is an Anglophone product from the start, the default (as with so many products) will always be English…

I’d love to help out with the two Indian languages I speak well. :smile:

@Wildernerd Fantastic - out of curiosity which languages are they? Having someone who could speak Hindi / Devanagari would be very helpful. We’re still building the documentation for Language support and hope to make it easier for people to contribute in other languages very soon.

1 Like

I can do Hindi well, and Marathi to some extent.

2 Likes

प्रशंसा :slight_smile: I am always so embarrassed to speak only one language well, and another poorly.

We have some initial information around other languages at:

We will let you know as soon as we have better documentation around languages.

Kind regards,
Kathy

2 Likes

Hi! I would like to help with language support. I’m Russian and Ukrainian native speaker. Additionally, I just graduated with Computer Science degree, I know C++ and Python. Also, I have advanced Linux administration skills.
#RussianMycroftTeam
#UkrainianMycroftTeam

Spesibo @lesh!

Supporting another language is a fair bit of work, but we can certainly provide you with some guidance.

The first place to start is reading through the languages overview here:

The Portuguese documentation is really well written and you can find that here;

You can also find other people interested in language translation on our languages channel at;
https://chat.mycroft.ai/community/channels/languages

Kind regards,
Kathy

Language should be a priority.

As I’m very excited by Mycroft project, I can’t help feeling like a second class citizen here because I don’t speak english natively, and I feel uncomfortable speaking at mycroft in english, for sure there are plenty of people out there discarding the entire project because the language.

It seems everyone seems focused in a plenty of other (very important) projects… but I repeat, I think is an error not to improve language support on Mycroft. It should be the next Big Feature, not adding more (S)TT(S) engines (like Mozilla’s DeepSpeech, just for english speakers).

I have the Mark I since almost a year and in this time I spent most of the time trying to make it understand my language, but disperse and imprecise documentation made me waste a lot of hours making me feel frustratred, and the few times I got mycroft listen and speak my language, then the upgrades removed all the progress I did (my fault for not to upload somewhere).

I would really love to see some push from the developers’ side in this way before Mark II reaches the market, I’m eager to contribute on Mycroft, but as long it is a english-only AI engine, it will stop me, we all need a democratic AI.

I’m sorry if I sound harsh or just complaining (not intended), but the documentation @KathyReid points isn’t experimental, it is simply useless (it finish in a point it says “it requires manual modification to the source code” and links to a pull-request from a year ago, unclosed and with no code modification at all to try out), so, please devs, make an effort to make it possible… I don’t ask to select my language from a dropdown (yet), but a proper step-by-step guide which doesn’t finish in a black hole because the code isn’t ready to localization. I’m a IT system guy, not a developer so I wouldn’t even know how to start to develop by myself this, but once started I could contribute more actively in other fields.

So sad to see that my post is still in the news :frowning:
To be frank that why I left this project, good luck to every one who keep going.

Sorry for my english, I m still french :wink:

I agree, it should be the next big feature.

I get that the company is focussing on new features like blockchain, better voices, more skills etc, but it’s also true that if you are making a product that is targetting a worldwide audience, it should be able to speak the language of the owner.

Messing with the sourcecode to change the language will keep you busy, since updates will require you to keep changing it almost weekly. I thought about that, but quickly dismissed the idea,

I am very interested what language models will be provided for the new mimic2 voice.

Hi @malevolent, thanks for your feedback.

Mycroft AI is a small startup company, with a handful of full time developers. Unfortunately we cannot make every feature request a priority. There are dozens of languages in the world - which ones would we choose first? Or second?

Instead, what we can do is make the tools and information available to the Mycroft Community to help build out language support, and there are significant efforts under way within our community to improve language support - we even have dedicated languages channels in our Chat platform;

I agree, the documentation is not great - which is why it’s marked as experimental - so that it’s clear that there are likely to be problems with it. Is there anything specific in the Documentation that I can change? Keep in mind that our documentation is also open source, and we welcome both Issues and PRs.

Do you think I should remove the languages documentation entirely? This would be easy to do and might be better than having confusing documentation available.

Trying to be constructive here, is language support something we should consider putting a Bounty on, as part of our BountySource program?

https://www.bountysource.com/teams/mycroft_ai

In summary we don’t have the resources to make language support a priority right now - and instead this effort needs to be driven by the Mycroft Community. We can provide guidance and assistance, but we cannot drive this effort right now.

Kind regards,
Kathy

Hey @KathyReid, thanks for the answer.

What I say is to prepare the code to be localized. Right now english is hardcoded in many places with nice TODO comments for localization. If I do any change, it will be lost on the next mycroft update (lately it upgrades almost every day). I’m not speaking about config files but actual mycroft core python files.

Documentation is outdated/wrong and leads to confusion. You can left it for the braves, but I wouldn’t point to anyone there because they will waste their time trying it for nothing. It will be better to point to the mattermost channel instead. I appreciate the effort to unite all the disperse documentation, please don’t get me wrong.

If Mycroft Core devs prepare the code to be localized, using which ever method they think the best, and getting the core skills ready only for english (but already enabled for l10n) it will be a huge step forward for lesser contributors, which can translate the skills or modify the 3rd party ones to get them localized as well, and most important, they won’t be lost on upgrades. Doing this, I think, is not so resource-consuming, and each language will improve as fast as their own speakers can translate or develop.

What do you think?

2 Likes

@malevolent that’s excellent feedback, thank you for such a considered response.

What are the key things we need to do in the code for i18n support? Should we track them in an Issue?

I need to find time to see all the stoppers I had find in the past. Please bare in mind I’m just a linux guy, not a developer, so I’m sure I will be wrong in many cases, but I can try to configure my Mark I again, see what I saw english-hardcoded and write down where I found it, here or on an Issue on github. The good thing is that l10n is not a single language, so many contributors from many languages can take a look at the code to see where can they found some issues.

On the other hand, as far as I can remember, some core modules and core skills, developed by Mycroft core devs, are already commented by their developers, that’s why I think Mycroft core devs already have an idea how to tackle this and they are aware of many of these issues, perhaps can the start the issue with the already know.

The important things to do in the code for i18n support, if you ask me, would be to replace all the hardcoded parts with variables, create a .dict (or so) file where people can easy translate all the english words, sentences, etc to their languages, and create a specification for the skills creators to make their skills i18n-ready (many of them . Doing this just for english, would give wings to other language (non-developers) contributors just in translating all the skills.

1 Like

Just to point here what I did some months ago, and now I’m re-trying to do again

I’m going to dig further to see if I can write a comprehensive guide for newcomers and detect some possible changes/improvements to the core code.

The first thing I’ve just discover is how to avoid the loss of all changes by copying the /etc/mycroft/mycroft.conf into /home/mycroft/.mycroft/mycroft.conf, it can seem trivial, but on Mark I you can only ssh with the “pi” user, so all the documentation referring ~/.mycroft/mycroft.conf is completely confussing.
Then I will try to explain, as @Jarbas_Ai has explained several times, how to translate the skills, and will try to document as well how to push the translated skill/addon to the original github creator. I guess if each skill grows as per language, mycroft devs should think how to “filter” by language in order to not download all languages when a user should use just one or two.
Finally, I’ll try to hunt those hardcoded english sentences on the core code, if any (many months have passed since last time I see the code and perhaps there is a l10n solution - fallback skill?-).

3 Likes

I am into coding…mostly java…got to know about this project from openhab…It will be interesting to see if Hindi could be incorporated…just setting up the environment and trying out various things…I can contribute to some extent.