1. msrks

    Posted

    msrks
Changes in title
+macで音声発話 (espeak, open-jtalk)
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,87 @@
+導入めちゃめちゃ簡単でした。homebrewありがとう。
+
+## espeak: 英語の発話
+
+インストール & 実行
+
+```bash
+$ brew install espeak
+```
+```bash
+$ espeak "hello world"
+```
+
+## open-jtalk: 日本語の発話
+
+インストール。これだけで辞書ファイルも音声ファイルも入りました。
+
+```bash
+$ brew install open-jtalk
+```
+
+実行 (女性ボイス: voice/mei/mei_normal.htsvoice)
+
+```bash
+$ echo "吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。
+何でも薄暗いじめじめした所でニャーニャー泣いていた事だけは記憶している。
+吾輩はここで始めて人間というものを見た。" > sample.txt
+$ open_jtalk \
+-x /usr/local/Cellar/open-jtalk/1.10_1/dic \
+-m /usr/local/Cellar/open-jtalk/1.10_1/voice/mei/mei_normal.htsvoice \
+-ow out.wav sample.txt
+$ afplay out.wav
+```
+
+実行 (男性ボイス: voice/m100/nitech_jp_atr503_m001.htsvoice)
+
+```bash
+$ open_jtalk \
+-x /usr/local/Cellar/open-jtalk/1.10_1/dic \
+-m /usr/local/Cellar/open-jtalk/1.10_1/voice/m100/nitech_jp_atr503_m001.htsvoice \
+-ow out.wav sample.txt
+$ afplay out.wav
+```
+
+pythonから実行。以下の`jtalk.py`を作成して保存。
+
+```python:jtalk.py
+# coding: utf-8
+import subprocess
+from datetime import datetime
+
+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']
+ outwav = ['-ow', 'out.wav']
+ cmd = open_jtalk + mech + htsvoice + speed + outwav
+ c = subprocess.Popen(cmd, stdin=subprocess.PIPE)
+ c.stdin.write(t)
+ c.stdin.close()
+ c.wait()
+ aplay = ['afplay', 'out.wav']
+ wr = subprocess.Popen(aplay)
+
+def say_datetime():
+ d = datetime.now()
+ text = '%s月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
+ jtalk(text)
+
+if __name__ == '__main__':
+ say_datetime()
+```
+
+```bash
+$ python jtalk.py
+```
+
+python モジュールとして利用
+
+```bash
+$ python
+>>> import jtalk
+>>> jtalk.jtalk ("ロウセイのリチョウは博学サイエイ、天宝のマツネン、若くして名をコボウに連ね、ついでコウナンイに補せられたが、性、狷介、自ら恃むところ頗る厚く、センリに甘んずるを潔しとしなかった。")
+```
+
+> 参考: http://qiita.com/kkoba84/items/b828229c374a249965a9