ホーム 記事タイプ 技術発信 open-jtalk で日本語の読み上げをさせる
 

open-jtalk で日本語の読み上げをさせる

やること

PCに日本語テキストを音読させてみます。
mac と fodora33 で試したので
インストールのコマンドと簡単なスクリプトを記載します。

mac版

環境

uname -a
Darwin macbook1010390.local 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64

brew --version
Homebrew 2.7.5

afplay -h
    Audio File Play
    Version: 2.0

インストール

brew install open-jtalk

バージョンやファイルパスなど表示されるので確認します。

以上、あとはスクリプトを書いて実行するだけです。Homebrew ありがたや。

スクリプト

cat ~/bin/mei 
#!/bin/bash

OJT_DIC=/usr/local/Cellar/open-jtalk/1.11/dic
OJT_VOICE=/usr/local/Cellar/open-jtalk/1.11/voice/mei/mei_normal.htsvoice
OJT_TMP=/tmp/out.wav
if [ -p /dev/stdin ]; then
    cat -
else
    echo $@
fi | open_jtalk -x $OJT_DIC -m $OJT_VOICE -ow $OJT_TMP
afplay $OJT_TMP

実行例

chmod u+x ~/bin/mei
mei 厳密に言うとトマトは果物です。
mei その家には人間と豚と犬と鶏と家鴨が住んでいたが、まったく、住む建物も各々の食物も殆ど変っていやしない。

fedora33版

環境

uname -a
Linux kiwi.kadosawa6 5.10.11-200.fc33.x86_64 #1 SMP Wed Jan 27 20:21:22 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

ffmpeg --version
ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers

インストール

# いろいろ取ってくるので適当なアーカイブ置き場へ移動します。
cd /usr/local/src
# 音声作成エンジンをインストールします。
 wget https://downloads.sourceforge.net/project/hts-engine/hts_engine%20API/hts_engine_API-1.10/hts_engine_API-1.10.tar.gz
 tar zxvf hts_engine_API-1.10.tar.gz
 cd hts_engine_API-1.10/
 make
 make install
# open-jtalk本体をインストールします。
cd /usr/local/src
wget https://downloads.sourceforge.net/project/open-jtalk/Open%20JTalk/open_jtalk-1.11/open_jtalk-1.11.tar.gz
tar zxvf open_jtalk-1.11.tar.gz
cd open_jtalk-1.11/
./configure --with-charset=UTF-8
make
make install
# 音響モデルをインストールします。
cd /usr/local/src
wget http://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip
unzip MMDAgent_Example-1.8.zip
# 呼び出し易いようにシンボリックリンクを作成しておきます。
cd /usr/local/share/
ln -s /usr/local/src/MMDAgent_Example-1.8/Voice hts_voice

スクリプト

cat ~/bin/mei
#!/bin/bash

OJT_DIC=/usr/local/src/open_jtalk-1.11/mecab-naist-jdic
OJT_VOICE=/usr/local/share/hts_voice/mei/mei_normal.htsvoice
OJT_TMP=/dev/shm/out.wav
if [ -p /dev/stdin ]; then
    cat -
else
    echo $@
fi | open_jtalk -x $OJT_DIC -m $OJT_VOICE -ow $OJT_TMP
aplay $OJT_TMP

実行例

chmod u+x ~/bin/mei
mei 季も桃も桃のうち
mei 裏庭には二羽鶏がいる

所感

目が疲れているとき、こういうのを使ってドキュメントなどを確認するのも良いかもと思って試してみました。読み方の選び方やイントネーションをカスタマイズできないかなぁと思うこともありますが、未来を感じつつ現実に直面している感じがして楽しいです。

記事を共有
モバイルバージョンを終了