Jarvis style for Lucida - basics questions

23 views
Skip to first unread message

Pierre-Emmanuel Laporte

unread,
Apr 14, 2019, 6:48:57 AM4/14/19
to Lucida Users
Hi there,

Yes, not a really big news but i would like to use Lucida as an interface betwen my house and my family.

What i get:
- a house well equiped with knx domotic system: lots of inputs waiting to be interpreted.
- a powerfull dedicated private server with ubuntu headless system (wich could have internet connection for initial download)

My goal
- deploy lucida solution
- use my own database server
- use it

For that i need to understand:
- how lucida works to convert speech in text with Sphinx
- how to manage text response
- how to generate vocal answer
- how to connect response with action

First step:
- after deploying, in my "lab", i would like to ask "Switch on light" and system switch on a test light.

Du the reason that i will use the system for my private house, for security i prefer to have a dedicated system not open to any external network.

Thanks for helping me in this way, all advice are welcome :)

Pierre

Jeremy A Russell

unread,
May 25, 2019, 9:27:29 AM5/25/19
to Lucida Users
Good morning Pierre,

I've been working with Lucida for awhile now and might be able to help you out. I'm certainly willing to give it a shot :)


On Sunday, April 14, 2019 at 3:48:57 AM UTC-7, Pierre-Emmanuel Laporte wrote:
Hi there,

Yes, not a really big news but i would like to use Lucida as an interface betwen my house and my family.

What i get:
- a house well equiped with knx domotic system: lots of inputs waiting to be interpreted.
- a powerfull dedicated private server with ubuntu headless system (wich could have internet connection for initial download)


With a little bit of tweaking, Lucida can do this.

As far as the knx domotic system, there is nothing built into Lucida to handle that system, so you will need to implement your own functionality to use the sensors.

The dedicated server is good, that said, I haven't updated my fork of Lucida to handle Ubuntu 18 yet, it's still on 14, two main releases ago. So that will need to be updated as well. (the good news there is I should be doing that soon on my end and will be committing those changes once that's done)
 
My goal
- deploy lucida solution
- use my own database server
- use it


This should be easy enough by itself by following the existing readme.md found in my fork https://github.com/JeremyARussell/Lucida (mine is being updated more frequently as the Clinc/ClarityLabs people stopped updating and supporting Lucida. It does require a lot of manually running compilation scripts though, though I also might take this chance to create an easy installer script that installs what is needed and tracks it's progress. Ultimately I want to create an installer but that will take a while working on it by myself. Lucida currently uses MongoDB, but that's free anyways so that shouldn't be a problem.
 
For that i need to understand:
- how lucida works to convert speech in text with Sphinx
- how to manage text response
- how to generate vocal answer
- how to connect response with action


It uses the Kaldi gstreamer server to do automated speech recognition (not Sphinx anymore, it used Sphinx back in the day if I remember right) and I'm still figuring out how to add to the language model to increase accuracy, that's my main thing I'm doing now, as well as make it easier to add a new service and start using it. Which actually leads to my next answer.
 
First step:
- after deploying, in my "lab", i would like to ask "Switch on light" and system switch on a test light.


This should be possible. Basically you would need to add a new command the "Switch on X" command, and a new service that handles switching things on and off. The process on exactly how to do that is spelled out in the root readme located on the repo I shared, but here's a more specific link to the right spot https://github.com/JeremyARussell/Lucida#design-notes----how-to-add-your-own-service-into-lucida

Now keep in mind that in your example I think you're picturing the command to "switch on light" to automatically target you're lab light.. This actually would inolve another layer that isn't already in Lucida, which is that of "context awareness" which means that because the system heard you use a particular set of mics, etc. to input your voice, it also uses that information to guess other parts of what you need. That will need to be implemented from scratch, so for now you will want to create the system to where you label and list the name of the light's or whatever device you want to switch on. So that it would work more like "switch on the lab light" or something like that.
 
Du the reason that i will use the system for my private house, for security i prefer to have a dedicated system not open to any external network.


I'm with you 100% on that, I'm a big privacy and security advocate, which is why I've been using Lucida as my base for all the stuff I've been working on.
 
Thanks for helping me in this way, all advice are welcome :)


I hope what I added helps. Keep an eye on my fork and let me know if you have any questions. Do you program yourself as well? If so I'd be more than happy to have someone to join me in the work :D, and I'd be willing to refocus on mutually beneficial features in exchange for the assistance. 
 
Pierre

Andy Konwinski

unread,
May 29, 2019, 7:18:49 PM5/29/19
to Lucida Users


On Saturday, May 25, 2019 at 6:27:29 AM UTC-7, Jeremy A Russell wrote:
Good morning Pierre,

I've been working with Lucida for awhile now and might be able to help you out. I'm certainly willing to give it a shot :)


On Sunday, April 14, 2019 at 3:48:57 AM UTC-7, Pierre-Emmanuel Laporte wrote:
Hi there,

Yes, not a really big news but i would like to use Lucida as an interface betwen my house and my family.

What i get:
- a house well equiped with knx domotic system: lots of inputs waiting to be interpreted.
- a powerfull dedicated private server with ubuntu headless system (wich could have internet connection for initial download)


With a little bit of tweaking, Lucida can do this.

As far as the knx domotic system, there is nothing built into Lucida to handle that system, so you will need to implement your own functionality to use the sensors.

The dedicated server is good, that said, I haven't updated my fork of Lucida to handle Ubuntu 18 yet, it's still on 14, two main releases ago. So that will need to be updated as well. (the good news there is I should be doing that soon on my end and will be committing those changes once that's done)
 
My goal
- deploy lucida solution
- use my own database server
- use it


This should be easy enough by itself by following the existing readme.md found in my fork https://github.com/JeremyARussell/Lucida (mine is being updated more frequently as the Clinc/ClarityLabs people stopped updating and supporting Lucida. It does require a lot of manually running compilation scripts though, though I also might take this chance to create an easy installer script that installs what is needed and tracks it's progress. Ultimately I want to create an installer but that will take a while working on it by myself.

Isn't using the already built-in support for docker (i.e. `make docker`) a good solution for this? I've been trying to get that working yesterday and today but hitting some issues. I'm going to post a separate email about that.

Jeremy A Russell

unread,
Jun 21, 2019, 1:34:48 PM6/21/19
to Lucida Users
Hi Andy,

To answer your docker question, yes and no, depending on what you're trying to do. In my case I am actively developing the project some more and fixing things, adding things, updating things, etc. So having it hosted on a server and actually compiled in a stable way works better for me than trying to develop with docker at the moment.

That said. I will check out your other message since I definitely do want to get the docker working again. Once the initial effort to getting it working again is passed having a good docker implementation setup is a huge help for automated testing, CI, etc. and is a good way to achieve scalability (like by spinning up a couple more learning services to handle a bigger load for instance)

Another thing for me to consider is docker can get pretty bandwidth heavy, and I have 50GB monthly satellite internet so I have to be conservative with my bandwidth usage :D

Let me know if you still have any questions.


On Sunday, April 14, 2019 at 3:48:57 AM UTC-7, Pierre-Emmanuel Laporte wrote:
Reply all
Reply to author
Forward
0 new messages