--- title: SpeechSynthesisUtterance.voice slug: Web/API/SpeechSynthesisUtterance/voice translation_of: Web/API/SpeechSynthesisUtterance/voice ---
<trans newtip="{{APIRef("Web语音API")}}{SeeCompattable}" oldtip="{{APIRef("Web Speech API")}}{{SeeCompatTable}}">{{APIRef("Web语音API")}}{SeeCompattable}</trans>

The voice property of the {{domxref("SpeechSynthesisUtterance")}} interface gets and sets the voice that will be used to speak the utterance.

This should be set to one of the {{domxref("SpeechSynthesisVoice")}} objects returned by {{domxref("SpeechSynthesis.getVoices()")}}. If not set by the time the utterance is spoken, the voice used will be the most suitable default voice available for the utterance's {{domxref("SpeechSynthesisUtterance.lang","lang")}} setting.

Syntax

var myVoice = speechSynthesisUtteranceInstance.voice;
speechSynthesisUtteranceInstance.voice = speechSynthesisVoiceInstance;

Value

A {{domxref("SpeechSynthesisVoice")}} object.

Examples

var synth = window.speechSynthesis;

var inputForm = document.querySelector('form');
var inputTxt = document.querySelector('input');
var voiceSelect = document.querySelector('select');

var voices = synth.getVoices();

  ...

inputForm.onsubmit = function(event) {
  event.preventDefault();

  var utterThis = new SpeechSynthesisUtterance(inputTxt.value);
  var selectedOption = voiceSelect.selectedOptions[0].getAttribute('data-name');
  for(i = 0; i < voices.length ; i++) {
    if(voices[i].name === selectedOption) {
      utterThis.voice = voices[i];
    }
  }
  synth.speak(utterThis);
  inputTxt.blur();
}

Specifications

Specification Status Comment
{{SpecName('Web Speech API', '#dom-speechsynthesisutterance-voice', 'voice')}} {{Spec2('Web Speech API')}}

Browser compatibility

{{Compat("api.SpeechSynthesisUtterance.voice")}}

See also