Read the statement by Michael Teeuw here.
MM and Kalliope: make Kalliope speaking
-
Hello everyone
Sorry for my english.
I hope my question is not already answered in another postI am working on module and interactions between Kalliope and MagicMirror.
The module receives the order and takes it into account.Now, I would like to force Kalliope to say someting.
For example:
- I say : “Kalliope … Display the calendar for John”
- Kalliope send a notification to modules
- My module catches this notification and display the calendar for John
- My module forces Kalliope to say “The calendera for John is displayed”
The step 1, 2 a,d 3 are OK
But I do not know if it is possible to do the step 4.Currently I display only the text.
Thank you for your time and your help.
Regards
Nicolas
-
:::
Spoiler Text
:::
Hello
So my solution.
:::
Kalliope Side :
:::
//-- settings.yml file # --------------------------- # Rest API # --------------------------- rest_api: active: True port: 5000 password_protected: False login: admin password: secret allowed_cors_origin: "*"
active:True allows using the Rest API
password_protected: False allows anonymous connections
allowed_cors_origin: allows connections from other sites. This option is mandatory because the MM site is localhost:8080 and kalliope 127.0.0.1:5000Concerning the brain.yml file
- name: "repeat" signals: - order: "repeat after me {{sentence}}" neurons: - say: message: "{{sentence}}"
This synapse allows Kalliope repeat a sentence.
:::
Magic Mirror side :
:::
The following lines could be inserted in a module file
//-- Create the Request object. const Http = new XMLHttpRequest(); //-- Url to call fo our synapse. const url = 'http://localhost:5000/synapses/start/id/repeat'; //-- Build our data to send as parameters of our request. var sent = 'This is the text I want Kalliope repeat'; //-- You can modify it var data = {"parameters" : {'sentence':sent}}; var dataJson = JSON.stringify(data); //-- Launch the request. Http.open("POST",url); Http.setRequestHeader("Content-type","application/json"); Http.send(dataJson);
I hope to be clear :)
I mark the post as Solved.Thank you a lot for your time and ideas.
Regards
Nicolas
-
@npx78 maybe look at the MMM-TTS module (tts - Text To Speech) on github
-
@sdetweil Thank you for your answer.
In a perfect world, I would like to have the Kalliope voice :smiling_face_with_open_mouth_smiling_eyes:
Is it possible with MMM-TTS module ?Regards
Nicolas
-
@npx78 i do not know
-
Consider MMM-GoogleTTS also.
-
@sean oops… didn’t see that one!
-
@NPX78 MMM-TTS is an offline text to speech, where you can choose a few different voices, but I assume the voice of the Google module sounds better, but is online.
Here on the forum was once a member of the Kalliope team, you can reach out to him or on the kalliope project itself, if it needs to be that voice.
-
@NPX78
After reading your question again, I have a little confusing.
As far as I know, Kalliope has its own TTS feature using pico2wave. And there be more options to use other TTS solution(including Google TTS). So I couldn’t understand why other MM TTS module is needed. -
@sean hello Sean.
Using the TTS of Kalliope could be the better solution.
But how can I call this fonctionnalité from a MM moduleThank you for your time and explanations
Regars
Nicolas
-
@npx78
I have no experience with Kalliope so I’m not sure…
I think this is showing what you needs - https://kalliope-project.github.io/kalliope/rest_api/#run-a-synapse-from-an-order
So, by just calling Kalliope API with curl to run yourreply synapse
from your module after it’s job, couldn’t be done?