LoginSignup
2
2

More than 5 years have passed since last update.

Mac; OS X Mavericsにgccを使ってOpenJTalkを導入する

Last updated at Posted at 2015-02-04

ほとんど以下のサイトの焼き直しです。感謝!

Mac OS X Lion で OpenJTalk-1.05 を動かす

これはclangでOpenJTalkのビルドにつまずいた人向けの文書です。
clangでやりたい人は以下参照
http://qiita.com/yawara/items/2cb20f7bbb07615229ec

準備

/usr/local以下にOpenJTalkディレクトリを用意する。
その下にvoiceディレクトリをそれぞれ用意する。

mkdir -p /usr/local/OpenJTalk/voice

ストレートにclangでビルドしようとすると、unknown argumentsのエラーに出会うのでgccを用意する。
以下ではHomebrew経由でgccをインストールしたものとする。

brew install gcc

hts_engine APIのインストール

本家サイト hts_engine API

ターボールは以下のリンクから。
http://sourceforge.net/projects/hts-engine/files/hts_engine%20API/hts_engine_API-1.09/hts_engine_API-1.09.tar.gz/download?use_mirror=jaist

例によって

tar xzvf hts_engine_API-1.09.tar.gz
cd hts_engine_API-1.09
CC=/usr/local/bin/gcc-4.9 CXX=/usr/local/bin/g++-4.9 ./configure --prefix=/usr/local/OpenJTalk
make && make install

おそらくhts_engineのビルドにはgccは必要ない。ただ使っても問題ない。

OpenJTalkのインストール

本家サイト OpenJTalk

ターボールは以下のリンクから。
http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.08.tar.gz

例によって

tar xzvf open_jtalk-1.08.tar.gz
cd open_jtalk-1.08

ここで内容によって読み上げの間延びをしてしまうのをふせぐために以下のパッチを用意する。
詳しくは『OpenJTalkの導入』を参照のこと。
パッチのコードは上記サイトからコピペしてきた。

cat<<EOF>manobi.patch
*** jpcommon/jpcommon_label.c.orig      2012-12-24 17:18:53.000000000 +0900
--- jpcommon/jpcommon_label.c   2013-05-27 16:35:45.195252424 +0900
***************
*** 284,289 ****
--- 284,290 ----
        if (index == a)
           break;
     }
+    if (i > 3) i = 3;
     return i;
  }

***************
*** 383,388 ****
--- 384,390 ----

     for (i = 0, index = m->next; index != NULL; index = index->next)
        i++;
+    if (i > 10) i = 10;
     return index_mora_in_utterance(m) + i;
  }
EOF

パッチを適用する。

patch -p0 < manobi.patch

環境変数CC、CXXでそれぞれC、C++のコンパイラにGCCを指定してビルドする。

CC=/usr/local/bin/gcc-4.9 CXX=/usr/local/bin/g++-4.9 ./configure --prefix=/usr/local/OpenJTalk --with-hts-engine-header-path=/usr/local/OpenJTalk/include --with-hts-engine-library-path=/usr/local/OpenJTalk/lib --with-charset=UTF-8
make && make install

ここで、-with-hts-engine-header-pathと--with-hts-engine-library-pathとが先ほどインストールしたhts_engine APIのヘッダーとライブラリを参照している。

HTS Voiceのインストール

ダウンロードは以下のリンクから。
http://sourceforge.net/projects/open-jtalk/files/HTS%20voice/hts_voice_nitech_jp_atr503_m001-1.05/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz/download?use_mirror=jaist

バイナリなので解凍してvoice以下に設置する。
利便性のために適当なシンボリックリンクを貼る。

tar xzvf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
mv hts_voice_nitech_jp_atr503_m001-1.05 /usr/local/OpenJTalk/voice
cd /usr/local/OpenJTalk/voice
ln -s hts_voice_nitech_jp_atr503_m001-1.05 m001

インストール完了!

OpenJTalkを使ってみる。

sample.txt中のテキストを読み上げてout.wavとして出力。

open_jtalk -x /usr/local/OpenJTalk/dic -m /usr/local/OpenJTalk/voice/m001/nitech_jp_atr503_m001.htsvoice -ow out.wav sample.txt
  • -xで辞書ディレクトリを指定。
  • -mでHTS Voiceファイルを指定。
  • -owでアウトプットのファイル名指定。
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2