第2回では
HTML5でTTS(Text To Speech)をやってみたいと思います。
Text To Speechとはテキストを音声合成で読みあげる機能のことです。
ゆっくりボイスで有名なSofTalkやJulius APIとかが有名です。
HTML5ではWeb Speech APIというものを使うことで
ブラウザ機能で読み上げることができるようになりました

今回使う全ソースコードは次からダウンロードできます。
filetts.html

speakボタンでローマ字入力した日本語をしゃべります。
tts.png

全ソースコードは以下となります

<!DOCTYPE html>
<!-- saved from url=(0065)http://html5-examples.craic.com/google_chrome_text_to_speech.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>Web speech API によるText to Speech</title>
 <script type="text/javascript">

    var voices = [];

    window.onload=function() {
       voices = window.speechSynthesis.getVoices();
       for(var i = 0; i < voices.length; i++ ) {
           console.log("Voice " + i.toString() + ' ' + voices[i].name);
       }     
   };
      
   function speak() {
       var u = new SpeechSynthesisUtterance();
       u.lang = 'ja-JP';
       u.text = document.getElementById('text').value; // しゃべる内容、日本語はローマ字で入力
//          u.pitch = 1;
//          u.rate = 1;
//          u.volume = 1;
       speechSynthesis.speak(u);
   }
 </script>

</head>
<body>
 
 <h2>Text to Speech</h2>

 <input type="text" id="text" value="konnnichiwa"/><br/>
 <input type="button" id="tts" value="Speak" onClick="speak()"/>

</body>
</html>

注意点はローマ字入力でないと日本語がしゃべれないということです。
後、いまんとこ声のバリエーションがありません。
ちゃんとした日本語しゃべらせたいよーという人は
日本語→ローマ字変換するYahooのWeb APIが用意されています
(1日のリクエスト回数に上限はありますが)
http://developer.yahoo.co.jp/webapi/jlp/furigana/v1/furigana.html
興味がある人はチャレンジしてみてください。

選択肢 投票
0  
0  
× 0  

添付ファイル: filetts.png 349件 [詳細] filetts.html 463件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-05-04 (日) 14:22:13