試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

日本語の文字列をオーディオデータに変換するOpen JTalkの概要とインストール(2012年1月上旬時点)

概要

Open JTalk(http://open-jtalk.sourceforge.net/)は日本語向けのtext-to-speechという類のソフトウェアで、文字列をオーディオデータ(WAVE形式)に変換することができる。コマンド名はopen_jtalk。文字列には漢字も使えるが、誤読することもある。
OSに依存しない作り(C言語の標準Cライブラリのみを使用)となっており、GNU/Linuxでも動作する。また、プログラム部分のライセンスが修正BSD/三条項(3-clause)となっており、自由なソフトウェアであることも大きい。

パッケージの構成

hts_engine API関係

Open JTalkをビルドするにはhts_engine API(http://hts-engine.sourceforge.net/)というライブラリを別途用意(ビルド含む)しておく必要がある。このライブラリは静的リンクライブラリのみを提供し、ビルド後はOpen JTalkに組み込まれる(ビルドしたOpen JTalkは単体で動作する)。
Open JTalkのビルド時には--with-hts-engine-header-path(hts_engine APIのヘッダを配置したディレクトリ)や--with-hts-engine-library-path(hts_engine APIのライブラリを配置したディレクトリ)といったオプションをconfigureスクリプトに渡す必要がある。

声データ

Open JTalkは声の種類を声データによって変えることができ、Open JTalk本体のサイトからは男声の「NIT ATR503 M001」,Open JTalkを用いたMMDAgent(http://www.mmdagent.jp/)というソフトウェアの「Sample Script」というパッケージからは女声の「Mei」がそれぞれ入手できる。これらのライセンスはクリエイティブ・コモンズのAttribution (CC-BY) 3.0となっている(営利目的での使用も可)。

一覧

Open JTalk関係のパッケージの構成
パッケージ説明ライセンス
hts_engine APIOpen JTalkのビルドに必要なライブラリで静的リンクされる(Open JTalkのビルド時に組み込まれる)・ライブラリとは別にhts_engineというコマンドも含まれる修正BSD/三条項
声データ(NIT ATR503 M001やMei)声のデータCC Attribution (CC-BY) 3.0
Open JTalk本体(辞書が付属)修正BSD/三条項

(追記)Debian/Ubuntu公式のパッケージについて

(2012/1/16)Ubuntu 12.04(Debianではwheezy)からは以下のDebian/Ubuntu公式のパッケージが追加されており、標準で利用可能となることが分かった(Meiの声データのみ存在しない)。hts_engine APIは共有オブジェクト(libHTSEngine.so.1.0.0/libHTSEngine.so.1)として提供される。

  • open-jtalk (Open JTalkの本体・UTF-8向け)
  • open-jtalk-mecab-naist-jdic (Open JTalkの辞書・配置場所は/var/lib/mecab/dic/open-jtalk/naist-jdic/以下エンコーディングUTF-8)
  • libhtsengine-dev (hts_engine APIの開発パッケージ)
  • libhtsengine1 (hts_engine APIのライブラリ)
  • htsengine (hts_engineコマンド)
  • hts-voice-nitech-jp-atr503-m001 (男声データ・配置場所は/usr/share/hts-voice/nitech-jp-atr503-m001/以下)

下の自作パッケージはOpen JTalkの辞書のディレクトリが異なる。

Ubuntu向けの自作パッケージ(11.10向け)

今回、Ubuntu 11.10向けのパッケージを以下のパッケージ名で作成し、「milkjfフォントとut(内海氏)版AnthyのUbuntu向けパッケージを作成(2010/11/20現在)」で書いているPPAリポジトリに公開した。
(2012/1/16)Ubuntu 12.04からは標準でパッケージが利用可能となることが分かったため、この自作パッケージは声データのMei(hts-voice-mei)を除いて廃止する予定。

Ubuntu 11.10向け自作パッケージの名前と内容
PPAリポジトリにおけるパッケージ名内容
hts-enginehts_engineコマンド(Open JTalkからは使われない)
libhts-engine-devhts_engine APIのヘッダファイルと静的リンクライブラリ(Open JTalkのビルド時に必要)
hts-voice-nitech-jp-atr503-m001(男)声データ「NIT ATR503 M001」
hts-voice-mei(女)声データ「Mei」
openjtalk本体(UTF-8向け)
openjtalk-dic本体の辞書部分(アーキテクチャ非依存ファイル群のため本体から分離・UTF-8向け)
Open JTalk本体には

といったパッケージが含まれている関係でディストリのパッケージを用いるようにできないかと調べてみたが、どちらも手が加えられている関係でディストリのパッケージを代わりに使用するようにはできなかった。本体の辞書の配置場所だけは「[インストール先]/dic」という(GNU/Linuxではあまり用いられない)配置を「/usr/share/openjtalk/dic/」以下になるように修正した。
声データの配置については/usr/share/hts-voice/に声ごとのディレクトリが入るようにした。

関連記事: