I have a form that lets me input text and have it spoken like
<script>
window.addEventListener('DOMContentLoaded', () => {
const form = document.getElementById('voice-form');
const input = document.getElementById('speech');
form.addEventListener('submit', event => {
event.preventDefault();
const toSay = input.value.trim();
const msg = new SpeechSynthesisUtterance();
msg.text = toSay;
msg.lang = "sv-SE";
speechSynthesis.speak(msg);
});
});
</script>
<body>
<form id="voice-form">
<textarea type="text" id="speech"></textarea><br>
<input type="submit"/>
</form>
</body>
looking like
but it seems like sv-SE is not implemented.
window.speechSynthesis.onvoiceschanged = function ()
{
voices = window.speechSynthesis.getVoices();
console.log("voices", voices);
}
shows me 21 voices, and now I have it confirmed that swedish is not implemented.
0: SpeechSynthesisVoice {voiceURI: "Microsoft Zira Desktop - English (United States)", name: "Microsoft Zira Desktop - English (United States)", lang: "en-US", localService: true, default: true}
1: SpeechSynthesisVoice {voiceURI: "Microsoft David Desktop - English (United States)", name: "Microsoft David Desktop - English (United States)", lang: "en-US", localService: true, default: false}
2: SpeechSynthesisVoice {voiceURI: "Google Deutsch", name: "Google Deutsch", lang: "de-DE", localService: false, default: false}
3: SpeechSynthesisVoice {voiceURI: "Google US English", name: "Google US English", lang: "en-US", localService: false, default: false}
4: SpeechSynthesisVoice {voiceURI: "Google UK English Female", name: "Google UK English Female", lang: "en-GB", localService: false, default: false}
5: SpeechSynthesisVoice {voiceURI: "Google UK English Male", name: "Google UK English Male", lang: "en-GB", localService: false, default: false}
6: SpeechSynthesisVoice {voiceURI: "Google español", name: "Google español", lang: "es-ES", localService: false, default: false}
7: SpeechSynthesisVoice {voiceURI: "Google español de Estados Unidos", name: "Google español de Estados Unidos", lang: "es-US", localService: false, default: false}
8: SpeechSynthesisVoice {voiceURI: "Google français", name: "Google français", lang: "fr-FR", localService: false, default: false}
9: SpeechSynthesisVoice {voiceURI: "Google हिन्दी", name: "Google हिन्दी", lang: "hi-IN", localService: false, default: false}
10: SpeechSynthesisVoice {voiceURI: "Google Bahasa Indonesia", name: "Google Bahasa Indonesia", lang: "id-ID", localService: false, default: false}
11: SpeechSynthesisVoice {voiceURI: "Google italiano", name: "Google italiano", lang: "it-IT", localService: false, default: false}
12: SpeechSynthesisVoice {voiceURI: "Google 日本語", name: "Google 日本語", lang: "ja-JP", localService: false, default: false}
13: SpeechSynthesisVoice {voiceURI: "Google 한국의", name: "Google 한국의", lang: "ko-KR", localService: false, default: false}
14: SpeechSynthesisVoice {voiceURI: "Google Nederlands", name: "Google Nederlands", lang: "nl-NL", localService: false, default: false}
15: SpeechSynthesisVoice {voiceURI: "Google polski", name: "Google polski", lang: "pl-PL", localService: false, default: false}
16: SpeechSynthesisVoice {voiceURI: "Google português do Brasil", name: "Google português do Brasil", lang: "pt-BR", localService: false, default: false}
17: SpeechSynthesisVoice {voiceURI: "Google русский", name: "Google русский", lang: "ru-RU", localService: false, default: false}
18: SpeechSynthesisVoice {voiceURI: "Google 普通话(中国大陆)", name: "Google 普通话(中国大陆)", lang: "zh-CN", localService: false, default: false}
19: SpeechSynthesisVoice {voiceURI: "Google 粤語(香港)", name: "Google 粤語(香港)", lang: "zh-HK", localService: false, default: false}
20: SpeechSynthesisVoice {voiceURI: "Google 國語(臺灣)", name: "Google 國語(臺灣)", lang: "zh-TW", localService: false, default: false}
Is it possible to add a language to that list?
Available languages are determined by the browser or underlying TTS engines available. For example, if you use Microsoft Edge on Windows 10 with the appropriate language voice installed you may have the option, and I think Chromebooks may have a broader range if you install additional languages. If you need a specific language reliably you may need to turn to 3rd party speech synthesis (like Polly or Google's Cloud-to-Speech), or use mespeak / espeak which does have a Swedish option if you don't care about the voice quality.