Google Speech Commands: Keyword Spotting Dataset
Google Speech Commands is a corpus of one-second spoken-word audio clips for training keyword spotting models (Warden, 2018). This Potato config reproduces the task: annotators play each clip, label the spoken word, and rate audio quality.
About this dataset
Google Speech Commands is an open audio dataset of short spoken words, released by Pete Warden at Google in 2018 (arXiv:1804.03209). It was built to train and evaluate keyword spotting systems, the small always-listening models that detect single trigger words on phones and embedded devices.
The dataset was crowdsourced through a web app and ships in two versions. Version 1 holds about 65,000 utterances across 30 word labels from 1,881 speakers. Version 2 expands this to 105,829 utterances across 35 word labels from 2,618 speakers. Every clip is one second long and recorded at a 16 kHz sample rate.
Keyword spotting treats each clip as a single-label classification problem. The 35 words include 20 core commands (the digits zero through nine plus yes, no, up, down, left, right, on, off, stop, go) and auxiliary words such as bed, bird, cat, and marvin that populate an 'unknown' class. Models learn to map one second of audio to one of these labels or to silence.
The Potato config below reproduces this task as a listen-and-label workflow. Each item plays a one-second clip, a radio scheme captures the spoken command word, and a second scheme records an audio-quality judgment for filtering noisy recordings.
- Utterances (v2)
- 105,829
- Utterances (v1)
- ~65,000
- Distinct words
- 35 (v2) / 30 (v1)
- Core command words
- 20
- Clip format
- 1 second, 16 kHz
- Speakers
- 2,618 (v2) / 1,881 (v1)
Configuration Fileconfig.yaml
This Potato config reproduces the annotation task. Save it as config.yaml and run potato start config.yaml to try it.
# Speech Commands - Keyword Recognition
# Based on Warden, arXiv 2018
# Paper: https://arxiv.org/abs/1804.03209
# Dataset: https://www.tensorflow.org/datasets/catalog/speech_commands
#
# This task asks annotators to listen to short audio clips of spoken commands
# and identify the keyword being spoken. They also assess the audio quality
# to help filter training data.
#
# Command Keywords:
# - Yes, No, Up, Down, Left, Right, On, Off, Stop, Go
# - Unknown: Not one of the target keywords
# - Silence: No speech detected
#
# Audio Quality:
# - Clear: Audio is clean with clearly audible speech
# - Noisy: Background noise present but speech is still identifiable
# - Ambiguous: Speech is unclear or could be multiple words
#
# Annotation Guidelines:
# 1. Listen to the audio clip (replay as needed)
# 2. Label the audio with the spoken command keyword
# 3. Assess the audio quality (Clear, Noisy, or Ambiguous)
# 4. Compare with the expected command shown for reference
annotation_task_name: "Speech Commands - Keyword Recognition"
task_dir: "."
data_files:
- sample-data.json
item_properties:
id_key: "id"
text_key: "text"
output_annotation_dir: "annotation_output/"
output_annotation_format: "json"
port: 8000
server_name: localhost
annotation_schemes:
- annotation_type: radio
name: audio_quality
description: "Assess the quality of the audio clip"
labels:
- "Clear"
- "Noisy"
- "Ambiguous"
keyboard_shortcuts:
"Clear": "1"
"Noisy": "2"
"Ambiguous": "3"
tooltips:
"Clear": "Audio is clean with clearly audible speech"
"Noisy": "Background noise is present but speech is still identifiable"
"Ambiguous": "Speech is unclear or could be interpreted as multiple different words"
- annotation_type: audio_annotation
name: command_label
description: "Label the spoken command in the audio clip"
mode: "label"
labels:
- "Yes"
- "No"
- "Up"
- "Down"
- "Left"
- "Right"
- "On"
- "Off"
- "Stop"
- "Go"
- "Unknown"
- "Silence"
annotation_instructions: |
You will be shown an audio clip containing a short spoken command.
1. Listen to the audio clip (you may replay it as needed).
2. Label the audio with the command keyword you hear.
Use "Unknown" if the word is not one of the target keywords.
Use "Silence" if no speech is detected.
3. Assess the audio quality: Clear, Noisy, or Ambiguous.
The expected command is shown for reference, but your label should
reflect what you actually hear in the audio.
html_layout: |
<div style="padding: 15px; max-width: 800px; margin: auto;">
<div style="background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 8px; padding: 16px; margin-bottom: 16px; text-align: center;">
<audio controls style="width: 100%;">
<source src="{{audio_url}}" type="audio/wav">
Your browser does not support the audio element.
</audio>
</div>
<div style="background: #fef3c7; border: 1px solid #fde68a; border-radius: 8px; padding: 12px;">
<strong style="color: #92400e;">Expected Command:</strong>
<span style="font-size: 16px; color: #78350f;">{{text}}</span>
</div>
</div>
allow_all_users: true
instances_per_annotator: 50
annotation_per_instance: 2
allow_skip: true
skip_reason_required: false
Sample Datasample-data.json
[
{
"id": "cmd_001",
"text": "Yes",
"audio_url": "audio/cmd_001.wav"
},
{
"id": "cmd_002",
"text": "No",
"audio_url": "audio/cmd_002.wav"
}
]
// ... and 8 more itemsGet This Design
Clone or download from the repository
Quick start:
git clone https://github.com/davidjurgens/potato-showcase.git cd potato-showcase/audio/speech-commands-recognition potato start config.yaml
Dataset & paper
Warden, arXiv 2018
Citation (BibTeX)
@article{warden2018speech,
title = "Speech Commands: A Dataset for Limited-Vocabulary Speech Recognition",
author = "Warden, Pete",
journal = "arXiv preprint arXiv:1804.03209",
year = "2018",
url = "https://arxiv.org/abs/1804.03209"
}Details
Annotation Types
Domain
Use Cases
Tags
Found an issue or want to improve this design?
Open an IssueRelated Designs
CoVoST 2 - Speech Translation Evaluation
Speech translation quality evaluation based on the CoVoST 2 dataset (Wang et al., arXiv 2020). Annotators listen to source audio, review translations, label audio segments, and rate overall translation quality.
Audio Transcription Review
Review and correct automatic speech recognition transcriptions with waveform visualization.
Audio-Visual Sentiment Analysis
Rate sentiment in speech segments following CMU-MOSI and CMU-MOSEI multimodal annotation protocols.