Skip to content

5) Skill development

Antoine Duval edited this page Dec 4, 2021 · 31 revisions

Intro

Skills are the applications that provide different functionality to users. Creating a skill requires at least some basic technical experience, some installation of NOVA, some idea of what your skill will do and how people will use it.

Technical Requirements

JavaScript programming language

Skills for NOVA are written using the JavaScript programming language. A simple skill can be a great way for new developers to try JavaScript in a real project, while experienced programmers will quickly see the powerful possibilities available in a well-designed skill.

If you're unfamiliar with the basics of JavaScript, check out one of the many online tutorials to get you started. If you are completely new to programming, you may want to take an introductory programming course.

Github account

Skills are hosted on Github, so you will need to create an account there if you don't already have one. It is good to have a basic understanding of the Git basics and GitHub basics.

Running NOVA

To test your skills, you will need to set up a NOVA device. Currently, NOVA can be installed on a Windows, a Mac, an Ubuntu, a Raspberry...

What makes a good Skill?

Fulfilling a need the user has

Good Skills meet one or more of the user's needs. Popular Skills are popular because people use them frequently - for instance, to set alarms, reminders, or to identify the time in other time zones. On the other hand, a Skill that, say, recites π to 100 digits might be pretty cool, but when was the last time you needed to know π to 100 digits? Contrast that with the last time you set a reminder on your phone.

Having an easy to use voice interface

Just like a web page with a thoughtfully-designed interface is much more pleasant to use, a Skill with a well-designed voice interface is a delight, not a chore, to use. You should anticipate the task the user is trying to accomplish, and how to make that as straightforward as possible.

If you have an idea for a Skill, it's a great idea to join our Discord and share what your plans are. You'll be able to get constructive and helpful feedback on your Skill from an experienced community.

Skill terminology

Make sure to check this glossary to understand all the terms used in relation with skills.

  • hotword: The word you speak to wake NOVA, to make it listen to you.
  • skill: An aptitude for NOVA to do something with what you asked it.
  • utterance: A phrase spoken by the user, after saying the hotword.
  • intent: After catching an utterance NOVA turns it into an intent which represents the action the user asked it to do.
  • STT: Speech To Text is a component used to capture human speech and turn it into text
  • TTS: Text To Speech is a component used to turn text into an audio file, a voice.
  • Server: The main unit runs the heavy stuff, it's the machine on which NOVA is installed.
  • Client: Clients need less resources than the server, making them less expensive, they provide at least a microphone and speaker in your other locations to interact with NOVA.