PC Voice Control
Laitis is a Windows application that lets people control a computer with voice and dictate text.
It was originally designed for power users, but in practice it turned out to be life-changing for people with disabilities. With Laitis, they can fully control a computer by voice, play games, and even earn money by working remotely. Over more than 10 years, I have received thousands of thank-you messages from people with disabilities, and today I support the product only for them.
It provides a large set of voice commands built as macros activated by words and phrases defined inside each command. In practice, it allows full computer use without a keyboard or mouse.
Development History
The original idea came from the 2011 article "Using Google Voice Search in a .NET Application".
In 2012, I built the first prototype. It automatically recorded voice from the microphone and inserted recognized text into any text field through the clipboard.
In 2013, the prototype was presented publicly on Pikabu. In addition to text dictation, it already had basic voice command support.
At the beginning of 2014, the prototype became part of BrutalPlayer and received a user interface.
By the end of 2014, the product became standalone and got the name Laitis.
In 2015, the stable 2.0 version was released with new functionality for controlling websites.
In 2016, version 3.0 was released. Speech recognition became much faster, and support for talking with a voice bot was added.
In 2017, version 4 introduced browser-extension-based website control, several new action types, and additional speech recognition and speech synthesis services.
Version 5.0 was released in the middle of 2017. It added the ability to find an element on the screen by name and move the mouse cursor to it. This significantly expanded the program's capabilities and removed the need for many extra voice commands.
In 2018, version 6 was released. The application started supporting three languages: Russian, Ukrainian, and English. Audio recording and speech recognition algorithms were significantly improved. A post demonstrating text dictation became one of the most saved posts of the week on Pikabu.
Installation And Updates
The program consists of a single Laitis.exe file around 1 MB in size. It installs, updates, and uninstalls itself.
Updates are performed automatically without asking the user for confirmation.
Voice Recording
Laitis supports several ways to record voice:
- recording on the user's computer while holding a specific key
- adaptive automatic voice recording when a high microphone noise level is detected
- recording from a mobile phone through remote microphone apps such as WO Mic
- recording and speech recognition on another device with the recognition result sent into Laitis, for example through Siri Shortcuts
Speech Recognition
Speech recognition currently requires an internet connection.
By default, Laitis uses Google Speech-to-Text.
It also supports services from Yandex, Microsoft, and Windows-installed speech packages that support dictation.
At the time, there was no product that could recognize free-form Russian speech with high quality directly on the user's machine without using remote server-side computation. When such technologies become practical, Laitis can support them.
Text Dictation
Text can be dictated into any text field. Two input modes are available:
- inserting dictated text through the clipboard with
Ctrl+V - typing dictated text through simulated keyboard input with
EN,RU, andUKlayouts supported
By default, automatic punctuation is enabled. It inserts periods and commas based on pause duration in spoken speech.
Custom auto-replacements can also be added. Examples from the common text-work collection include:
period=.question mark=?curly brace={
Speech Synthesis
Speech synthesis is used for feedback in commands and in voice conversations.
Supported online text-to-speech services include Acapela, ISpeech, Microsoft, VoiceRSS, and Yandex.
Windows-installed synthesis engines could also be used, for example Speech2Go+Ivona.
Conversation Mode
The program includes a voice bot that can be trained to communicate through phrase chains configured inside the application.
The community included two conversation collections: Conversation and Conversation 18+.
Commands
A voice command consists of a list of phrases that activate it and a list of actions that should be executed.
Command storage structure:
- command language such as
ru-RUoren-US - collection name such as
YouTubeorPhotoshop - group such as
GeneralorWindow Management - commands
Right after installation, the user had access to more than 10 general-purpose command collections, enough to control a computer without a keyboard and mouse.
Custom commands could be created in the built-in editor. New commands could also be published to the community and made available to other users.
Community
The community contained command collections published by other users and approved through moderation.
It also had a publication section where users could rate posts from other members.
Registration in Laitis was required.
Available Actions
Basic Actions
- Open file or program:
File path,Launch arguments - Terminate process:
Close type,Process name - Show main process window:
Process name,Display type - Send HTTP request:
HTTP method,URL - Execute
.batscript:Script body - Speak:
Text - Play audio or sound:
File path - Call a command by its phrase:
Phrase
Input Actions
- Press keyboard shortcut:
Press type,Key combination - Aim cursor:
Default digits - Move cursor:
Move type,X,Y - Find an element on screen and move the mouse cursor to it:
Element name,Action name - Click a mouse button:
Mouse button,Click type - Scroll the mouse wheel:
Scroll type,Value - Type text:
Insert or type,Text
Website Actions
- Open link:
URL - Execute JavaScript:
Script body - Click an element on a webpage:
CSS selector - Move focus to an element on a webpage:
CSS selector - Navigate page elements:
CSS selector,Navigation type,Element number - Click the currently navigated page element:
CSS selector - Get text by CSS selector on the current page:
CSS selector,Variable name - Open a small window in the screen corner with reduced website content:
URL,CSS selector - Get a string by URL and CSS selector:
URL,CSS selector,Variable name
These actions work with the user's browser and require the Laitis Browser Extension.
Logical Actions
- If application is active:
Process name - If application is running:
Process name - If website is open:
URL fragment - If website navigation is focused on an element:
CSS selector - If variable value equals:
Variable name,Comparison type,Value - Start random action block
- Else
- End
- Loop:
Repeat count - Break
Utility Actions
- Wait:
Milliseconds - Wait for the next user phrase:
Variable name - Schedule event:
Event type,Date or time - Set custom variable value:
Variable name,Value,Operator,Operand - Enable or disable collection:
Collection name,Toggle type - Show notification:
Notification type,Text,Duration - Comment:
Text