2018-01-11
Open JTalk on Macを使った読み上げ実験、第一弾は、誰でもなんちゃってテレビ局、生配信サービス「ふわっち」のコメントの読み上げ。

顔文字や新しい言葉がどんどん登場する楽しい日本語の世界、自分で自由にカスタマイズ(transmapを編集)して、ストレスなしの読み上げを実現します。

# coding: utf-8 import jtalk import sys import time import json import urllib.request transmap = { " " : " ", "www" : "w", "iPhone" : "アイフォン", "AppleID" : "アップルアイディー", "一途" : "いちず", "ε" : "", "ω" : "", "(o(" : "", ")o)" : "", "´)ノ" : "", } def talk_whowatch_comment(id, timefrom): with urllib.request.urlopen("https://api.whowatch.tv/lives/%s?last_updated_at=%s" % (id, timefrom)) as r: s = r.read() data = json.loads(s.decode('utf-8')) for comment in reversed(data["comments"]): mes = comment["message"] user = comment["user"]["name"] userid = comment["user"]["id"] s = "%sさん(%s) %s" % (user, userid, mes) for t in transmap: mes = mes.replace(t, transmap[t]) print(s) jtalk.jtalk(mes).wait() return data["updated_at"]; id = sys.argv[1] timefrom = 0 if len(sys.argv) == 3: timefrom = sys.argv[2] print("https://api.whowatch.tv/lives/%s" % id) while True: bktimefrom = timefrom timefrom = talk_whowatch_comment(id, timefrom) print("updated at: %s" % timefrom) if timefrom == bktimefrom: time.sleep(5)

importしているjtalkですが、コメントのJSONデータを取得するためのライブラリ urllib.request などがPython3用なので、jtalk.py もPython3用に修正し、読み上げ終了がわかるようにプロセスのインスタンスを返す用に改造。

# coding: utf-8 import subprocess from sys import argv def jtalk(t): open_jtalk = [ 'open_jtalk' ] mech = [ '-x', '/usr/local/Cellar/open-jtalk/1.10_1/dic' ] htsvoice = [ '-m', '/usr/local/Cellar/open-jtalk/1.10_1/voice/mei/mei_normal.htsvoice' ] speed = [ '-r', '1.0' ] jf = [ '-jf', '0.6' ] fm = [ '-fm', '-1.0' ] u = [ '-u', '0.0' ] outwav = [ '-ow', 'out.wav' ] cmd = open_jtalk + mech + htsvoice + speed + jf + u + fm + outwav c = subprocess.Popen(cmd, stdin = subprocess.PIPE) c.stdin.write(t.encode()) c.stdin.close() c.wait() aplay = [ 'afplay', 'out.wav' ] wr = subprocess.Popen(aplay) return wr if __name__ == '__main__': jtalk(argv[1])

speed, jf, fm あたりをいじると読み上げの音質をいろいろ変更できますよ。


ふわっち - 動画・ラジオの生配信で稼ごう!

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS