changing the voice works now

Initially,

utterance.voice = form.voice.options[form.voice.selectedIndex].voice, 

we are assigning a html element to the voice, which is not correct. It should be
 
utterance.voice = voices[form.voice.selectedIndex] , where voices = window.speechSynthesis.getVoices();