CentOS5(x86_64)にGalateaTalkを入れてみた

いろいろ苦戦しましたが、なんとか入りました。*1

Dartsを取得
$ wget http://chasen.org/~taku/software/darts/src/darts-0.31.tar.gz
$ tar zxvf darts-0.31.tar.gz
$ cd darts-0.31
$ ./configure
$ make
$ make check
$ sudo checkinstall
$ sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/darts-0.31.x86_64.rpm
ChaSenを取得
$ wget http://jaist.dl.sourceforge.jp/chasen-legacy/26441/chasen-2.4.2.tar.gz
$ tar zxvf chasen-2.4.2.tar.gz
$ cd chasen-2.4.2
$ ./configure
$ make
$ sudo checkinstall
$ sudo rpm -ivh /usr/src/redhat/RPMS/x86_64/chasen-2.4.2.x86_64.rpm
IPA辞書を取得
$ wget http://osdn.dl.sourceforge.jp/ipadic/24435/ipadic-2.7.0.tar.gz
$ tar zxvf ipadic-2.7.0.tar.gz
$ cd ipadic-2.7.0.tar.gz
$ make
$ make check
$ sudo checkinstall
ChaOneを取得
$ wget http://globalbase.dl.sourceforge.jp/galateatalk/24000/chaone-1.3.0b2.1.zip
$ unzip chaone-1.3.0b2.1.zip
$ cd chaone-1.3.0b2
$ ./configure
$ make
Speakarsを取得
$ wget http://jaist.dl.sourceforge.jp/galateatalk/22040/speakers-060820.tar.gz
$ tar zxvf speakers-060820.tar.gz speakers
GalateaTalkを取得
$ wget http://globalbase.dl.sourceforge.jp/galateatalk/26271/gtalk-070712.tar.gz
$ tar zxvf gtalk-070712.tar.gz
$ cd gtalk-070712
$ vim main.c

main.cの227行目のSetRun を小文字のsetRunに変更する。
227 void SetRun( char *rel, char *val);

変更後
227 void setRun( char *rel, char *val);

$ libtoolize --copy --force
$ ./configure
$ make
$ vim ssm.conf

ssm.confを以下のように設定する。
$ cat ./ssm.conf
# configuratiuon file for gtalk (GalateaTalk)

# path name of 'chasen'
CHASEN: /usr/local/bin/chasen

# configuration file for 'chasen'
CHASEN-RC: ./chasenrc
#CHASEN-RC: /usr/local/etc/chasenrc

# command of running 'chaone'
CHAONE: ../chaone-1.3.0b2/chaone

# path name of 'chaone.xsl' (only for library-based version)
#CHAONE-XSL-FILE: ../chaone-1.2.0/chaone_t_EUC-JP.xsl

# default for numbers and alphabets
NUMBER: DECIMAL
ALPHABET: WORD
DATE: YMD
TIME: hms

# dictionary
#DICTIONARY: ./gtalk-eucjp.dic

# automatic play of synthesized speech
AUTO-PLAY: NO

# time delay [msec] for autuomatic play
AUTO-PLAY-DELAY: 250

# file of phoneme list
PHONEME-LIST: mono.lst

# parameter files for each speaker
SPEAKER-ID: male01
GENDER: male
DUR-TREE-FILE: ../speakers/male01/tree-dur.inf
PIT-TREE-FILE: ../speakers/male01/tree-lf0.inf
MCEP-TREE-FILE: ../speakers/male01/tree-mcep.inf
DUR-MODEL-FILE: ../speakers/male01/duration.pdf
PIT-MODEL-FILE: ../speakers/male01/lf0.pdf
MCEP-MODEL-FILE: ../speakers/male01/mcep.pdf

# parameter files for each speaker
SPEAKER-ID: female01
GENDER: female
DUR-TREE-FILE: ../speakers/female01/tree-dur.inf
PIT-TREE-FILE: ../speakers/female01/tree-lf0.inf
MCEP-TREE-FILE: ../speakers/female01/tree-mcep.inf
DUR-MODEL-FILE: ../speakers/female01/duration.pdf
PIT-MODEL-FILE: ../speakers/female01/lf0.pdf
MCEP-MODEL-FILE: ../speakers/female01/mcep.pdf

# parameter files for each speaker
#SPEAKER-ID: male02
#GENDER: male
#DUR-TREE-FILE: ../speakers/male02/tree-dur.inf
#PIT-TREE-FILE: ../speakers/male02/tree-lf0.inf
#MCEP-TREE-FILE: ../speakers/male02/tree-mcep.inf
#DUR-MODEL-FILE: ../speakers/male02/duration.pdf
#PIT-MODEL-FILE: ../speakers/male02/lf0.pdf
#MCEP-MODEL-FILE: ../speakers/male02/mcep.pdf

$ vim chasenrc

gtalkのソースディレクトリは以下のchasenrcを以下のように設定する。
chasenrcはEUCで保存することに注意してください。
$ cat chasenrc
;;
;; chasenrc for unidic-1.3.0
;; chaOne用
;;
;(GRAMMAR /usr/local/lib/chasen/dic/ipadic)
(GRAMMAR /usr/local/lib/chasen/dic/ipadic)
;(GRAMMAR /usr/local/lib/chasen/dic/unidic)
(DADIC chadic)

(UNKNOWN_POS (名詞))
;(UNKNOWN_POS (名詞))

(OUTPUT_FORMAT "%m\n")

(OUTPUT_COMPOUND "SEG")

(BOS_STRING "\n")
(EOS_STRING "\n")

(DEF_CONN_COST 10000)
(POS_COST
((*) 1)
((UNKNOWN) 30000)
)

(CONN_WEIGHT 1)
(MORPH_WEIGHT 1)
(COST_WIDTH 0)

(ANNOTATION
(("<" ">") "%m\n")
(("\"") "%m\n")
)

読ませるテキストを書く
$ vim hoge.txt

set Text = こんばんは、かわいいめだか
set Save = ../hoge.raw
set Run = EXIT

$ sudo yum install sox lame
$ cd /usr/local/gtalk-070712
$ ./gtalk -C ./ssm.conf< ../hoge.txt
$ sox -r 16000 -w -s -x ../hoge.raw ../hoge.wav
$ lame ../hoge.wav ../hoge.mp3

この方法は、「けいの開発記録 - Galatea Talkで音声合成してみる。」ならびに「NI-Lab.'s ヅラッシュドット - GalateaTalk で音声合成に挑戦 (でも途中で挫折)」を参考に*2させていただきました。

*1:後で加筆修正するかも

*2:ほとんど全部参考にさせてもらいました^^;