Hi,
I am playing with a custom skill about my family members.
To begin I store the information in a json file. It’s a list of members whose parameters are, to stay simple, first name, rank in the family and place where they live. I know that this file is not stored in the right place and I am working on the right path to save it.
At first step, some intents give me the first names of my sons, daughters, grand-daughters and so on.
“Who is my son ?” => “John is your son”.
The second step of my work is to find one parameter for one member of the family: ie “where is living John ?” .
The intent is:
@intent_handler(IntentBuilder(“LivingPlaceIntent”).require(“LivingPlaceKeyword”).require(“FamilyFirstName”))
def handle_living_place(self, message):
member = message.data.get(‘FamilyFirstName’)
With a FamilyFirstName.rx file I get the first name I use to find the place he lives.
(?P<FamilyFirstName>.*)
The question “John living place” get the response “Paris”.
I am not looking for help, I just want to learn more on Mycroft and the three types of issue I encountered:
- the first name is transcribed with its first character written with a lower case. In the json file all names have an upper case first character. When asking “who is Barak Obama?”, this is the log:
. > who is barack obama
. >> Barack Hussein Obama …
The utterance is always transcribed with lower cases. I guess it’s a choice ?
- the utterance : “Where John is living” gives “John is” as first name.
SKILLS - DEBUG - {“context”: {“target”: null}, “type”: “skill_family_learning.henridbr:LivingPlaceIntent”, “data”: {“intent_type”: “skill_family_learning.henridbr:LivingPlaceIntent”, “utterance”: “where john is living”, “tags”: [{“match”: “living”, “end_token”: 3, “from_context”: false, “entities”: [{“match”: “living”, “confidence”: 1.0, “key”: “living”, “data”: [[“living”, “skill_family_learning_henridbrLivingPlaceKeyword”]]}], “confidence”: 1.0, “start_token”: 3, “key”: “living”}, {“match”: “john is”, “end_token”: 2, “from_context”: false, “entities”: [{“match”: “john is”, “confidence”: 0.5, “key”: “john is”, “data”: [[“john is”, “skill_family_learning_henridbrFamilyFirstName”]]}], “confidence”: 0.5, “start_token”: 1, “key”: “john is”}], “target”: null, “skill_family_learning_henridbrFamilyFirstName”: “john is”, “skill_family_learning_henridbrLivingPlaceKeyword”: “living”, “confidence”: 0.25}}
- the utterance “What is the city of John” gives “of John”.
DEBUG - {“context”: {“target”: null}, “type”: “skill_family_learning.henridbr:LivingPlaceIntent”, “data”: {“intent_type”: “skill_family_learning.henridbr:LivingPlaceIntent”, “utterance”: “what is the city of john”, “tags”: [{“match”: “city”, “end_token”: 2, “from_context”: false, “entities”: [{“match”: “city”, “confidence”: 1.0, “key”: “city”, “data”: [[“city”, “skill_family_learning_henridbrLivingPlaceKeyword”], [“city”, “mycroft_configuration_mycroftaiDeviceLocation”]]}], “confidence”: 1.0, “start_token”: 2, “key”: “city”}, {“match”: “of john”, “end_token”: 4, “from_context”: false, “entities”: [{“match”: “of john”, “confidence”: 0.5, “key”: “of john”, “data”: [[“of john”, “skill_family_learning_henridbrFamilyFirstName”]]}], “confidence”: 0.5, “start_token”: 3, “key”: “of john”}], “target”: null, “skill_family_learning_henridbrFamilyFirstName”: “of john”, “skill_family_learning_henridbrLivingPlaceKeyword”: “city”, “confidence”: 0.25}}
When the utterance is analyzed, Mycroft matches: “what is the city of John” => “of john” or “where John is living” => “john is” ? I find this with 2 or 3 syllables first names by voice or by the CLI.
Is it possible to improve this ?