文章校正のためにOpen JTalkを使って日本語テキストを読み上げる


こんにちは、長井です。

私はメールの文面やドキュメントを作成する際、かなりの割合で誤字脱字や記述ミスをしてしまいます。

誤字脱字がないか調べてくれるサイト等を使って確認しているのですが、完全に間違いを正してくれるわけではないので最後は自分で読んでチェックすることになります。

そこで日本語テキストを音声ファイルに変換して音読による文章校正ができたらと思い試してみました。

利用するのは「Open JTalk」というライセンスフリーのソフトウェアです。

Open JTalk 2015-06-26 16-50-38Open JTalk - HMM-based Text-to-Speech System 2015-06-26 16-51-16

※ サイトトップとサンプルデモページ

今回LinuxOS上でソースコードからコンパイルします。

その他のOSでは検証はしていませんが、WindowsOSの場合こちらで紹介されているようにMicrosoft Visual C++の環境を用意してインストールする方法があるようです。
また、MacOSの場合はこちらにインストール方法が紹介されています。

準備

必要なファイルをダンロード

Open JTalkはHTSという音声合成ソフトウェア上でテキストを日本語音声に変換します。
HTSを動かすため、hts_engine APIというライブラリを一緒にインストールします。

ダウンロードするファイルは以下になります。

hts_engine API(サイト
  • hts_engine_API-1.xx.tar.gz
Open JTalk(サイト
  • open_jtalk-1.xx.tar.gz(Open JTalk本体)
  • open_jtalk_dic_utf_8-1.xx.tar.gz(辞書ファイル)
  • hts_voice_nitech_jp_atr503_m001-1.xx.tar.gz(音響モデルファイル)

音響モデルは波形データを集めたもので、音声ファイルの元になります。
今回、上記のファイルを「~/Downloads」ディレクトリ以下にダウンロードしました。

ビルド・インストール

hts_engine APIのインストール

まずはhts_engine APIをビルド・インストールします。

パッチの適用

Open JTalkインストールの前にパッチを適用します。これを当てないと作成される音声がところどころで間延びしてしまうようです(参考文献)。

Open JTalkのインストール

Open JTalkをビルド・インストールします。

各種データファイルの用意

辞書ファイルおよび音響モデルファイルを展開します。

実行

Open JTalkを実行します。まず適当な日本語の文章をテキストファイルに出力して、コマンド「open_jtalk」を実行します。

パラメータはそれぞれ「-m」が音響モデルファイルの場所、「-x」が辞書ファイル(ディレクトリ)の場所、「-ow」が出力先のファイルです。

作成されたoutput.wavを再生してみます。

上手くいっているようですね。ただ他のファイルで試してみると、改行を含む場合にそこで音声が途切れてしまうことが分かりました。

そこで次のようなシェルスクリプトファイルを作ってその中で改行を取り除いてやることにしました。

jtk.sh

これで以下のようにして改行を含む文章も音声ファイルにすることが出来ました。

結果作成されたファイルです。


これで日本語の文章を作成するときに音読による校正が出来るようになりました。

課題

今回試してみて以下の課題も見つかりました。

  • 一度に処理する文字数が多いと大量のメモリを消費し作成途中で失敗する。
  • 英単語が認識されずアルファベットの羅列になる。例えばプログラムコードを含む場合の音声が不自然。

英単語を含む文章の場合

input.txt

input.txtを変換した結果

メモリ消費については入力ファイルを分割する等の改善が必要になりそうです。
英単語については単語ファイルを読み込むようにできないか等、検討していきます。

以上、今後も誤字脱字を無くして正しい日本語の文章を心がけたいと思います。

最後まで読んで頂きありがとうございました。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です