Raspberry Pi でミクにしゃべらせよう

Raspberry Pi でミクにしゃべらせようぱわふる回路の知識いるんかと思ってスルーしてたけど、最近そうでもないことに気づいて購入しました。

買ったのは↓の通り
「Raspberry Pi Type B 512MB」
Raspberry Pi Type B 512MB

「SanDisk サンディスク SDHCカード 16GB(SD 16GB) Extreme HD Video 45MB/秒 並行輸入品 海外パッケージ品」
SanDisk サンディスク SDHCカード 16GB(SD 16GB) Extreme HD Video 45MB/秒  並行輸入品 海外パッケージ品

「iBUFFALO 【iPhone5対応】USB充電器(ACアダプタ) 1ポートタイプ 平型 ブラック BSIPA02BK」
iBUFFALO 【iPhone5対応】USB充電器(ACアダプタ) 1ポートタイプ 平型 ブラック BSIPA02BK

「Amazonベーシック USB2.0ケーブル 1.8m (タイプAオス- マイクロタイプBオス)」
Amazonベーシック USB2.0ケーブル 1.8m (タイプAオス- マイクロタイプBオス)

「PLANEX USB→3.5mmヘッドホン/マイク端子 USBオーディオ変換アダプタ PL-US35AP」
PLANEX USB→3.5mmヘッドホン/マイク端子 USBオーディオ変換アダプタ PL-US35AP

「ELECOM USBハブ USB2.0対応 ACアダプタ付 セルフ・バスパワー両対応 4ポート ホワイト U2H-EG4SWH」
ELECOM USBハブ USB2.0対応 ACアダプタ付 セルフ・バスパワー両対応 4ポート ホワイト U2H-EG4SWH

とりあえず↓のクイックスタートガイド通りやれば動きます。
http://www.raspberrypi.org/quick-start-guide

日本語なら「Raspberry Pi を始める (NOOBSで)」が参考になるかな。

USBオーディオ変換アダプタ「PL-US35AP」の音の出し方は「Raspberry PiとUSBオーディオ」を参考にさせてもらいました。

その後やったことは
「Rsapberry PiのIPアドレスの固定化(ルータの設定)」
「sudo apt-get install ibus-anthy」
「デフォルトのエディタをvimに変更」
「Perlのアップデート(plenvとcpanmのインストール)」
「KyTea(京都テキスト解析ツールキット)のインストール」(読み推定の機能が使えるかな?と思って)
とか。

Raspberry PiをしゃべらせるためのOpen JTalkのインストールは「Raspberry Piに喋らせる」を参考にさせてもらいました。
↑では「MMDAgent_Example-1.3.zip」になっていますが、現在では「MMDAgent_Example-1.3.1.zip」が利用可能です。
jsayコマンドのシェルスクリプトも公開されているので、TMPのところを「TMP=mktemp -t」に変更して「/usr/local/bin/」に入れときました。
(固定のファイル名だとほとんど同時にjsayを実行した場合にまずいことになる)

初音ミクの声のダウンロードは「http://cube370.wiki.fc2.com/wiki/%E8%87%AA%E4%BD%9C%E9%9F%B3%E9%9F%BF%E3%83%A2%E3%83%87%E3%83%AB」からできます。
これをダウンロードして、メイちゃんの声(MMDAgent-Exampleのを解凍したらある)に上書きすれば初音ミクの声がOpen JTalkでも使えます。

何をしゃべらせるかですが、とりあえず現在時刻と天気をしゃべらせるスクリプトを書いて見ました。
こういうのがパパっと書けると情報系で良かったと思えますね。

現在時刻をしゃべるスクリプト↓

天気をしゃべるスクリプト↓

これらをcronに登録しておくと、時報鳴らしたり、朝食食べながら天気予報聞けたりできます。

GoogleカレンダーとかGmailとかもしゃべらせたいですね。

cronではplenv関連で少しハマったけど、echo $PATHで出てくるのを「PATH=hogehoge」みたいな形でcronの設定ファイルの最上部に書いたら上手く動きました。

ちなみに声は↓のような感じ
ミクのType-βの声がかわいいですな。

これからRaspberry Piで遊びたい人は「これからRaspberry Piをいじる方向けの資料」という資料がいい感じですかね。


「Raspberry Pi でミクにしゃべらせよう」への11件のフィードバック

  1. はじめまして。
    お茶太郎と申します。

    Linux、プログラミングの知識が全くないのですが、
    ひょんなことからRaspberryPiに興味を持ち、
    いろいろ勉強しながら、遊んでおります。

    pawaさんのブログを拝見し、是非天気予報の読み上げを
    やってみたいと思い挑戦中です。

    で、早速ですが、parlの部分でつまづいてしまいました。

    もし、ご迷惑でなければ、下記の具体的な入力コマンドを
    教えていただくことは可能でしょうか?
      「Perlのアップデート(plenvとcpanmのインストール)」

    本当に、知識ゼロからはじめているもので、お恥ずかしいのですが。。。
    申し訳ないのですが、よろしかったらご享受のほどよろしくお願いします。

    1. はじめまして!

      Raspberry Pi に最初から入っているPerlでも出来ると思いますので、
      「Perlのアップデート(plenvとcpanmのインストール)」は必須ではないです。
      そこそこの知識が要求されるので最初から入っているPerlでやりましょう。

      あとはCPANモジュールというPerlのライブラリを複数利用しているので、それらをインストールするためにcpanコマンドを使えなければなりません。普通はPerlと一緒にcpanコマンドも最初から入っている(はずな)ので、以下のコマンドを実行していけば天気予報のスクリプトも動くと想います。

      cpan を実行したら 「cpan[1]>」みたいなのが端末に出てくるので、
      そこから↓のコマンドを実行していきます。

      cpan>install Time::Piece
      cpan>install WebService::Livedoor::Weather
      cpan>install use Data::Printer

      天気予報のスクリプトの「use Data::Printer;」を「#use Data::Printer;」に変更すれば「cpan>install use Data::Printer」は実行しなくても天気予報のスクリプトは動きます。
      (cpan>install use Data::Printer は時間がかかるので、「#use Data::Printer;」に変更することをオススメします)

      「KyTea(京都テキスト解析ツールキット)のインストール」は、結局KyTeaを使っていないので、しなくてOKです。

      おそらく「cpan>install WebService::Livedoor::Weather」を実行してから途中でcpanが自動でインストールしようとしてくれるXML::Parserのインストールでエラーが出ると思いますが、その場合は「sudo apt-get install libexpat1-dev」して再度「cpan>install WebService::Livedoor::Weather」すればインストールできます。

      jsayコマンドが使えてここまでできれば 「perl スクリプトの名前」で実行できます。

      天気をしゃべるスクリプトの10行目の「170010」のままでは石川県の天気予報になってしまいますので、
      http://weather.livedoor.com/forecast/rss/primary_area.xml
      から地域別に定義されたID番号を探す必要があります。

      何か不明な点があれば気軽にどうぞ!

      1. コピー&ペーストで失敗しました。^^;
        「cpan>install use Data::Printer」は
        「cpan>install Data::Printer」に
        置き換えてください。orz

  2. こんばんはー

    ご回答、ありがとうございます。

    ただいま、「WebService::Livedoor::Weather」をインストール中です。

    Parlにはライブラリ管理用のモジュールがあるんですね。
    Parlなんて、公開されているソースを利用するくらいしかいじったことが、無かったのです。とても勉強になりました。

    おっ・・・・
    インストールが終わりました。

    とりあえず、エラーなく読み上げは終了いたしましたが、音声出始めが、
      ・声が小さい。
      ・取りれ途切れ。
    というような状況です。
    CPUが処理でしきれていないような気もします。

    少し、調整してみることとします。

    とにかく。。。
    天気予報データの取得はできるようになりました。
    有難うございました!!

    RaspberryPiは、楽しいし勉強になるので、これからもいろいろいじってみたいと思います。

  3. CPANのないPerlはマーガリンを塗っていない食パンみたいなものですね。
    CPANには「WebService::Livedoor::Weather」のような便利なものが腐るほどあるので、
    いろいろ検索すると面白いです。
    検索する際は最近ならmetacpanというWebサイトがオススメです。

    声が途切れ途切れになったりする件は電源周りが怪しいです。
    私のも同じ電源タップ上の外付けHDDの動きが変わっただけで、
    おかしな音声が出力されましたので・・・。(汗)

  4. こんばんは

    音声が切れる現象ですが、電源代えてみましたが改善できませんでした。

    同じ部分で、切れたり、音声が小さくなったりしています。
     (途中から音が大きくなります)

    読み上げる文章が長すぎると起きる現象のような気がします。

    そこで、
      ・句点で改行をする。
      ・改行した予報をテキストファイルに吐き出す。
      ・1行単位に読み込み(別テキストファイルに吐き出し)、読み上げる
    という処理にしようかと考えています。

    Parlでテキストファイルに吐き出すところまでできたので、シェルスクリプトで、最後の処理をさせようかと思います。

    今日は、もう遅いので続きは日を改めて挑戦します。

    また、結果報告させていただきますね。
    どうも、ありがとうございました。

    1. こんにちは。
      ぬぅ、そうですかぁ。
      私の環境では安定しているので、ハードウェア的な問題ですかね。
      また何かあれば気軽にコメントをどうぞ!

  5. ピンバック: ORBIT SPACE

コメントを残す

メールアドレスが公開されることはありません。