SpeechSynthesis: getVoices() method

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨September 2018⁩.

The getVoices() method of the SpeechSynthesis interface returns a list of SpeechSynthesisVoice objects representing all the available voices on the current device.

Syntax

js
getVoices() 

Parameters

None.

Return value

A list (array) of SpeechSynthesisVoice objects.

Examples

JavaScript

js
function populateVoiceList() { if (typeof speechSynthesis === "undefined") { return; } const voices = speechSynthesis.getVoices(); for (const voice of voices) { const option = document.createElement("option"); option.textContent = `${voice.name} (${voice.lang})`; if (voice.default) { option.textContent += " — DEFAULT"; } option.setAttribute("data-lang", voice.lang); option.setAttribute("data-name", voice.name); document.getElementById("voiceSelect").appendChild(option); } } populateVoiceList(); if ( typeof speechSynthesis !== "undefined" && speechSynthesis.onvoiceschanged !== undefined ) { speechSynthesis.onvoiceschanged = populateVoiceList; } 

HTML

html
<select id="voiceSelect"></select> 

Specifications

Specification
Web Speech API
# dom-speechsynthesis-getvoices

Browser compatibility

See also