Improving access to AI-assisted literate programming with voice control

Blaine Mooers (he/him/his) - Pronunciation: pronounced like "moors", blaine-mooers(at),,,,, mastodon(at)bhmooers

Format: 20-min talk followed by live web conference Q&A
Discuss on IRC: #emacsconf
Status: Waiting for video from speaker


The audience will learn how to use voice control to create literate programming documents in Emacs. After reviewing the benefits of literate programming, I will review the prior work done with the voice control in Emacs. I will present the reasons why you'd want to use voice control; they go beyond the obvious benefit of avoiding or working around repetitive stress injuries and include the benefits of using voice control while standing to break up long periods of sitting, which are detrimental to one's health. There are many options for voice control in and out of the Emacs. I will review a list of several and then drill in on two: one that is easy but of limited extensibility (Voice In Plus ( and one that is harder to learn but more extensible (Talon Voice ( The latter has a welcoming community of users and developers in the Talon Slack channel.

The Voice In Plus is a plugin for the Google Chrome browser that allows you to dictate in the text areas on web pages. The dictated text can be sent as soon as it appears in the browser to Emacs via GhostText and the Atomic-Chrome package. You can insert custom code snippets by voice control in the text area using Voice In Plus's support for custom snippets. Or, you can insert yasnippet snippets by voice control in the corresponding buffer in Emacs. I will demonstrate how to set up this workflow and how to use it to create an org mode file. This workflow is very effective for the creation of lots of prose, but not code.

The second approach uses the open-source software called Talon (, which is good for both prose and code. This package enables precise voice control in a wide variety of applications including Emacs. This package is also highly configurable using Python script and an accompanying Talonscript file, which has a simple YAML file format. The general users of Talon who know nothing about Python can easily configure their setup using Talonscript files. Advanced users can use Python to add modules to the Talon package to extend its functionality. I will demonstrate how to write an org mode file with executable code blocks with Talon running in Emacs. I will edit and run the code blocks by voice control with and without the help of generative AI in the form of Copilot.

I also demonstrate an interactive quiz in Python and Elisp that I developed to the support the mastery of the voice control commands. By running the quiz with voice control, you can accelerate mastery of the commands. I learned the Talon alphabet in one day by taking the quiz at spaced intervals. The quiz only took 60 seconds to complete when I was proficient.

I will conclude with a discussion of lessons learned and opportunities for using voice control in Emacs for AI-assisted literate programming.

Questions or comments? Please e-mail