Speech Synthesis API とは何ぞ?
指定テキストを音声再生させることができるよ!
JavaScriptでブラウザがあれば実行できるよ!
※対応しているブラウザ一覧はこちらを参照。
使ってみる
ブラウザ | OS |
---|---|
Vivaldi | macOS Sierra |
とりあえずF12で開発者ツールを開いて以下を入力する。
var text = "うんこはお尻から出てくるらしいよ!";
var ss = new SpeechSynthesisUtterance(text);
speechSynthesis.speak(ss);
たったこれだけで合成音声が使える。
世の中便利になったもんだなぁ。
まず、この2つを抑えておけば大丈夫そう。
・SpeechSynthesisUtterance
・speechSynthesis
SpeechSynthesisUtterance
速度やピッチ、言語などの属性を設定できる。
設定出来る属性一覧。
属性 | 説明 |
---|---|
text | 読み上げる文字列をセット |
lang | 言語をセット |
voiceURI | 声の種類をセット |
volume | 音量の調整 |
rate | 速さの調整 |
pitch | ピッチの調整 |
具体的な属性値はこちらを参照。
speechSynthesis
受け取ったSpeechSynthesisUtteranceオブジェクトを元に音声を合成する。
渡されたオブジェクトはキューに追加され、キューがなくなるまで喋るらしい。
メソッドはこんな感じ。
メソッド | 説明 |
---|---|
speak | キュー追加 |
cancel | 全キュー削除 |
pause | 一時停止 |
resume | 再開 |
まとめ
イメージとしては、
speechSynthesisはCDプレイヤーで、
SpeechSynthesisUtteranceはCDって感じかな。
現実は、CDをプレイヤーにどんどん突っ込めないから良い子は真似しないでね!
var ss = new SpeechSynthesisUtterance();
ss.text = "先生は空中回転しながらうんちをした。";
ss.lang = "ja-JP";
ss.voiceURI = "Google 日本人";
ss.volume = 1;
ss.rate = 1;
ss.pitch = 1;
speechSynthesis.speak(ss);
JavaScriptでできるし、
AnnictのAPI使えば、今日の放送アニメ一覧読み上げてくれるモノもつくれるね!