【改訂版】Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk)

Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) の改訂版。 「open_jtalkのオプションが多く、スマートじゃないな」と思って調べたところ、 こちら にhtsvoiceに変換してできるとのことだったため、やってみた。 注意 Raspberry Pi上でやるのは非推奨。monoが容量が大きいため。 mono をインストール Mac の場合 brew install mono Ubuntuの場合 sudo apt-get update sudo apt-get install mono-devel 変換プログラムをダウンロード こちら より変換プログラムを拝借するし、ホームディレクトリに設置する。(wget不可。) # htsvconv の中に展開 cd ls htsvconv002.zip htsvconv002.zip mkdir ./htsvconv unzip ./htsvconv002.zip -d ./htsvconv cd ./htsvconv # コンパイル mcs htsvconv.cs # htsvconv.exe が作成されているかを確認 ls ./ config.txt htsvconv.cs htsvconv.exe test.bat Voice.htsvoices に変換 Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) の Voice_TYPE_betaディレクトリ配下に、 上で作った htsvconv.exe を設置する。 以下のようになるようにする。 pwd /home/ubuntu/Voice_TYPE_beta ls htsvconv.exe readme.txt Voice Voice.htsvoice 上記のようにできたら、htsvconv.exeを使って変換する。 mono htsvconv.exe Voice Voice.htsvoice dur.pdf: num_windows = 1 ntree = 1 is_msd = 0 stream_size = 5 vector_length= 5 npdf = { 639 } mgc.pdf: num_windows = 3 ntree = 5 is_msd = 0 stream_size = 1 vector_length=…

Raspberry Piにミクさんボイスでタイムラインをしゃべらせた(OpenJTalk)

Raspberry Piでやる意味があまりないのだけれど。 前提 以下を実行できるようにしておく。 Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) Raspberry Pi2でミクさんに喋らせてみた(Python + OpenJTalk) また、Twitter API関連の情報を入手しておく。 Twitter APIの利用方法 以下、ソースコード TwitterTalkクラスの、streamメソッドを使うとtwitter上からワードを検索してきてしゃべる。 userstreamメソッドを使うと、自分のタイムライン上が更新されるたびにしゃべる。 #coding: utf-8 import os import subprocess import random import time import re from datetime import datetime from tweepy.streaming import StreamListener, Stream from tweepy.auth import OAuthHandler from tweepy.api import API class Talk(object): “”” OpenJTalkを使ってテキストからwavファイル作成と音声出力をする。 “”” def create_wav(self, text): “”” テキストからwavファイルを作成する。 “”” file_name = self.create_filename() file_path = “/tmp/{}.wav”.format(file_name) open_jtalk = [“open_jtalk”] td = [“-td”, “/usr/share/hts-voice/miku/tree-dur.inf”] tf = [“-tf”, “/usr/share/hts-voice/miku/tree-lf0.inf”] tm = [“-tm”, “/usr/share/hts-voice/miku/tree-mgc.inf”] md = [“-md”, “/usr/share/hts-voice/miku/dur.pdf”] mf = [“-mf”, “/usr/share/hts-voice/miku/lf0.pdf”] mm = [“-mm”, “/usr/share/hts-voice/miku/mgc.pdf”] dm = [“-dm”, “/usr/share/hts-voice/miku/mgc.win1”] dm += [“-dm”, “/usr/share/hts-voice/miku/mgc.win2”] dm += [“-dm”, “/usr/share/hts-voice/miku/mgc.win3”] df = [“-df”, “/usr/share/hts-voice/miku/lf0.win1”] df += [“-df”, “/usr/share/hts-voice/miku/lf0.win2”]…

Raspberry Pi2でミクさんに喋らせてみた(Python + OpenJTalk)

昨日のシェルスクリプトをPythonで実行させただけ。 前提 Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) を設定済み。 LinuxMint(Ubuntu) pyenvをホームディレクトリに構築 でPythonの環境構築した。 以下コード #coding: utf-8 import subprocess from datetime import datetime class Talk(object): def create_wav(self, text): open_jtalk = [“open_jtalk”] td = [“-td”, “/usr/share/hts-voice/miku/tree-dur.inf”] tf = [“-tf”, “/usr/share/hts-voice/miku/tree-lf0.inf”] tm = [“-tm”, “/usr/share/hts-voice/miku/tree-mgc.inf”] md = [“-md”, “/usr/share/hts-voice/miku/dur.pdf”] mf = [“-mf”, “/usr/share/hts-voice/miku/lf0.pdf”] mm = [“-mm”, “/usr/share/hts-voice/miku/mgc.pdf”] dm = [“-dm”, “/usr/share/hts-voice/miku/mgc.win1”] dm += [“-dm”, “/usr/share/hts-voice/miku/mgc.win2”] dm += [“-dm”, “/usr/share/hts-voice/miku/mgc.win3”] df = [“-df”, “/usr/share/hts-voice/miku/lf0.win1”] df += [“-df”, “/usr/share/hts-voice/miku/lf0.win2”] df += [“-df”, “/usr/share/hts-voice/miku/lf0.win3”] dl = [“-dl”, “/usr/share/hts-voice/miku/lpf.win1”] ef = [“-ef”, “/usr/share/hts-voice/miku/tree-gv-lf0.inf”] em = [“-em”, “/usr/share/hts-voice/miku/tree-gv-mgc.inf”] cf = [“-cf”, “/usr/share/hts-voice/miku/gv-lf0.pdf”] cm = [“-cm”, “/usr/share/hts-voice/miku/gv-mgc.pdf”] k = [“-k”, “/usr/share/hts-voice/miku/gv-switch.inf”] s = [“-s”, “16000”] a = [“-a”, “0.05”] u = [“-u”, “0.0”] jm…

Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk)

【改訂版】Raspberry Pi2でミクさんに喋らせてみた(OpenJTalk) https://wp.me/p686Z2-lZ の方がいい。 ラズパイに接続するまでの設定は省く。 音量調整 [shell] $ alsamixer # ↑キーを押して音量を100%にし、escapeキーを押す。 # ミキサーが保持しているコントロールリストを表示している $ amixer controls numid=3,iface=MIXER,name=’PCM Playback Route’ numid=2,iface=MIXER,name=’PCM Playback Switch’ numid=1,iface=MIXER,name=’PCM Playback Volume’ numid=5,iface=PCM,name=’IEC958 Playback Con Mask’ numid=4,iface=PCM,name=’IEC958 Playback Default’ # 上で確認した「PCM Playback Route」の出力先をアナログ端子出力にする。 # 1 がアナログ端子。2がHDMI。0が自動。 $ amixer cset numid=3 1 numid=3,iface=MIXER,name=’PCM Playback Route’ ; type=INTEGER,access=rw——,values=1,min=0,max=2,step=0 : values=1 # 上で確認した「PCM Playback Volume」のボリュームを指定する $ amixer cset numid=1 50% numid=1,iface=MIXER,name=’PCM Playback Volume’ ; type=INTEGER,access=rw—R–,values=1,min=-10239,max=400,step=0 : values=-4918 | dBscale-min=-102.39dB,step=0.01dB,mute=1 # 上記設定を保持する sudo alsactl store [/shell] OpenJTalkと関連パッケージをインストール [shell] sudo apt-get install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001 vim [/shell] ミクさんのサンプルデータをダウンロードしてRaspberry Piに転送 こちら からサンプルデータを拝借した。違いがわからなかったのでβ。 Yahoo!Boxからwgetやcurlができなかったため、一度Macにダウンロード。 Downloads ディレクトリに展開して Voice TYPE-β ディレクトリ から Voice_TYPE_beta ディレクトリにリネーム。(文字化けするため) 転送方法はMacの場合。 [shell title=”Mac側”] $ cd ~/Downloads $ scp -r ./Voice_TYPE_beta pi@raspberrypi.local:~ Password: raspberry…