ラズパイ3+OpenJTalkで音声合成


ラズパイ3 + Julius では音声出力は、用意しておいたwavファイルをaplayで出力していただけでしたが、この出力の部分に、音声合成エンジンのOpenJTalkを使ってみます。

日本語音声合成はOSS界隈ではいくつかあります(Merlin とか)。深層学習を使ったものもありますが、ここはひとつ安定のOpenJTalkということで。


 

 

OpenJTalk

サンプル

 


準備

出力周りを確認します。

ラズパイの音声出力は2系統あります。
ステレオミニジャックとHDMIです。
USBスピーカーを使う場合はステレオミニジャックになります。

ただし、USBのスピーカーとマイク一体型(ヘッドセット)はこんな感じ

カード番号とデバイス番号を調べます。

$aplay -l

ステレオミニジャックのカード番号は1、デバイス番号は0です。

テストで以下が聞こえたらOK

$ aplay -Dhw:1,0 /usr/share/sounds/alsa/Front_Center.wav

 

ミニジャックに接続したスピーカーから音が出ない場合

ここもチェック。

スピーカーアイコンを右クリック。

 

 


インストール

$ sudo apt-get update
$ sudo apt-get install open-jtalk

最新版インストール

他の提案パッケージもインストールします。

$ sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

 

やってみます

$ echo “これはテストです” | open_jtalk -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow ./open_jtalk_tmp.wav

$ aplay open_jtalk_tmp.wav

使っている音響モデル
/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice

辞書
/var/lib/mecab/dic/open-jtalk/naist-jdic

音響モデルを変えてみます。

音響モデルのサンプル

***.htsvoiceファイルをダウンロードしたら

/home/pi/voiceというフォルダーを作って、そこに置いておきます。

で、やってみます。

$ echo “それはないわ” | open_jtalk -fm 0.55 -a 0.5 -jf 3.0 -r 1 -m /home/pi/voice/mei_happy.htsvoice -x /var/lib/mecab/dic/open-jtalk/naist-jdic -ow ./open_jtalk_mei.wav

$ aplay open_jtalk_mei.wav

 

声が気に入らなかったら触ってみるパラメーター

「a: all-pass constant」(オールパス値)
「b: postfiltering coefficient」(ポストフィルター係数)
「r: speech speed rate<strong」(スピーチ速度係数)
「fm :additional half-tone」(追加ハーフトーン)
「u: voiced/unvoiced threshold」(有声/無声境界値)
「jm: weight of GV for spectrum」(スペクトラム系列内変動の重み)
「jf: weight of GV for log F0」(F0系列内変動の重み)


Pythonのサンプルコードはこんな感じ。

wavファイルを作ってから出力する場合

【talk.py】

 


スピーカーの音量調整

$amixer set PCM n%

n ->60~100

この範囲でレベルを設定してチェックしてみます。

$aplay /usr/share/sounds/alsa/Front_Center.wav

 

 


最新版インストール

sudo apt-get install open-jtalkでインストールするとVer1.07が入ってしまいます。

1.07では音量オプション(-g)が使えない。

2019/02/17現在、最新版は1.11

1.07をインストール済みの場合は削除しておきます。

まず、hts_engine_APIをインストール(これが無いとOpenJTalkのMakefileが作成されない)

OpenJTalkを導入

Makefile作成

確認

 

1.07の辞書でもOKなので必須というわけではないですが…….

1.11の辞書

$ sudo apt-get install open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

 


こんな構成の場合

USBタイプのマイク・スピーカー一体型(ヘッドセット)

$aplay -l

で、[USB Audio]のカード番号とデバイス番号をチェック

カード番号=0、デバイス番号 = 0の場合

$ aplay  -D plughw:0,0  xxx.wav

モノラル音源がいいかも…。


Appendex

複数のwavを連結する場合

soxを使います。

$sudo apt-get install sox

 

$sox s1.wav s2.wav …. out.wav

 

 

Pythonの場合

 

 

 


Be the first to comment

Leave a Reply

Your email address will not be published.


*