Webã¢ããªã±ãŒã·ã§ã³ã§ããã¹ãèªã¿äžãæ©èœã®å¯èœæ§ãè§£ãæŸã¡ãŸãããïŒãã®ã¬ã€ãã¯ãåºæ¬çãªå®è£ ããé«åºŠãªã«ã¹ã¿ãã€ãºãŸã§å šãŠãç¶²çŸ ããã¢ã¯ã»ã·ããªãã£ãšãŠãŒã¶ãŒäœéšãåäžãããŸãã
ããã³ããšã³ãWebé³å£°åæïŒããã¹ãèªã¿äžãå®è£ ã®å æ¬çã¬ã€ã
仿¥ã®ããžã¿ã«ç°å¢ã«ãããŠãã¢ã¯ã»ã·ãã«ã§é åçãªWebã¢ããªã±ãŒã·ã§ã³ãäœæããããšã¯æãéèŠã§ããç¹ã«èŠèŠé害ã®ããæ¹ãèŽèŠåŠç¿ãå¥œãæ¹ã ã«ãšã£ãŠããŠãŒã¶ãŒäœéšãå€§å¹ ã«åäžããã匷åãªããŒã«ã®äžã€ããWebé³å£°åæãå¥åããã¹ãèªã¿äžãïŒTTSïŒã§ãããã®æè¡ã«ããããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã¯æžãããããã¹ãã話ãèšèã«å€æãããŠãŒã¶ãŒããã³ãºããªãŒã§å æ¬çãªæ¹æ³ã§ã³ã³ãã³ããæ¶è²»ã§ããããã«ãªããŸãã
Webé³å£°åæãšã¯ïŒ
Webé³å£°åæã¯ãWebãã©ãŠã¶ãããã¹ããé³å£°ã«å€æã§ããããã«ããæè¡ã§ããäž»ã«ãéçºè ãWebã¢ããªã±ãŒã·ã§ã³å ã§çŽæ¥é³å£°åºåãå¶åŸ¡ããããã®ããŒã«ãæäŸããJavaScriptããŒã¹ã®ã€ã³ã¿ãŒãã§ãŒã¹ã§ããWeb Speech APIã䜿çšããŠå®è£ ãããŸãããã®APIã䜿çšãããšãèªã¿äžããããã¹ããæå®ãã䜿çšããé³å£°ãéžæãã話ãé床ãããããé³éã調æŽããããã«ã¯éããã®ä»ã®é³å£°é¢é£ã®ãšãã§ã¯ããæ¿å ¥ããããšãã§ããŸãã
ãªãWebé³å£°åæã䜿çšããã®ãïŒ
ããã¹ãèªã¿äžãæ©èœãWebãããžã§ã¯ãã«çµ±åããããšã«ã¯ãå€ãã®å©ç¹ããããŸãïŒ
- ã¢ã¯ã»ã·ããªãã£ïŒ èŠèŠé害ãèªåå°é£ããŸãã¯èªç¥é害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ãããã¢ã¯ã»ã·ãã«ã«ããŸãã
- ãŠãŒã¶ãŒäœéšã®åäžïŒ ç¹ã«èªæžãå°é£ãŸãã¯äžäŸ¿ãªç¶æ³ïŒäŸïŒéå€äžãæçäžãéåäžãªã©ïŒã§ããŠãŒã¶ãŒãã³ã³ãã³ããæ¶è²»ããããã®ä»£æ¿æ¹æ³ãæäŸããŸãã
- å€èšèªãµããŒãïŒ Web Speech APIã¯å¹ åºãèšèªããµããŒãããŠãããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã«å¯Ÿå¿ã§ããŸãã
- ãšã³ã²ãŒãžã¡ã³ãã®åäžïŒ ãŠã§ããµã€ãã«ã€ã³ã¿ã©ã¯ãã£ããªèŠçŽ ã远å ãããŠãŒã¶ãŒã«ãšã£ãŠããé åçã§èšæ¶ã«æ®ããã®ã«ããŸãã
- åŠç¿ãšæè²ïŒ çºé³ã®äŸãæäŸããããšã§èšèªåŠç¿ãå©ãããŠãŒã¶ãŒãæè²ã³ã³ãã³ããèŽãããšãå¯èœã«ããŸãã
- ç®ã®ç²ãã®è»œæžïŒ ãŠãŒã¶ãŒãç»é¢äžã®ããã¹ããèªãããšããè§£æŸãããŸãã
Web Speech APIãã¯ãããã
Web Speech APIã®äœ¿ãæ¹ã¯æ¯èŒçç°¡åã§ãã以äžã«ãJavaScriptã§ããã¹ãèªã¿äžãæ©èœãå®è£ ããåºæ¬çãªäŸã瀺ããŸãïŒ
// Check if the Web Speech API is supported
if ('speechSynthesis' in window) {
console.log('Web Speech API is supported');
// Create a new SpeechSynthesisUtterance object
const msg = new SpeechSynthesisUtterance();
// Set the text to be spoken
msg.text = 'Hello, world! This is a text-to-speech example.';
// Optionally, set the voice (language)
msg.lang = 'en-US'; // English (United States)
// Speak the text
window.speechSynthesis.speak(msg);
} else {
console.log('Web Speech API is not supported in this browser.');
// Provide a fallback for browsers that don't support the API
}
解説ïŒ
- ãµããŒãã®ç¢ºèªïŒ ãã®ã³ãŒãã¯ãŸãã`window`ãªããžã§ã¯ãã«`speechSynthesis`ããããã£ãååšãããã©ããã確èªããŸããããã«ããããã©ãŠã¶ãWeb Speech APIããµããŒãããŠããããšãä¿èšŒããŸãã
- SpeechSynthesisUtteranceã®äœæïŒ `SpeechSynthesisUtterance`ãªããžã§ã¯ãã¯é³å£°ãªã¯ãšã¹ãã衚ããŸããããã«ã¯ãèªã¿äžããããã¹ããé³å£°åæã«é¢é£ãããã®ä»ã®ããããã£ãå«ãŸããŸãã
- ããã¹ãã®èšå®ïŒ `SpeechSynthesisUtterance`ãªããžã§ã¯ãã®`text`ããããã£ã«ãèªã¿äžãããããã¹ããèšå®ããŸãã
- èšèªã®èšå®ïŒä»»æïŒïŒ `lang`ããããã£ã䜿çšãããšãããã¹ãã®èšèªãæå®ã§ããŸããããã«ããããã©ãŠã¶ã¯æå®ãããèšèªã«é©ããé³å£°ãéžæãããããªããŸãã`lang`ããããã£ãèšå®ããªãå Žåããã©ãŠã¶ã¯ããã©ã«ãã®èšèªã䜿çšããŸããèšèªã³ãŒãã®ãªã¹ãã¯ãªã³ã©ã€ã³ã§èŠã€ããããšãã§ããŸãïŒäŸïŒãen-USãã¯è±èªïŒã¢ã¡ãªã«åè¡åœïŒãães-ESãã¯ã¹ãã€ã³èªïŒã¹ãã€ã³ïŒããfr-FRãã¯ãã©ã³ã¹èªïŒãã©ã³ã¹ïŒããde-DEãã¯ãã€ãèªïŒãã€ãïŒããja-JPãã¯æ¥æ¬èªïŒæ¥æ¬ïŒããzh-CNãã¯äžåœèªïŒäžåœïŒããru-RUãã¯ãã·ã¢èªïŒãã·ã¢ïŒããar-SAãã¯ã¢ã©ãã¢èªïŒãµãŠãžã¢ã©ãã¢ïŒïŒã
- ããã¹ãã®èªã¿äžãïŒ `window.speechSynthesis.speak()`ã¡ãœããã¯ãé³å£°åæããã»ã¹ãéå§ããããã«äœ¿çšãããŸããåŒæ°ãšããŠ`SpeechSynthesisUtterance`ãªããžã§ã¯ããåããŸãã
- ãã©ãŒã«ããã¯ïŒ Web Speech APIããµããŒããããŠããªãå Žåãã³ãŒãã¯ãŠãŒã¶ãŒã«éç¥ããããã®ãã©ãŒã«ããã¯ã¡ãã»ãŒãžãæäŸããŸããããã¹ãçã衚瀺ããããé³å£°é²é³ãžã®ãªã³ã¯ãæäŸããããããªã©ãã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããããã®ä»£æ¿æ¹æ³ãæ€èšãããšããã§ãããã
é³å£°åºåã®ã«ã¹ã¿ãã€ãº
Web Speech APIã¯ãç¹å®ã®ããŒãºã«åãããŠé³å£°åºåãã«ã¹ã¿ãã€ãºã§ããããŸããŸãªããããã£ãæäŸããŸãã
é³å£°ã®èšå®
ãŠãŒã¶ãŒã®ã·ã¹ãã ã§å©çšå¯èœãªé³å£°ã®ãªã¹ãããéžæã§ããŸãã以äžã«ãé³å£°ãååŸããŠèšå®ããæ¹æ³ã瀺ããŸãïŒ
window.speechSynthesis.onvoiceschanged = () => {
const voices = window.speechSynthesis.getVoices();
// Log the available voices
console.log(voices);
// Choose a specific voice (e.g., the first available voice)
msg.voice = voices[0];
// Or, choose a voice based on language and name
const englishVoice = voices.find(voice => voice.lang === 'en-US' && voice.name.includes('Google'));
if (englishVoice) {
msg.voice = englishVoice;
}
};
éèŠïŒ `voiceschanged`ã€ãã³ãã¯ãå©çšå¯èœãªé³å£°ã®ãªã¹ãã倿Žããããšãã«çºçããŸããææ°ã®ãªã¹ãã確å®ã«ååŸããããã«ããã®ã€ãã³ããã³ãã©å ã§é³å£°ãååŸããå¿ èŠããããŸãã
å©çšå¯èœãªé³å£°ã¯ããŠãŒã¶ãŒã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ããã©ãŠã¶ãããã³ã€ã³ã¹ããŒã«ãããŠããé³å£°åæãšã³ãžã³ã«ãã£ãŠç°ãªãããšã«æ³šæããŠãã ããã
é床ãããããé³éã®èª¿æŽ
以äžã®ããããã£ã䜿çšããŠãé³å£°åºåã®é床ãããããé³éã調æŽããããšãã§ããŸãïŒ
- rateïŒ è©±ãé床ã1ãéåžžã®é床ã0.5ãååã®é床ã2ã2åã®é床ã§ãã
- pitchïŒ å£°ã®ãããã1ãéåžžã®ãããã§ãã
- volumeïŒ é³å£°ã®é³éã1ãæå€§é³éã0ãç¡é³ã§ãã
msg.rate = 1.0; // Normal speaking rate
msg.pitch = 1.0; // Normal pitch
msg.volume = 1.0; // Maximum volume
ã€ãã³ãã®åŠç
Web Speech APIã¯ãé³å£°åæããã»ã¹ã®é²è¡ç¶æ³ãç£èŠã§ããããã€ãã®ã€ãã³ããæäŸããŸãïŒ
- onstartïŒ é³å£°åæãéå§ããããšãã«çºçããŸãã
- onendïŒ é³å£°åæãçµäºãããšãã«çºçããŸãã
- onerrorïŒ é³å£°åæäžã«ãšã©ãŒãçºçãããšãã«çºçããŸãã
- onpauseïŒ é³å£°åæãäžæåæ¢ããããšãã«çºçããŸãã
- onresumeïŒ é³å£°åæãåéããããšãã«çºçããŸãã
- onboundaryïŒ é³å£°åæãåèªãŸãã¯æã®å¢çã«éãããšãã«çºçããŸãã
msg.onstart = () => {
console.log('Speech synthesis started');
};
msg.onend = () => {
console.log('Speech synthesis finished');
};
msg.onerror = (event) => {
console.error('Speech synthesis error:', event.error);
};
é«åºŠãªãã¯ããã¯ïŒé³å£°åæããŒã¯ã¢ããèšèªïŒSSMLïŒ
é³å£°åºåãããé«åºŠã«å¶åŸ¡ããã«ã¯ãé³å£°åæããŒã¯ã¢ããèšèªïŒSSMLïŒã䜿çšã§ããŸããSSMLã¯XMLããŒã¹ã®ããŒã¯ã¢ããèšèªã§ãçºé³ã®æå®ãéïŒããŒãºïŒã®è¿œå ãåèªã®åŒ·èª¿ãé³å£°ã®å€æŽãªã©ãããã¹ãã«è©³çŽ°ãªæç€ºã远å ããããšãã§ããŸãã
泚æïŒ SSMLã®ãµããŒãã¯ããã©ãŠã¶ãé³å£°åæãšã³ãžã³ã«ãã£ãŠç°ãªããŸãã察象ã®ç°å¢ã§æåŸ ã©ããã«åäœããããšã確èªããããã«ãSSMLã³ãŒããååã«ãã¹ãããããšãéèŠã§ãã
SSMLã®äœ¿çšäŸ
Hello, my name is Alice .
I am going to read this sentence with emphasis.
And now, I will pause for three seconds.
SSMLã䜿çšããã«ã¯ãããã¹ãã`
msg.text = 'Hello, my name is Alice . ';
äžè¬çãªSSMLã¿ã°
- <speak>ïŒ SSMLããã¥ã¡ã³ãã®ã«ãŒãèŠçŽ ã§ãã
- <voice>ïŒ å²ãŸããããã¹ãã«äœ¿çšããé³å£°ãæå®ããŸãã
- <emphasis>ïŒ å²ãŸããããã¹ãã匷調ããŸãã`level`屿§ã¯`strong`ã`moderate`ããŸãã¯`reduced`ã«èšå®ã§ããŸãã
- <break>ïŒ éãæ¿å ¥ããŸãã`time`屿§ã¯ãç§ãŸãã¯ããªç§åäœã§ééãæå®ããŸãïŒäŸïŒ`time="3s"`ãŸãã¯`time="500ms"`ïŒã
- <prosody>ïŒ é³å£°ã®é床ãããããé³éãå¶åŸ¡ããŸãã`rate`ã`pitch`ã`volume`屿§ã䜿çšããŠãããã®ããããã£ã調æŽã§ããŸãã
- <say-as>ïŒ å²ãŸããããã¹ããã©ã®ããã«è§£éãã¹ãããæå®ããŸããäŸãã°ãé³å£°åæãšã³ãžã³ã«æ°å€ãæ¥ä»ãšããŠããŸãã¯åèªãã¹ãã«ãšããŠçºé³ããããã«æç€ºããããã«äœ¿çšã§ããŸãã
- <phoneme>ïŒ å²ãŸããããã¹ãã«çºé³èšå·ãæäŸããŸããããã¯ãçãããŸãã¯ææ§ãªçºé³ãæã€åèªã«äŸ¿å©ã§ãã
ãã©ãŠã¶ã®äºææ§ãšãã©ãŒã«ããã¯
Web Speech APIã¯ãChromeãFirefoxãSafariãEdgeãªã©ã®ææ°ã®ãã©ãŠã¶ã§åºããµããŒããããŠããŸããããããå€ããã©ãŠã¶ã§ã¯APIããµããŒããããŠããªãã£ãããæ©èœãå¶éãããŠããå ŽåããããŸãããã®ãããAPIããµããŒãããŠããªããã©ãŠã¶ã®ããã«ãã©ãŒã«ããã¯ãæäŸããããšãéèŠã§ãã
ãã©ãŠã¶ã®äºææ§ãåŠçããããã®ããã€ãã®æŠç¥ã以äžã«ç€ºããŸãïŒ
- æ©èœæ€åºïŒ `window`ãªããžã§ã¯ãã«`speechSynthesis`ããããã£ãååšãããã©ãããæ©èœæ€åºã§ç¢ºèªããŸããååšããªãå Žåã¯ãã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããããã®ä»£æ¿æ¹æ³ãæäŸããŸãã
- ããªãã£ã«ïŒ å€ããã©ãŠã¶ã«Web Speech APIã®å®è£ ãæäŸããããªãã£ã«ã©ã€ãã©ãªã®äœ¿çšãæ€èšããŸãããã ããããªãã£ã«ããã¹ãŠã®ãã©ãŠã¶ãé³å£°åæãšã³ãžã³ãšå®å šã«äºææ§ããããšã¯éããªãããšã«æ³šæããŠãã ããã
- 代æ¿ã®ã³ã³ãã³ãé ä¿¡ïŒ ããã¹ãçã®è¡šç€ºãé³å£°é²é³ãžã®ãªã³ã¯ã®æäŸããã£ãã·ã§ã³ä»ãã®ãããªã®æäŸãªã©ããŠãŒã¶ãŒãã³ã³ãã³ãã«ã¢ã¯ã»ã¹ããããã®ä»£æ¿æ¹æ³ãæäŸããŸãã
ã¢ã¯ã»ã·ããªãã£ã«é¢ããèæ ®äºé
Webé³å£°åæãå®è£ ããéã«ã¯ããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã誰ã«ãšã£ãŠãå©çšå¯èœã§ããããšãä¿èšŒããããã«ãã¢ã¯ã»ã·ããªãã£ã®ã¬ã€ãã©ã€ã³ãèæ ®ããããšãéèŠã§ãã
- æç¢ºãªã³ã³ãããŒã«ã®æäŸïŒ ãŠãŒã¶ãŒãé³å£°åæãç°¡åã«éå§ã忢ãäžæåæ¢ãåéã§ããããã«ããŸããã©ãã«ä»ãã®ãã¿ã³ãã¢ã€ã³ã³ãªã©ãæç¢ºã§çŽæçãªã³ã³ãããŒã«ã䜿çšããŸãã
- ããŒããŒãã¢ã¯ã»ã·ããªãã£ïŒ ãã¹ãŠã®ã³ã³ãããŒã«ãããŒããŒãã䜿çšããŠã¢ã¯ã»ã¹å¯èœã§ããããšã確èªããŸãã
- ARIA屿§ïŒ ARIA屿§ã䜿çšããŠãæ¯æŽæè¡ã«ã³ã³ãããŒã«ã«é¢ããæå³æ å ±ãæäŸããŸããäŸãã°ã`aria-label`屿§ã䜿çšããŠãã¿ã³ã«èª¬æçãªã©ãã«ãæäŸã§ããŸãã
- ã«ã¹ã¿ãã€ãºãªãã·ã§ã³ïŒ ãŠãŒã¶ãŒãåã ã®ããŒãºã«åãããŠé³å£°åºåãã«ã¹ã¿ãã€ãºã§ããããã«ããŸããäŸãã°ã話ãé床ãããããé³éã調æŽãããªãã·ã§ã³ãæäŸããŸãã
- æ¯æŽæè¡ã§ã®ãã¹ãïŒ ã¹ã¯ãªãŒã³ãªãŒããŒãªã©ã®æ¯æŽæè¡ã䜿çšããŠãŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ããã¹ãããé害ãæã€ãŠãŒã¶ãŒã«ãšã£ãŠã¢ã¯ã»ã·ãã«ã§ããããšã確èªããŸãã
ã»ãã¥ãªãã£ã«é¢ããèæ ®äºé
Webé³å£°åæã䜿çšããéã«ã¯ãæœåšçãªã»ãã¥ãªãã£ãªã¹ã¯ã«æ³šæããããšãéèŠã§ãã
- å ¥åæ€èšŒïŒ ã€ã³ãžã§ã¯ã·ã§ã³æ»æãé²ãããã«ãåžžã«ãŠãŒã¶ãŒå ¥åãæ€èšŒããŸããäŸãã°ããŠãŒã¶ãŒãèªã¿äžããããããã¹ããå ¥åã§ããããã«ããå Žåãæªæã®ããã³ãŒããåé€ããããã«å ¥åããµãã¿ã€ãºããããã«ããŠãã ããã
- ã¯ãã¹ãµã€ãã¹ã¯ãªããã£ã³ã°ïŒXSSïŒïŒ ãŠãŒã¶ãŒçæã³ã³ãã³ãã衚瀺ããéã«ã¯æ³šæãå¿ èŠã§ãããŠã§ããµã€ããã¢ããªã±ãŒã·ã§ã³ã®ã»ãã¥ãªãã£ã䟵害ããå¯èœæ§ã®ããæªæã®ããã³ãŒããå«ãŸããŠããå¯èœæ§ããããŸãã
- ããŒã¿ãã©ã€ãã·ãŒïŒ ãŠãŒã¶ãŒããŒã¿ãåéããã³åŠçããéã«ã¯ãGDPRãªã©ã®ããŒã¿ãã©ã€ãã·ãŒèŠå¶ã«æ³šæããŠãã ããã
å®çšäŸãšãŠãŒã¹ã±ãŒã¹
Webé³å£°åæã¯ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãæ¥çã§äœ¿çšã§ããŸãã
- Eã©ãŒãã³ã°ãã©ãããã©ãŒã ïŒ åŠçã«èŽèŠçãªåŠç¿äœéšãæäŸããŸããäžçäžã®åŠçããç¹ã«æ°ããèšèªãåŠç¿ããŠããå Žåãèªåå°é£ãªå Žåã«ãããã¹ãã®èªã¿äžããèãããšããæ©æµãåããããšãã§ããŸãã
- ãã¥ãŒã¹ãŠã§ããµã€ãïŒ ãŠãŒã¶ãŒãéå€äžããã«ãã¿ã¹ã¯äžã«ãã¥ãŒã¹èšäºãèŽãããšãå¯èœã«ããŸããæ±äº¬ã®ãŠãŒã¶ãŒãéå€éäžã«BBCã®ãã¥ãŒã¹èšäºãèŽãããšãæ³åããŠã¿ãŠãã ããã
- Eã³ããŒã¹ãµã€ãïŒ è£œåã®èª¬æãã¬ãã¥ãŒãé³å£°åœ¢åŒã§æäŸããŸãããã«ãªã³ã®ãŠãŒã¶ãŒã¯ãã¢ãã€ã«ããã€ã¹ã§ãã©ãŠãžã³ã°äžã«è£œåã®èª¬æãèŽãæ¹ãç°¡åã ãšæãããããããŸããã
- ã¢ã¯ã»ã·ããªãã£ããŒã«ïŒ èŠèŠé害ãèªåé害ãæã€å人ã®ããã®æ¯æŽæè¡ããŒã«ãäœæããŸããããã«ã¯ãå°ççãªå Žæãèšèªã®å£ã«é¢ä¿ãªããã°ããŒãã«ãªã¢ã¯ã»ã¹ãå«ãŸããŸãã
- ã€ã³ã¿ã©ã¯ãã£ãé³å£°å¿çïŒIVRïŒã·ã¹ãã ïŒ Webã¢ããªã±ãŒã·ã§ã³çšã®é³å£°å¶åŸ¡ã€ã³ã¿ãŒãã§ãŒã¹ãæ§ç¯ããŸããã ã³ãã€ã®äŒæ¥ã¯ãäžçäžããã¢ã¯ã»ã¹å¯èœãªã«ã¹ã¿ããŒãµããŒãããŒã¿ã«ã«ããã䜿çšã§ããŸãã
- èšèªåŠç¿ã¢ããªïŒ åŠç¿è ã®çºé³ãšçè§£ãæ¯æŽããŸããããšãã¹ã¢ã€ã¬ã¹ã®èšèªåŠç¿è ã¯ãTTSã䜿çšããŠã¹ãã€ã³èªã®çºé³ãåäžãããããšãã§ããŸãã
- ãªãŒãã£ãªããã¯ãšããããã£ã¹ãïŒ ããã¹ãããŒã¹ã®ãœãŒã¹ããé³å£°ã³ã³ãã³ãã®äœæãèªååããŸããäžçäžã®ç¬ç«ããèè ããèªåã®æ¬ã®ãªãŒãã£ãªçãããç°¡åã«äœæã§ããŸãã
çµè«
Webé³å£°åæã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®ã¢ã¯ã»ã·ããªãã£ãšãŠãŒã¶ãŒäœéšãå€§å¹ ã«åäžãããããšãã§ãã匷åãªæè¡ã§ããWeb Speech APIãšãã®æ©èœãçè§£ããããšã§ãäžçäžã®ãŠãŒã¶ãŒã®ããã«é åçã§å æ¬çãªäœéšãåµé ã§ããŸãããããžã§ã¯ãã«Webé³å£°åæãå®è£ ããéã«ã¯ãã¢ã¯ã»ã·ããªãã£ãã»ãã¥ãªãã£ããã©ãŠã¶ã®äºææ§ãåªå ããããšãå¿ããªãã§ãã ããã
Webæè¡ãé²åãç¶ããã«ã€ããŠãããã¹ãèªã¿äžãã®åéã§ã¯ããã«é«åºŠãªæ©èœãæåŸ ã§ããŸããææ°ã®éçºç¶æ³ãåžžã«ææ¡ããå°æ¥ã®ãããžã§ã¯ãã«ãã®æè¡ãçµ±åããå¯èœæ§ãæ¢æ±ããŠãã ããïŒ
é¢é£è³æ
- Mozilla Developer Network (MDN) Web Speech APIããã¥ã¡ã³ããŒã·ã§ã³
- W3C é³å£°åæããŒã¯ã¢ããèšèªïŒSSMLïŒããŒãžã§ã³1.1
- Google Cloud Text-to-SpeechïŒã¯ã©ãŠãããŒã¹TTSãµãŒãã¹ïŒ
- Amazon PollyïŒã¯ã©ãŠãããŒã¹TTSãµãŒãã¹ïŒ