LoginSignup
6
4

More than 5 years have passed since last update.

JTalkの音声変換と音声出力をシェルで一気にやる(ラズパイ用)

Last updated at Posted at 2018-09-23

■はじめに

ラズパイにてJTalkを利用する際に、長いコマンドをいちいち書きたくないため、シェルを作成しました。
#3年ぶりにシェルを触ったので、細かい部分はご愛嬌。

・引数に日本語を指定して音声出力するシェル
・引数にファイルを指定して音声出力するシェル

■JTalkの使い方

JTalkは、「日本語文字列を日本語音声に変換」するものです。
よって、音声出力する(音を鳴らす)部分は持ち合わせていません。
今回は、以下にて音声出力まで行います。

順番 役割 内容 実体
1 セリフ作成 日本語のセリフを作成 手作り
2 日本語音声変換 セリフを音声ファイルとして作成 JTalk
3 音声出力 音声ファイルを音として出力 aplay

■前提

JTalk音響モデル
/usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice
JTalk辞書モデル
/var/lib/mecab/dic/open-jtalk/naist-jdic/

■引数に日本語を指定して音声出力するシェル

JtalkFromArg.sh
root@raspberrypi:/usr/jtalk# cat ./JtalkFromArg.sh 
#!/bin/sh

### Making WAV File from Command Line Argument
###  and speaking with aplay command

#TempWAVFile
TMP=/tmp/jtalkTmp.wav

if [ $# -ne 1 ]; then
echo "Error: argument not exist"
exit 1
fi

echo "$1" | 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  $TMP \

chmod 777 $TMP
aplay --quiet $TMP

exit 0
#EOF

・使うとき

root@raspberrypi:/usr/jtalk# ./JtalkFromArg.sh テスト用音声を出力します
root@raspberrypi:/usr/jtalk# 

■引数にファイルを指定して音声出力するシェル

JtalkFromFile.sh
root@raspberrypi:/usr/jtalk# cat ./JtalkFromFile.sh 
#!/bin/sh

### Making WAV File from File
###  and speaking with aplay command

#TempWAVFile
TMP=/tmp/jtalkTmp.wav

if [ ! -e $1 ]; then
echo "Error: file not exist"
exit 1
fi

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  $TMP \
$1

chmod 777 $TMP
aplay --quiet $TMP

exit 0
#EOF

・使うとき

root@raspberrypi:/usr/jtalk# cat ./testvoice01.txt  
テスト用音声ファイルです。
root@raspberrypi:/usr/jtalk# ./JtalkFromFile.sh ./testvoice01.txt 
root@raspberrypi:/usr/jtalk# 

■出典/参考

Open JTalk
http://open-jtalk.sourceforge.net/

Raspberry Piでテキストを音声化する (Open JTalk)
http://www.taneyats.com/entry/raspi-open-jtalk

Ras Pi 3 スピーカーから音を鳴らす!そしてOpen JTalkで日本語を喋らせる!
https://iot-plus.net/make/raspi/speaker-open-jtalk-japanese-speech/

Raspberry Pi3に日本語で喋ってもらうまで
https://qiita.com/Higemal/items/6dde8637a680bfe200ca

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4