Service Rhasspy

Hello everyone!

I am currently working on the development and more specifically the integration of Rhasspy on Gladys.
(Allows voice recognition / phrase recognition / speaking)

Context

To do this, some modifications need to be made in Gladys. Currently, to talk with Gladys, it is necessary to go through the Discussion box, you talk with Gladys and Gladys responds to the user via a websocket.

So the Rhasspy service will run a Docker, retrieve messages via websocket and send them to Gladys. The problem is that to send messages to Gladys you have to be a user. Except that the answer must return to the Rhasspy service.

Functional Specification

As a user, I want to:

  • be able to talk to Gladys and get a verbal response.
  • Talk to Gladys securely and keep all data local
  • Have a history of all requests made

Creation of Application User

While keeping the operation of Gladys discussion, we can consider creating an application user linked to the Rhasspy service. This user will be able to communicate with Gladys and therefore receive Gladys’ responses without this appearing in a discussion box. (Indeed, associating a voice and a user is very difficult to envisage at the moment).

The application user will be a « hidden » user who will not have the same rights as a standard user. It will communicate only with the system in order to perform actions.

Service Operation

The system will transparently install a container with all the configurations necessary for the proper functioning of the recognition / speech services.

An application user will be created by the service and assigned to the service.

The service will be connected to Rhasspy via websocket. When a message is received, it is sent to Gladys, Gladys interprets this message and sends a response. This response will be transmitted to Rhasspy so that it is executed orally.

Feedback?

I would like to have your opinions on the little text I just wrote above. Do you have other ideas for operation? Thanks :slight_smile:

I’m not very enthusiastic about the application user, it’s a « hack » and it’s not really the philosophy of v4 :slight_smile:

I don’t know how Rhasppy works, but I’m sure there’s a way to communicate with Gladys other than with a fake user.

MQTT? HTTP?

In my opinion, it would probably be easier to set up.

The issue isn’t Rhasspy. The Rhasspy service (coded on Gladys) easily receives information from the Rhasspy container. The problem is Gladys core. Basically, I need to call the function you developed to talk with Gladys. But this function requires a user.

So either we don’t change anything in this function, or we create something separate that allows communication with Gladys without having a user.

Here the function is restrictive for my use case. I would rather have a function where I send the message, and Gladys responds with the return message.

Nothing prevents creating another function, that’s what we were saying in the other topic :slight_smile:

The usage is completely different, here we’re talking about an « anonymous » voice command, the other function is for authenticated text calls.

Oh yes, that works for me too! :smiley:

However, before you start developing, I recommend creating a functional and technical specification—it’s really the best way to outline what you want before coding.

Example of a spec: Multi-utilisateurs - #6 par pierre-gilles

Personally, I use https://whimsical.com for mockups; I find it practical. The idea isn’t to create a pixel-perfect design but rather to see together what will be added to the UI so that we have an idea of what we’re doing before diving into development.

The advantage of Whimsical is that it’s simple and doesn’t push you to create a bloated UI.

For the technical specification, the goal is to explain technically what we’re going to do before doing it (database modeling, API routes, etc.).

Thanks for the mockup tip, I didn’t know what to use.

So currently, I’m doing a POC to get ideas of things to plan. But yes, I’m not spending too much time making something clean for the moment and on the side, I’m working on the spec :slight_smile:

For this kind of particular development, I prefer to really understand how the container works :slight_smile:

I’m trying, but honestly, I’m more than bad, I’m not really a designer. Are there people who know how to do UX? (design a web page roughly so I can get inspired)? :smiley:

What do you need?

In fact, I have in mind what I need to develop on the back end. However, I’m very, very bad at UI/UX. And the mockups I’ve made are just ugly :smiley:

So if someone, not necessarily a developer, has time and enjoys doing this, it would be super cool :smiley:

In short, a mockup of the Rhasspy service view. I see with him what the service can do so that he can come up with something