Ubuntu Weekly Recipe

第427回 Twitterクライアントのmikutterに日本語を話してもらおう(後編)

この記事を読むのに必要な時間:およそ 3 分

今回は前回に引き続き,mikutterに関するレシピをお届けします。mikutterプラグインを書き,タイムラインにツイートが増える度に,その内容を音声出力するようにします。

プラグインの概要

本連載の第250回第251回では,日本語テキストから音声を合成し,サウンドサブシステムから出力しました。これらを処理するPython 2スクリプトを用意したわけですが,今回はこれをRubyに移植し,mikutterプラグインとして利用可能にします。

処理内容などはほぼ前回を踏襲します。すなわち,日本語テキストをMeCabを使って形態素解析し,辞書から発音を取得します。その結果を利用してMbrola向けに音素リストを作成し,mbrolaコマンドを使って音声を合成します。音声データはaplayを使ってサウンドサブシステムに出力します。

MeCabとMbrolaに関しては,本連載の第250回第251回を参照してください。

MeCabと辞書の準備

まずは,RubyスクリプトからMeCabを使えるようにします。MeCabにはRubyバインディングがあり,Ubuntuでは「ruby-mecab」パッケージとしてインストール可能です。以下のコマンドを実行し,インストールしてください。依存関係で,MeCab本体のパッケージもインストールされます。

$ sudo apt-get install ruby-mecab

次にMeCabが利用する辞書をインストールします。今回も「mecab-naist-jdic」を利用します。以下のコマンドを実行し,インストールしてください。

$ sudo apt-get install mecab-naist-jdic

システム上に辞書が複数存在する可能性があるため,第251回のAlternativeを使う手順に従って,デフォルトで使われる辞書を確認してください。

$ sudo update-alternatives --config mecab-dictionary
alternative mecab-dictionary (/var/lib/mecab/dic/debian を提供) には 2 個の選択肢があります。

  選択肢    パス                               優先度  状態
------------------------------------------------------------
* 0            /var/lib/mecab/dic/naist-jdic         100       自動モード
  1            /var/lib/mecab/dic/naist-jdic         100       手動モード
  2            /var/lib/mecab/dic/naist-jdic-eucjp   90        手動モード

現在の選択 [*] を保持するには <Enter>,さもなければ選択肢の番号のキーを押してください:

これで,RubyスクリプトからMeCabを利用する準備が整いました。実際に利用できるかどうかを確認するために,以下のサンプルを実行してください。

#!/usr/bin/ruby

require 'MeCab'

msg = 'やあ、こっちに来ておくれよ、と彼は言う。'

tokenizer = MeCab::Tagger.new('-Owakati')
result = tokenizer.parseToNode(msg)

while result = result.next do
  p(result.surface, result.feature)
end

以下のような出力が得られたら成功です。

$ ./sample.rb
"やあ"
"感動詞,*,*,*,*,*,やあ,ヤア,ヤー,,"
"、"
"記号,読点,*,*,*,*,、,、,、,,"
"こっち"
"名詞,代名詞,一般,*,*,*,こっち,コッチ,コッチ,,"
"に"
"助詞,格助詞,一般,*,*,*,に,ニ,ニ,,"
"来"
"動詞,自立,*,*,カ変・来ル,連用形,来る,キ,キ,き/来,"
"て"
"助詞,接続助詞,*,*,*,*,て,テ,テ,,"
"おくれよ"
"動詞,自立,*,*,一段,命令yo,おくれる,オクレヨ,オクレヨ,おくれよ/後れよ/遅れよ,"
"、"
"記号,読点,*,*,*,*,、,、,、,,"
"と"
"助詞,格助詞,引用,*,*,*,と,ト,ト,,"
"彼"
"名詞,代名詞,一般,*,*,*,彼,カレ,カレ,,"
"は"
"助詞,係助詞,*,*,*,*,は,ハ,ワ,,"
"言う"
"動詞,自立,*,*,五段・ワ行促音便,基本形,言う,イウ,イウ,いう/云う/言う/謂う,"
"。"
"記号,句点,*,*,*,*,。,。,。,,"
""
"BOS/EOS,*,*,*,*,*,*,*,*"

著者プロフィール

坂本貴史(さかもとたかし)

Ubuntuのマルチメディア編集環境であるUbuntu Studioのユーザ。主にUbuntu日本コミュニティとUbuntu Studioコミュニティで活動。いつかユーザ同士で合作するのが夢。

コメント

コメントの記入