SpeechSynthesisVoice: localService property

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 localService read-only property of the SpeechSynthesisVoice interface returns a boolean value indicating whether the voice is supplied by a local speech synthesizer service (true), or a remote speech synthesizer service (false.)

This property is provided to allow differentiation in the case that some voice options are provided by a remote service; it is possible that remote voices might have extra latency, bandwidth or cost associated with them, so such distinction may be useful.


A boolean value.


for (let i = 0; i < voices.length; i++) {
  const option = document.createElement("option");
  option.textContent = `${voices[i].name} (${voices[i].lang})`;

  if (voices[i].default) {
    option.textContent += " — DEFAULT";


  option.setAttribute("data-lang", voices[i].lang);
  option.setAttribute("data-name", voices[i].name);


Web Speech API
# dom-speechsynthesisvoice-localservice

Browser compatibility

BCD tables only load in the browser

See also