声が出なくなった
カンファレンスで無理をして声が出なくなった。診察を受けると1週間ぐらい声が出ないということで、幸いにして他の人に感染するようなものではない。
しかしながらプレゼンやら、勉強会のチューターの予定がみっちり入っているため、どうにかしなくては。
プレゼン方法
当初、プレゼンは音楽を流して、ライブプレゼンに徹しようかと思った。
しかしながらプレゼン後の質疑応答だとか、勉強会のチューターは声が出ないと仕方がない。
なので、 Ubuntu Linux 16.04 と MS-Windows 10 で発話システムを作った。
こんな感じ。
Ubuntu Linux 16.04 + JTalk
まずは使い慣れたやつ。
JTalkインストール
sudo apt-get install open-jtalk --install-suggests
発話テスト
$ echo "こんにちは" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow /dev/stdout | aplay
音響モデルの選択
年齢相応の男性の声を使いたい。
http://mahoro-ba.net/index.php?j=1875
ここで比較してみた。
結果、標準添付のm001がいい感じ、ライセンス的にも安心のメジャーライセンス。
Python で話す
単に、subprocess でシェルを呼び出して実行するだけ。
keyに日本語文字列を入れて、以下を実行。
import subproces
subprocess.run("echo \""+key+"\" | open_jtalk -x /var/lib/mecab/dic/open-jtalk/naist-jdic -m /usr/share/hts-voice/nitech-jp-atr503-m001/nitech_jp_atr503_m001.htsvoice -ow /dev/stdout | aplay "
,shell=True
,stdout=subprocess.DEVNULL
,stderr=subprocess.DEVNULL)
これを、半透明、フォントサイズ、最前面に調整したターミナルで動かす。
作ったコード
GitHUBにて公開しました。
の superc.py です。
カウントダウン表示
カウントダウン表示については勉強会のチューターでは必要ないので、別プログラムに分けた。
以下は5分をカウントダウンするもの。
import time
import datetime
d1=datetime.datetime.now()
td=datetime.timedelta(seconds=300)
d2=d1+td
while True:
time.sleep(0.01)
c = (d2-datetime.datetime.now())
sys.stdout.write("\033[2K\033[G%s" % c)
sys.stdout.flush()
意味のないマイクロ秒表示。
BGMを流す
$ sudo pip3 install pygame mutagen
として、
import pygame
filename='dai9.mp3'
pygame.mixer.init()
pygame.mixer.music.load(filename)
pygame.mixer.music.set_volume(0.2)
pygame.mixer.music.play(1)
とするとボリューム0~1の間の0.2で1回第九を演奏する。
作ったコード
演奏とカウントダウンをまとめてcountandkick.pyとしました。
Ubuntuでの追加設定
プレゼン画面と発話字幕画面、カウントダウンを表示しておいて、発話字幕画面とカウントダウン画面を「最前面へ」でトップに表示しておく。
プレゼン画面はImpressのスライドショーだと他のアプリの「最前面へ」よりも上位にスライドショーが表示されるので、PDF画面をスクロールしてプレゼンした。
最前面に表示しているので、フォーカスが合っていると間違えて操作をミスることがあった。
それを少しでも防ぐため、マウスオーバーでフォーカスが合うようにしておく。
「Mouse over Active window」というのだそうだ。
UbuntuでMouse over Active window
を設定するやり方は、Unity Tweak Toolで、「ウィンドウマネージャー」-「その他」-「全般」の「フォーカス動作」で「フォーカスモード」を「スロッピー(Sloppy)」にする。
Windows 10
動作検証中
使っているところ

