読者です 読者をやめる 読者になる 読者になる

1.21 jigowatts

Great Scott!

【CentOS 7】 Open JTalkをインストールしてみた

Linux

概要

Slackに書き込んだメッセージをOpen JTalkでBotにしゃべらせたい!!

www.moyashi-koubou.com

この記事を読んで完全に影響を受けましたね。
調べてみると多くの先人方がRaspberry Piで実装してますが、残念ながら持っていないので手元にあったCentOSにOpen JTalkをインストールしてみます。

Open JTalkとは

入力された日本語テキストに基づいて自由な音声を生成するHMMテキスト音声合成システム

http://open-jtalk.sp.nitech.ac.jp

こちらのサイトを参考にさせていただき、バージョンを変えるだけで簡単にできました!*1

パッケージ管理にporg

porgというパッケージ管理ツールがあると良さそうなので、まずはこちらを参考にインストールしてみます。

ダウンロード

以下からporg-0.10.tar.gzをダウンロード。ちなみに以降のファイルのダウンロードはすべて/home/{user}/ダウンロードへ行い、ここを起点とします。
https://sourceforge.net/projects/porg/files/

インストール

/usr/local/src/へ解凍し、管理者権限でインストール。

# tar zxf ./porg-0.10.tar.gz -C /usr/local/src/
# cd /usr/local/src/porg-0.10/
# ./configure --prefix=/usr/local --disable-grop
# make
# make install

hts-engine api

次にOpen JTalkの実行環境としてhts_engine APIというものが必要らしいので用意。

ダウンロード

以下からhts_engine_API-1.10.tar.gzをダウンロード。
https://sourceforge.net/projects/hts-engine/files/hts_engine%20API/

インストール

解凍して、ビルド。

$ tar zxvf hts_engine_API-1.10.tar.gz -C ~/src/open_jtalk/
$ cd /home/{user}/src/open_jtalk/hts_engine_API-1.10
$ ./configure
$ make

先ほど入れたパッケージ管理ツール『porg』でインストール。progと何度かタイプミスして実行しちゃったのでここ注意ね!

$ sudo /usr/local/bin/porg -lp hts_engine_api-1.10 "make install"
$ sudo /usr/local/bin/porg -f hts_engine_api-1.10
hts_engine_api-1.10:
/usr/local/bin/hts_engine
/usr/local/include/HTS_engine.h
/usr/local/lib/libHTSEngine.a

Open JTalk

ようやく本命です。ここまで時間はそれなりにかかってますがあと一息!

ダウンロード

以下からopen_jtalk-1.09.tar.gzをダウンロード。
https://sourceforge.net/projects/open-jtalk/files/Open%20JTalk/

インストール

解凍してビルド。

$ tar zxvf open_jtalk-1.09.tar.gz -C /home/{user}/src/open_jtalk/
$ cd /home/{user}/src/open_jtalk/open_jtalk-1.09
$ ./configure --with-charset=UTF-8
$ make

porgでインストール。

$ sudo /usr/local/bin/porg -lp open_jtalk-1.09 "make install"
$ sudo /usr/local/bin/porg -f open_jtalk-1.09
open_jtalk-1.09:
/usr/local/bin/open_jtalk
/usr/local/dic/char.bin
/usr/local/dic/matrix.bin
/usr/local/dic/sys.dic
/usr/local/dic/unk.dic

必要なファイル

あとは終わったも同然。辞書と音声ファイルが必要ということでそれぞれのディレクトリを用意。

# mkdir /usr/local/share/open_jtalk
# mkdir /usr/local/share/hts_voice

辞書

以下よりopen_jtalk_dic_utf_8-1.09.tar.gzをダウンロード。
https://sourceforge.net/projects/open-jtalk/files/Dictionary/open_jtalk_dic-1.09/
用意した辞書用ディレクトリに解凍。

# tar zxvf open_jtalk_dic_utf_8-1.09.tar.gz -C /usr/local/share/open_jtalk/

音声ファイル

以下よりhts_voice_nitech_jp_atr503_m001-1.05.tar.gzをダウンロード。
https://sourceforge.net/projects/open-jtalk/files/HTS%20voice/hts_voice_nitech_jp_atr503_m001-1.05/
用意した音声ファイル用ディレクトリに解凍。

# tar zxvf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz -C /usr/local/share/hts_voice/

しゃべらせる

すべての準備が整いました。

text.txtを作成しUTF-8で保存。

ワタシ日本語チョットデキル

open_jtalkに辞書、音声ファイルを指定して、テキストファイルをwav形式に変換します。カレントディレクトリにoutput.wavができてればOK♪

$ open_jtalk -m /usr/local/share/hts_voice/hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice -ow output.wav -x /usr/local/share/open_jtalk/open_jtalk_dic_utf_8-1.09/ text.txt 

再生

$ aplay output.wav 

できたーヾ(*´∀`*)ノ
次はSlackと連携させてみるぞい!

*1:詳細は参考サイト様をご覧ください!

【PowerShell】 プロンプトの表示を変更する

Windows

概要

うわぁぁぁ、ながい!

f:id:sh_yoshida:20161220125644p:plain

浅い場所をウロウロしている分にはいいけど、さすがに深い階層になってくると鬱陶しいのでデフォルトのプロンプト表示を変更しよう。

環境

Windows Server 2012 R2 Datacenter(Microsoft Azure)

プロファイルの確認

プロンプト文字列を変更するにはプロファイルにprompt関数を書いておけばいいらしいので、プロファイルの場所を確認してみます。

> $profile
C:\Users\{User}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

で、実際にこのファイルがないので混乱します()

ファイルは実際に存在する必要はなく、既定では存在しません。Windows PowerShell を起動したときにプロファイルを実行する必要がある場合は、このファイルを作成する必要があります。

https://technet.microsoft.com/ja-jp/scriptcenter/powershell_owner06.aspx

プロファイルは存在しなかった!

プロファイルの作成

つーことで、作成しましょう。New-Item コマンドレットで一発作成♪

> New-Item -path $profile -type file -force

promt関数を書いて保存します。

Microsoft.PowerShell_profile.ps1

# プロンプトの表示をカレントディレクトリだけにする
function prompt () {
  (Split-Path (Get-Location) -Leaf) + " > "
}

# ついでに起動時の初期位置も指定する
Set-Location C:\Go\Projects\src

Visual Studio for Mac をインストールしてHello World!

C# Mac Visual Studio

概要

だいぶ乗り遅れましたが、Visual Studio for Macをインストールして.NET CoreのコンソールアプリでHello World!までやってみました。

f:id:sh_yoshida:20161215070253g:plain

環境

macOS Sierra バージョン 10.12.1

ダウンロードは以下から。
https://www.visualstudio.com/vs/visual-studio-mac/

f:id:sh_yoshida:20161215055518p:plain

ダウンロードが完了したら、インストーラーを起動します。

f:id:sh_yoshida:20161215060349p:plain

インストール

流れるような動作でインストール(スクリーンショット貼っておきます)。
f:id:sh_yoshida:20161215060713p:plain
f:id:sh_yoshida:20161215060733p:plain
f:id:sh_yoshida:20161215060748p:plain
f:id:sh_yoshida:20161215060848p:plain
f:id:sh_yoshida:20161215060810p:plain
少し時間がかかりそうだったので放置(開始したのが夜)して寝ましたzzz
で、朝起きたらエラー...
f:id:sh_yoshida:20161215061127p:plain
その後、最小構成にして2,3回やり直してみたけど毎回Android SDKのダウンロードの途中で止まっちゃう!
f:id:sh_yoshida:20161215062128p:plain
さらにしつこくやり直して(5回目くらいで)やっとインストールできましたhehe
f:id:sh_yoshida:20161215061837p:plain

Hello World!

さて、なんとかインストールできたので動かしてみます。
f:id:sh_yoshida:20161215062738p:plain
.NET Coreのコンソールアプリケーションプロジェクトを選択。
f:id:sh_yoshida:20161215062813p:plainf:id:sh_yoshida:20161215062925p:plain
f:id:sh_yoshida:20161215063217p:plain

実行

そのまま実行してみました。
えっ?!まさかのエラー!
コンソールに吐き出されたメッセージは.NET Core Appのバージョン1.0.1が見つからないと。

The specified framework 'Microsoft.NETCore.App', version '1.0.1' was not found.
  - Check application dependencies and target a framework version installed at:
      /usr/local/share/dotnet/shared/Microsoft.NETCore.App
  - The following versions are installed:
      1.0.0
      1.0.0-rc2-3002702
      1.1.0
  - Alternatively, install the framework version '1.0.1'.

Press any key to continue...

デフォルトの.csprojには.NET Core Appのバージョンが1.0.1って書かれてるけどインストールされてなくて怒られたのかな。
現時点(2016/12/15)では1.1.0が最新ですね。
https://www.microsoft.com/net/core

f:id:sh_yoshida:20161215063341p:plain
.csprojを書き換えて、[プロジェクト]-[NuGetパッケージの復元]。
f:id:sh_yoshida:20161215063707p:plain

ただHello World!表示するのもアレなんでとりあえず流しておきました┗(^0^)┓三3

f:id:sh_yoshida:20161215070253g:plain

C#流れるHello World!