The emergence of voice-controlled devices like Siri, Amazon Echo, and Google Home have simplified tasks that previously required a keyboard. But we’ve only just begun to inhabit a world filled with devices that we control in different ways, one where we can accomplish more by what we say than what we can do. Serenade aims to tackle an interesting problem: writing code through speech.
Serenade is a voice-to-code software that’s available to plug into several popular IDEs, like VS Code and IntelliJ. Their claim is to allow you to code “using natural speech,” and with support for nearly a dozen languages, it’s an intriguing proposition. The ability to code through voice commands is more than just a Sci-Fi fantasy. For programmers with carpal tunnel, or other more severe physical ailments, coding can continue to provide them access to the creative endeavor they enjoy—and a living.
From our partners:
Is Serenade actually viable? In this post, we’ll put the program to the test. My colleague Garen and I will attempt to build a Node.js site, with a simple HTML and CSS frontend, using only our voice. Our site will be nothing more than a button that, when clicked, will display a random emoji. To truly immerse ourselves in the hands-free experience, we’ll also attempt to deploy the app to Heroku using their CLI. Let’s get started!
Set up the server
As with most new projects, we’d like to create a new directory, change into it, and install my package dependencies. Since we can only use Serenade within the IDEs they support, we must resort to macOS’ Dictation feature, which is lacking and unable to comprehend programmer speak. We must explicitly spell out Unix commands, or the program won’t understand them. Furthermore, there doesn’t seem to be any way to enforce lowercase, which really irks the directory aesthetic. Perhaps most frustrating of all is the inability to speak filename conventions.
In order to move this along, we just typed npm i express --save-dev
on the command line, created a new file called server.js, and opened up Visual Studio Code. Hands 1, Voice 0.
Serenade runs on your computer and detects your IDE, in order to integrate with its functionality. After installing and activating the app, you can pretty much get started by issuing explicit directives. In the event that Serenade didn’t understand, you can choose a visual option to resolve the ambiguity. There are several tutorials available to help you begin learning the directives.
Here’s our first try:
First attempt at using Serenade
There’s a lot to like about how Serenade works: it knows common IDE commands like “delete word”. Additionally, in general, if you speak out a sentence, it’ll know when to add spaces and semicolons. However, one issue to keep in mind is the fact that Serenade has three different ways to add text:
- insert, which is a general way to describe a line
- add, which specifically recognizes language features like classes and functions
- type, which enters raw, plain text
Knowing which one to use can be a bit confusing, but after spending some time with the program (and thoroughly reading the documentation), it is possible to move at a somewhat faster clip. However, phrases are still misunderstood from time to time:
Moving a little faster as I learn the syntax
There seems to be some confusion about where to place parentheses and arguments. On occasion, it can feel like we’re fighting against the app’s syntax, rather than it understanding me. Hands 2, Voice 0.
Write the HTML and CSS
Let’s assume we did manage to get a basic server going:
const express = require('express');
const app = express();
const path = require('path');
app.get('/', <span class="hljs-function">function(req, res) </span>{
res.sendFile('/index.html');
});
app.listen(8080);
We’ll now write a file called index.html to represent the entirety of our design. HTML is meant to be a structured language; how does it fare?
HTML for the win
For enquiries, product placements, sponsorships, and collaborations, connect with us at [email protected]. We'd love to hear from you!
Our humans need coffee too! Your support is highly appreciated, thank you!