JavaScriptでGoogleを使い音声読み上げ

Google翻訳の機能を利用して音声合成をする方法について簡単にまとめます。
音声読上げについては以前にも紹介したことがありますが、英語のみでした。今回の方法は日本語もOKです。

「http://translate.google.com/translate_tts」に、tl(言語)とq(文字列)を指定し、Audioオブジェクトとして再生します。
次の例は英語で「Good morning」と読み上げます。

var obj;
obj = new Audio("http://translate.google.com/translate_tts?tl=en&q=Good+morning");
obj.play();

次の例は日本語で「Good morning」と読み上げます。
変数を使ってみました。
英語はかなり本物っぽいのですが、日本語は訛っているというか、何というか、改善の余地がありそうです。

var tl, q, obj, url;
tl = "ja";
q = "Good+morning";
obj = new Audio(url + "?tl=" + tl + "&q=" + q);
obj.play();

次の例は日本語で「おはようございます」を読ませます。
日本語の文字列はエンコードする必要があります。

var tl, q, obj, url;
tl = "ja";
q = encodeURIComponent("おはようございます");
url = "http://translate.google.com/translate_tts";
obj = new Audio(url + "?tl=" + tl + "&q=" + q);
obj.play();

サンプルを載せておきます。リンク先を開くといきなり音声が出ますので注意してください。
読み上げサンプル

2016年11月20日追記
Googleの仕様の変更で使えなくなったようです。

コメント

タイトルとURLをコピーしました