mieki256's diary



2020/09/23(水) [n年前の日記]

#1 [raspberrypi] Raspberry Pi Zero WでOpenJTalkを使って音声合成

Raspberry Pi Zero W + Raspbian Buster で、OpenJTalk を使って音声合成をしてみたり。

以下、参考ページ。

_Speaker pHAT 単体で音楽再生+Bluetoothボタン制御
_Raspberry Pi | ラズパイに喋ってもらう作戦(Open JTalk1.08のインストールと音声出力設定) - たぷん日記

必要なパッケージをインストール。OpenJTalk、男性の声のデータ、辞書をインストールする。
sudo apt install open-jtalk open-jtalk-mecab-naist-jdic hts-voice-nitech-jp-atr503-m001

音声合成を指示するためのスクリプトを新規作成。OpenJTalkに音声データや辞書を指定してwavファイルを作成して、ソレを鳴らしてから、wavファイルを削除、という処理をしているらしい。
vi jsaym.sh
#!/bin/sh
TMP=/tmp/jsay.wav
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 && \
aplay --quiet $TMP
rm -f $TMP

スクリプトに実行権限を追加。
chmod +x jsaym.sh

再生確認。
./jsaym.sh "hello world talk test"
男性の声で音声が鳴った。

女性の声も鳴らしてみる。
mkdir ~/temp
cd ~/temp
wget --content-disposition https://sourceforge.net/projects/mmdagent/files/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip/download
unzip MMDAgent_Example-1.8.zip
sudo cp -R ./MMDAgent_Example-1.8/Voice/mei /usr/share/hts-voice/
cd ..
vi jsayf.sh
#!/bin/sh

CMDNAME=`basename $0`
if [ $# -lt 1 ]; then
    echo "Usage: ${CMDNAME} [ text ]" 1>&2
    exit 1
fi

TMPFILE=`mktemp /tmp/tmp.XXXXXXXX.wav`
DIC=/var/lib/mecab/dic/open-jtalk/naist-jdic
VOICE=/usr/share/hts-voice/mei/mei_normal.htsvoice

echo "$1" | open_jtalk \
-m ${VOICE} \
-x ${DIC} \
-ow ${TMPFILE} && \
aplay --quiet ${TMPFILE}

rm -f ${TMPFILE}

exit 0
chmod +x jsayf.sh
./jsayf.sh "新しい朝が来た 希望の朝だ"
女性の声で音声が鳴った。

#2 [raspberrypi] Raspberry Pi Zero Wでやりたいことは一通りできたとメモ

作業目的と結果について一応メモ。

自分は睡眠時間や犬の散歩をした時間を毎日メモしているのだけど。一々メインPC上でエディタを立ち上げてメモするのはちょっと面倒臭い。何かしらのボタンを押すだけで時間の記録ができればいいのになと思えてきて、Raspberry Pi Zero W を使ってそのへんどうにかできないかと最近色々試してたわけで。

ということで…。 てなところまではできた。

ちなみに、Bluetoothスピーカで音を鳴らすことも試したけど、それはちょっと厳しいなと。 コンセントから常時電源を取って動くタイプのスピーカじゃないとなかなか難しい感じ。

さておき。一応実現はできたものの、時刻をメモするというただそれだけのために、5V,2Aという少ない消費電力で動くとはいえ、Raspberry Pi Zero W を24時間365日電源入れっぱなしにするのもなんかアレだなと…。大体にして、そのへんにメモ用紙とシャープペンシルでも転がしておいてその都度メモすれば圧倒的低コストで済んでしまう話でもあり…。てなわけで、実現はできると分かったけれど、今回試したこの仕組みは今後使わないだろうなと。

そもそもメインPC上でも、自作のPerlスクリプトを実行すれば現在時刻が記録できるようになっていて…。後はそのスクリプトを呼び分けるためのショートカットファイルをデスクトップにいくつか置いておけば済んでしまう…。

もしスマホがあれば、任意のタイミングで現在時刻を記録するスマホアプリが存在するらしいので、そういうアプリを使えば目的は叶ってしまうのだろうなと。まあ、自分はスマホ持ってないからその手は使えないのだけど。

とりあえず、こういうことができると分かっただけでも一応勉強にはなったから、これはこれで。

以上、1 日分です。

過去ログ表示

Prev - 2020/09 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project