Howl: A Deployed, Open-Source Wake Word Detection System (2020)

Abstract: We describe Howl, an open-source wake word detection toolkit with native support for open speech datasets such as Mozilla Common Voice (MCV) and Google Speech Commands (GSC). We report benchmark results of various models supported by our toolkit on GSC and our own freely available wake word detection dataset, built from MCV. One of our models is deployed in Firefox Voice, a plugin enabling speech interactivity for the Firefox web browser. Howl represents, to the best of our knowledge, the first fully productionized, open-source wake word detection toolkit with a web browser deployment target. Our codebase is at howl.ai.

## introduction wake word detection is the task of recognizing an utterance for activating a speech assistant, such as "hey, alexa" for the amazon echo. given that such systems are meant to support fully automatic speech recognition, the task seems simple. however, it introduces a different set of challenges because these systems have to be always listening, computationally efficient, and, most of all, privacy respecting. therefore, researchers treat it as a separate line of work, with most recent advancements driven by neural networks @xcite . unfortunately, most existing toolkits are closed source and often specific to a target platform. such design choices restrict the flexibility of the application and add unnecessary maintenance as the number of target domains increases. we argue that using javascript is a solution: unlike many languages and their runtimes, the javascript engine powers a wide range of modern user-facing applications ranging from mobile to desktop ones. ## system description we present a high-level description of our toolkit and its goals (see howl's architecture in figure 1 ). for specific details, we refer users to our code repository, as linked in the abstract. ## benchmark results to verify the correctness of our implementation, we first train and evaluate our models on the google speech commands dataset, for which there exists many known results. next, we curate a wake word detection datasets and report our resulting model quality. training details are in the repository. ## browser deployment to protect user security and privacy, wake word detection must be directly performed on the user's device. this setting introduces various technical challenges, as the available resources are often limited and may not be accessible. in the case of firefox voice, our target application, the platform is firefox, where the major challenge is the limited support in machine learning frameworks. however, our previous work demonstrates the feasibility of in-browser wake word detection with honkling @xcite . our application is written purely in javascript and supports different models using tensorflow.js. since our task is to provide an accurate wake word detection system for firefox voice, we rewrite the audio processing logic to match the new python pipeline and optimize various preprocessing routines to substantially reduce the computational burden. to measure the performance of our application, we refer to the built-in energy impact metric of firefox, which reports the cpu consumption of each open tab. to establish a reference, playing a youtube video reports an average energy impact of 10, while a static google search reports 0.1. our wake word detection model yields an energy impact of only 3, which efficiently enables hands-free interaction for initiating the speech recognition engine. our wake word detection demo and browserside integration details can be found at https: //github.com/castorini/howl-deploy. ## conclusions and future work this paper introduces howl, the first in-browser wake word detection system which powers a widely deployed application, firefox voice. leveraging a continuously growing speech dataset, howl enables a community-based endeavour for building a privacy-respecting and non-eavesdropping wake word detection system. to expand the scope of howl, our future work includes embedded systems as deployment targets, where the computational resources are even more constrained, with some systems lacking even modern memory managers.