Build an open future with us.

Invest in Mycroft and become a community partner.

Mycroft on FreeBSD


#21
$ locale
LANG=es_ES.UTF-8
LC_CTYPE="es_ES.UTF-8"
LC_COLLATE="es_ES.UTF-8"
LC_TIME="es_ES.UTF-8"
LC_NUMERIC="es_ES.UTF-8"
LC_MONETARY="es_ES.UTF-8"
LC_MESSAGES="es_ES.UTF-8"
LC_ALL=

$ env | grep LANGUAGE
$

#22

With this small hack the cli comes up:

$ diff /usr/home/guru/Mycroft-test/mycroft-core/mycroft/client/text/text_client.p*
1078,1079c1078
<                 # c = scr.get_wch()  # unicode char or int for special keys
<                 c = 27
---
>                 c = scr.get_wch()  # unicode char or int for special keys

Mycroft ppa for Ubuntu
#23

Can you try to set the LC_ALL by running the command;

export LC_ALL=en_US.UTF-8

You can try “es_ES.UTF-8” as well, but I believe Mycroft needs en_US. Anyway, try the en first and you could use the ES later if it works.


#24

The curses interface of the LC_ALL=en_US.UTF-8 cli looks like this:

but at the prompt in the bottom line no input is accepted visible, I tried too :help Ctrl-j, nothing happens, only Ctrl-c terminates the proc.


#25

Not visible as in; falls of the screen or as in; it does not take any input whatsoever


#26

The screen does not show any reaction on any keypress I tried.

I found log files below /var/… There is some problem with audio (pymplayer not found)


#27

You can ignore the mplayer error.

But can you type a command blind and insert it via Enter.

Just type; “weather” followed by an enter.

Does mycroft tell you the weather or nothing at all?


#28

I think I have to make an account first and pair the device, what I will do now.


#29

I created an accout and paired my laptop using the code printed in the cli, but typing weather+ CR` does not give any visible reaction.


#30

Ok, so at least we tackled one step, however (at least) one more to go…

Anything in any of the logs?


#31

I spent a lot of time yesterday in debugging the input issue in the file mycroft-core/mycroft/client/text/text_client.py There is at line 1080 the central place where the chars get read from STDIN:

       c = scr.get_wch()  # unicode char or int for special keys

This call gives the above mentioned error message about not havin a valied attribute:

AttributeError: '_curses.curses window' object has no attribute 'get_wch'

That’s why I modified this line to

     c = scr.getch()

and with this change the keyboard input does not work corrctly. The line does not contain chars when ENTER is pressed…

I know less to nothing about Python and do not know how to fix this.

Can some Python guru please send me a 5-line example to test the above call to curses c = scr.get_wch() outside of Mycroft?


#32

I think your issues relates to python and/or libncurses not having unicode wchar support. (wchar = wide characters)

the “scr.get_wch()” basically is a function to get the input as wchar. Considering you have an error of it not understanding the term “wch” which relates to WideCharacter this might be your pointer for google.

A quick google session brought me to this old stuff;

https://bugs.python.org/issue4787

Not sure how valid it still is and I am also at the point that it is getting out of my grasp as I am not a FreeBSD guru, but perhaps it gives you the right pointers to continue your search.

I am sorry I could not help you.


#33

The problem is within the Python3.5 application port in FreeBSD: it does not use libcursesw.so.8, but libcurses.so.8. This issue was fixed in June 2017, I’m on March 2017 with my system. I have to update before doing further tests, which I can’t do before the end of the year.

Give me a break.


#34

I found a way to selectively fix my Python3.5 installation to make it use libwcursesw.so:

History ========================================    Log Output Legend ================ Mic Level ===
 >> I don't understand.                             DEBUG output
 mycroft                                            skills.log, other
 >> Please rephrase your request.                   voice.log
 mycroft, say something
 >> something
 mycroft, how are you?
 >> Could be better
Input (':' for command, Ctrl+C to quit) ===========================================================
>


#35

Great! Is it something that can be done through setup.sh such that experimental freebsd support can be added through a PR?


#36

When I do:

History ========================================    Log Output Legend ================ Mic Level ===
 Hey Mycroft, how is the weather in Munich?         DEBUG output
 >> temperature, 34 °F (wind chill: 27 °F),         skills.log, other
    relative humidity, 93% (dew point: 32 °F),      voice.log
    wind speed, 8.1 mph, (29 minutes ago)
 Mycroft, sing a song
 >> I'm a bit nervous about my voice, but here
    goes nothing.

she (mycroft) answers and plays the song as audio. Is the audio coming from a local file? I do not see enough traffic on my wlan0 interface for coming down the audio from Internet… Anyway, what I have to configure or do for:

  1. Give commands/requests by voice
  2. Mycroft answers by voice and not by text

Is Mycroft a she or a he? :slight_smile:


#37

Mycroft is a he, but you can configure a female voice on Mimic (1). The songs are locally stored and played back.


#38

No. I have had to recompile Python3 with a special trick to apply a fix in advance, but it’s fixed anyway in very recent FreeBSD (since June 2017).

In any case, I will provide patches for the Mycroft scripts I have had to change.


#39

And the answers on my question? Locally too?


#40

That depends on the skill. If it has locally sourced responses, sure. If it’s searching wikipedia or something, then would try heading off to the internet.