それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

MacOSXのSayコマンドをRaspberryPiやLinuxでやろう。

Raspberry Pi がおしゃべりしたら、子供がわくわくするんじゃないかと思いました。

Mac OSX にはSayコマンドがあって、それと同じことができたらいいなと。

OSX の say コマンド

say Hello

これだけで、OSXが喋ってくれる。声は、システム環境設定の読み上げから行けば大丈夫。

raspberry Pi でどうする?

google の音声読み上げと、mplayer を組み合わせでればいけるようです。

Google に TTS が用意されていて、指定アドレスにアクセスすれば、音声読み上げしてくれる。

http://translate.google.com/translate_tts?tl=en&q=Hello%20World

これで、音の確認をして、これをmplayer で再生すればいい

Raspberry Pi にSSHでアクセスしターミナルから次を実行。

mplayer 'http://translate.google.com/translate_tts?tl=en&q=Hello%20World'

mplayer は apt-line からインストール出来る

sudo aptitude install mplayer

あとは、この2つ(google tts と mplayer )を組み合わせて、関数にすれば完成。

raspberry piや Linuxで Sayコマンドを作って喋らせよう。

function say { mplayer "http://translate.google.com/translate_tts?tl=en&q=$1"; }

このコマンドでbash に say コマンドが追加される。

あとは、これを .bashrc に追記して。

echo 'function say { mplayer "http://translate.google.com/translate_tts?tl=en&q=$1"; }' >> ~/.bashrc

動かしてみよう

say hello

これで、英語についてはこれで行ける。

じゃぁ日本語は?

Googleは、日本語も用意してくれている。やったね。

function say { mplayer "http://translate.google.com/translate_tts?tl=ja&q=$1"; }

tl=en の部分をtl=ja に変えるだけ。楽ちん!

say こんにちは

たのしいね。

子供だけじゃなく、いい年こいた私もワクワクしてます。

追記:日本語関係

Google日本語TTSはUser-agent制限があるらしく、mplayerUAをブラウザに設定する必要があった。

~/.mplayer/config にUserAgentを切り替えを書いておけば動くようだ。

以下のコマンドでUserAgentを追加する。

echo "user-agent='Mozilla/5.0 (X11; Linux i686; rv:10.0.4) Gecko/20100101 Firefox/10.0.4'" >> ~/.mplayer/config

追加:アニメ声

GoogleのTTSだけじゃ無味乾燥なので、アニメキャラっぽいほうが素敵

say

#!/usr/bin/env ruby
# coding:utf-8
require 'open-uri'
require 'json'
require 'base64'

str = ARGV.shift
uri = "http://rospeex.ucri.jgn-x.jp/nauth_json/jsServices/VoiceTraSS?method=speak&params[]=ja&params[]=#{URI.encode(str)}&params[]=*&params[]=audio/x-wav&_=1386261073492"
obj = JSON.parse(open(uri).read)
data = obj["result"]["audio"]
open("#{str}.wav", "w"){|f| f.write(Base64.decode64(data)) }

`mplayer  '#{str}.wav' `
`rm  '#{str}.wav' `
say あかん

「あかん」のアクセントが気にいった。

参考資料

参考資料というか、元ネタ。

http://jacobsalmela.com/raspberry-pi-and-the-say-command-from-osx-how-to-make-your-pi-speak-at-will/

http://qiita.com/tesujiro/items/997a0dac2f7b5d645499

http://komeisugiura.jp/software/software_jp.html