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.

Visit laitis.ru

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, and UK layouts 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-RU or en-US
  • collection name such as YouTube or Photoshop
  • group such as General or Window 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 .bat script: 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