Developing private skills for Alice. What is not taught at Alice's School

Every time I finish spring cleaning, I get the feeling that Iā€™ve forgotten something. Last week I wrote down on paper all the tasks that need to be done to clean the apartment completely - I got three A4 sheets.

list of works on three sheets of A4
This is the list of tasks for cleaning a one-room apartment.

I am an active user of Yandex.Stations, so I decided to stuff this huge list into Alice so that during the spring cleaning I would ask the ā€œgirl in the boxā€ what to do next. Variants of the name for the skill revolved around the words foreman and butler. I have long dreamed of a house with a butler, so I settled on the name "My Butler" and the activation phrase: "Alice, ask my butler what to do next."

Alice's school - it's important to stop on time


I had vague ideas about developing skills for voice assistants, so the first thing I did was open the Yandex.Dialogs platform documentation and watched all the videos in the Aliceā€™s School playlist on the Yandex.Dialogs youtube channel. When I looked, I took notes in a notebook and didnā€™t notice how behind the trees I stopped seeing the forest.

Alice's school teaches you to make a skill that helps the user with the wrong answer, distinguishes between synonyms and other forms of words; which in the welcome phrase explains to the user how to work with the skill, and the welcome phrase ends with a question that provokes an answer and directs the dialogue with the user in the right direction, etc. The advice seems convincing, I want to take into account absolutely everything, think about word forms, intentions, libraries for morphological analysis of the language, etc. For this, it is difficult for everyone to maintain focus on the problem, for the solution of which the skill was conceived.

If you do not stop in time, then there is a substitution of concepts and you want to make just a good skill. Not a skill that will solve my problem in the most comfortable way for me, but a good skill, for some people whom I donā€™t know, who probably do not need it at all. At this moment, a trap is usually laid in the minds of the developer, which subsequently, with a high probability, will make you feel disappointed. If you do not understand what kind of disappointment we are talking about, then read the comments on the post The best time to release a pet project .

Target audience - nobody but me


I thought, and who will use the skill? I read somewhere that according to statistics, only the developer and his friends use the vast majority of applications in the stores. I have no friends with Yandex.Station, so I will be the only user of the application. Of course, I can evaluate how I will publish the skill in Aliceā€™s skills catalog, how all the inhabitants of our country will start using it, how I will win the Alice prize, how I will begin international expansion and translate the skill into other languages ā€‹ā€‹and publish it in other stories, TIME magazine will publish my photo on cover, etc. Click. Statistics is a stubborn thing, so I make a skill for myself. Let's see what this changes in relation to some of the tips from Alice's School.

Welcome phrase and help not needed


First of all, I love when they speak informatively and on business. I imagine that every time a skill is launched, a voice assistant greets me and tells me that she can do the skill, which I did. I think this increases the risk of my Yandex.Station breaking down from hitting the wall or falling from the sixth floor.

Secondly, with high probability I will not use the help / what commands you can. I am a skill developer and I know how it works. Implementing help is a waste of time. But if it gives pleasure, then it can be realized. I did not see the pleasure of implementing the help team.

Natural Language Processing (NLP) is better deferred


In the scenario, My Butler recognizes the userā€™s confirmation and denial, and the Yandex.Dialogs platformā€™s built-in platform intents YANDEX.CONFIRM and tasks do this very well YANDEX.REJECT, but I made the first version of the skill easier. The system compared the user command with the yes / no line, but after a few days of operation I replaced it with intentions. There were ideas that I wrote down, but I'm not in a hurry to implement, because the skill so solves my problem.

The voice interface for editing the list can be replaced with a hardcode.
I imagined how I read Alice a long list of tasks, which is then saved in Yandex.Cloud. He came up with a voice interface for inserting a new task in the middle of the list:
- Add <wash the front door> after <the floor mat in the hallway was cleaned up>.
- Added <wash the front door> to the task list at number 34.
It seems cool, but remembering the target audience, I postponed this venture. I am so professionally deformed that it is more convenient for me to keep a list of tasks in the version control system. Most likely, I will very rarely edit this list, and if I do, I will very quickly correct the sources and fix the changes to Yandex.Cloud with one command. Implementing a voice interface for editing the task list will take much longer.
just_aiNote, I want a ready-made screen for working with the list (adding to the beginning \ end \ middle, deleting) in voice assistants

After a couple of days of using the skill, I realized that in a hard-coded list, it is worth using TTS markup instead of text. This will correct the stress and intonation in some phrases. It seems that when editing the list of tasks by voice, it will not be possible to achieve the correct pronunciation of these phrases by Alice until Alice is improved. I can put up with the pronunciation, so I'm not in a hurry to redo the text to TTS markup in my task list.

Total. Alice's school teaches you to do the right thing, but remember the target audience of the skill.

Acknowledgments


Thanks to everyone who develops gadgets with voice interfaces, who develops voice interfaces, tools for developing voice assistants and training materials. You improve the quality of life of people like me, and also remove the extra load from the screens from millions of eyes.

Special thanks to the creators and speakers of Alice School for the excellent selection of materials. Your advice was concise and helpful to me. Without you, I would not have made a butler who helps me with cleaning. I wrote this post because I thought it was important to supplement Alice School materials with tips for private skill developers. Hope this helps someone save time and energy.

All Articles