Firefox Voice:

An Open and Extensible Voice Assistant Built Upon the Web

Julia Cambre, Alex C. Williams, Afsaneh Razi, Ian Bicking, Abraham Wallin, Janice Tsai, Chinmay Kulkarni, Jofish Kaye

CHI 2021

Thanks for your interest in Firefox Voice! We’ve created this page as a living resource to supplement our research paper on Firefox Voice, published at the ACM Conference on Human Factors in Computing Systems (CHI) 2021.

Quick Links:

Read the CHI paper View the original codebase Watch the 5 minute paper talk

Instructions to run Firefox Voice on your own machine:

Firefox Voice was a browser-based voice assistant, developed and maintained by the Consumer Voice Products team at Mozilla from 2019 to 2020. Because the project is no longer actively supported by Mozilla, some features that the extension relied upon have been deprecated, and will require a workaround to run the extension on your local machine. Specifically, you will need to run your own speech recognition server in order for Firefox Voice to run properly, as the Mozilla-run server that it previously relied upon has been shut down.

Please also keep in mind that Firefox Voice relied upon certain functionality that is only available to Mozilla-distributed browser extensions; these features will work for a local development environment, but are not available to published extensions like those in

1. Download and install this forked version of Firefox Voice

First, clone this forked version of the Firefox Voice code. The code is largely the same as that found in the original repository, with a few small bug fixes.

Follow the instructions within the README on how to install and run the extension.

2. Run your own speech recognition server

The Firefox Voice code for speech processing is currently configured to work with the Google Cloud Speech-to-Text service and its audio specifications. However, the audio captured within the extension still needs to be converted from OGG to FLAC, which (in Julia's experience) can't be accomplished within the extension itself.

This additional codebase shows how to set up a small local server that will work with Firefox Voice, also using the Google Cloud Speech-to-Text service. You'll also need to follow Google's instructions on enabling the STT API and authenticating the Node.js speech server.

To run the speech server, run the following command: node --experimental-wasm-threads --experimental-wasm-bulk-memory index.js

3. Change the Firefox Voice code to point to your speech server

If you're running the speech server from step 2, this is already configured for you! Otherwise, if you have a different endpoint set up for speech recognition, you'll have to change the STT_SERVER_URL value on line 9 of the voice.js file to point to your server.