お疲れ様です。
pythonを使ってweb操作の自動化と、簡単な音声合成を試してみたので記事として残しておきます。
#seleniumでsafariの操作を自動化
seleniumは、pythonでsafariやchromeを操作するための拡張機能のようなものです。
自分はこのseleniumを使って、hahtのログイン操作を自動化してみました。
動かす際には、safariの「開発」メニューから「リモートオートメーションを許可」にチェックを入れる必要があります。
from selenium import webdriver
driver = webdriver.Safari()
driver.get('<hahtトップページのURL>') #webサイトの指定
entry = driver.find_element_by_name("LUA") #webサイトのソースコードからログインID欄を指定
entry.send_keys("<ユーザー名>")
entry = driver.find_element_by_name("PWD") #同様にパスワード欄を指定
entry.send_keys("<パスワード>")
btn = driver.find_element_by_name("login") #同様にログインボタンを指定
btn.click() #クリック
自分は以下のサイトを参考に作成しました。
簡単にできるのでpythonとコーディングの勉強にちょうどいいと思います。
・PythonとSeleniumでブラウザ操作を自動化したよ
・python+seleniumでTwitterにログインしてみる
#jtalkで音声合成
音声合成というほどでもないですが、キーボードから入力した言葉を音声で復唱してくれるスクリプトを組んでみました。
発声にはjtalkというフリープログラムを使用しています。
女声、または男声を選択できます。
import subprocess
from datetime import datetime
def jtalk(t): #jtalkの定義と男声/女声の選択
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/m100/nitech_jp_atr503_m001.htsvoice']
#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 speak(): #入力から動作まで
#d = datetime.now()
#text = '%s月%s日、%s時%s分%s秒' % (d.month, d.day, d.hour, d.minute, d.second)
while True:
text = raw_input('喋らせたい言葉を入力(終了:exit) >>> ').lower()
if text in ['トゥーの社長は?']:
text = 'ごうたさんです'
jtalk(text)
break
if text in ['exit']:
break
else:
jtalk(text)
#if __name__ == '__main__':
speak()
こちらも下記を参考に作成しました。
・macでコードから音声を喋らせる
このjtalk、発声はしてくれますがイントネーションに不自然な部分があります。
jtalkをインストールすると辞書ファイルも付いてくるので、これをもう少し弄ればより自然な発声にできるかもしれません(手間なのでやっていません)。
#おわりに
何かを作る時、tensorflowやswiftなどはUIから簡単に作成できるのに対して、pythonは一からコードを書かなければなりません。
そのため初めて触れる方はとっつきにくいかもしれませんが、最初は基本的な構文(ifとかwhileとか、defやimportの意味とか)だけ覚えておけば大丈夫だと思います。
・python3系 基礎文法
・python-izm:python入門から応用までの学習サイト
webで探せばソースコードも山ほど見つかるので、
作りたいスクリプトがある時はソースコードを探してあとはコピペでもどうにかなります。
自分も全くの初心者なので、皆さんで学んでいきましょう!