Some terms in the docs might be unknown to you; this section should help you achieve a better understanding of these words and how they relate to Leon.
Actions represent the modules entry points.
Attachment: packages/calendar/todolist.py example of the
To-Do Listmodule including actions such as
Answers are Leon's responses. Each package has its own set of answers with different translations.
Attachment: packages/checker/data/answers/en.json example of the
Checkerpackage English answers.
API stands for Application Programming Interface and it allows the communication between different nodes of a project. These nodes can be a server, library, etc.
Examples of Leon APIs:
- The HTTP API allows him to exchange data between the server and the client.
- The WebSocket API allows him to open a bidirectional communication channel between the client and the server.
- The Python library API allows developers to pick up functions to work on Leon's modules.
ASR or Automatic Speech Recognition is the use of computer hardware and software-based techniques to identify and process human voice.
Leon uses it to make your voice understandable for him.
- app/src/js/main.js ASR web app.
- server/src/core/asr.js ASR server.
Leon's brain is a major part of his core. This is where he executes his modules, talks, picks up sentences, etc.
Attachment: server/src/core/brain.js Leon's brain.
A classifier is a type of model. Once trained, it outputs a result via an algorithm. This result is used to make decisions.
Leon uses it to store the outcomes of his expressions training phase.
Expressions are the dataset that Leon uses to train his understanding. Each package has its own dataset with different translations.
Attachment: packages/checker/data/expressions/en.json example of the
Checkerpackage English expressions.
Modules are Leon's skills; thanks to them Leon can work his magic. Modules contain one or an infinity of actions.
The more modules Leon has, the more skillful he becomes. Do not hesitate to contribute ❤️
NLU (Natural Language Understanding) helps computers understand human language.
Leon employs it to load the most appropriate classifier.
Attachment: server/src/core/nlu.js Leon's NLU.
Leon's packages contain one or an infinity of modules. You can consider packages as a category of modules. This is where the answers and expressions are stored.
Alternatively, packages are what we call "domains" in the NLP (Natural Language Processing) field. Domain classification is a way to structure/label data for a better scalability. It helps Leon to make decisions on what to understand and improve his accuracy.
Attachment: packages/leon example of the
Leonpackage including modules related to Leon himself.
The full package list is available here.
STT, or Speech-To-Text, transforms an audio stream (speech) to a string (text).
Leon has multiple STT parsers; you can choose one (or several) to configure.
Attachment: server/src/stt/stt.js Leon's STT.
The synchronizer allows you to synchronize your content via different methods (Google Drive, on your current device, etc.) restricted by the requested module's offerings.
You can configure your favorite method for each module that supports this feature.
Attachment: server/src/core/synchronizer.js Leon's synchronizer.
TTS or (Text-To-Speech) transforms a string (text) to an audio stream (speech).
Leon has multiple TTS synthesizers; you can choose one (or several) to configure.
Attachment: server/src/tts/tts.js Leon's TTS.