【Raspberry PI】音声合成 ~ Open JTalk ~

Raspberry PI音声合成を行う

[1] Open JTalk <= これを使う
[2] AquesTalk
[3] AquesTalk2
[4] Galatea Talk

■ Open JTalk

デモサイト

http://open-jtalk.sp.nitech.ac.jp/index.php

■ 設定手順

前準備:音が出るかを確認

# 優先する出力先を1(アナログ)に設定
amixer cset numid=3 1

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

Open JTalkのインストール

sudo apt-get install open-jtalk

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

動作確認

再生する文章ファイル(txt)を用意する
$ cat helloworld.txt
はろーわーるど
音声合成を行う(音声ファイルを作成する)
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 helloworld.wav helloworld.txt
音声ファイルを再生する(「はろーわーるど」って言ったらOK)
aplay helloworld.wav

Pythonから音声合成を行う

ソースを書く

openJTalk.py
#coding: utf-8
import subprocess

def openJTalk(speech_content):
    open_jtalk=['open_jtalk']
    mech=['-x','/var/lib/mecab/dic/open-jtalk/naist-jdic']
    htsvoice=['-m','/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice']
    speed=['-r','1.0']
    outwav=['-ow','open_jtalk.wav']
    cmd=open_jtalk+mech+htsvoice+speed+outwav
    c = subprocess.Popen(cmd,stdin=subprocess.PIPE)
    c.stdin.write(speech_content)
    c.stdin.close()
    c.wait()
    aplay = ['aplay','-q','open_jtalk.wav']
    wr = subprocess.Popen(aplay)
helloworld.py
#coding: utf-8
import openJTalk

openJTalk.openJTalk('はろーわーるど')

実行する

python openJTalk.py

# 「はろーわーるど」って言ったらOK
python helloworld.py


関連記事

Raspberry PI音声認識 ~ Julius / 初期設定編 ~ [1]

https://blogs.yahoo.co.jp/dk521123/37449064.html

Raspberry PI音声認識 ~ Julius / 文法ファイル作成編 ~ [2]

https://blogs.yahoo.co.jp/dk521123/37451114.html