QPythonで音声コマンドもどきを作るテスト
今回はQPythonで、なんちゃってボイスコマンドを作ってみます。
GoogleアシスタントやSiriに
「OK Google 最寄りのガソリンスタンドを探して」
「Hey Siri 今日の天気予報は?」
と音声で質問や命令をすると、それに応えてくれます。
様々な言葉の言い回しに対応する柔軟性がありますが、いまから作るのはそんなに賢くありません。
・「マップの検索」「Googleでキーワード検索」かの二種類のみの対応です。
・音声入力内容は以下のように固定。
「マップ検索東京駅」
「Google検索ボイスコマンドの仕組み」
「検索」の所で前後に区切って、「マップ」か「Google検索」かと、それ以降の「検索内容」を取り出し、それに応じて場合分け。
・方法
QPythonのandroidhelperを使って音声認識
→音声入力を一旦テキストファイルに書き出す(実行すると音声認識結果.txtというファイルが作成されます)
→そのテキストから「検索」の文字をfind関数で探す
→find関数は検索文字のindexを返します。その前後をスライスで「手段」と「検索内容」で切り分け
→ifで分岐。URLを振り分け、ブラウザ起動で表示
音声入力が起動します。

マップが表示された。

import androidhelper
Droid = androidhelper.Android()
voice = Droid.recognizeSpeech()
voice_file = "音声認識結果.txt"
with open(voice_file,"w") as f:
f.write(voice[1] + "\n")
with open(voice_file,"r") as f:
r = f.read()
command_separate_index = r.find("検索")
syudan_text = r[:command_separate_index]
mokuteki_text = r[command_separate_index+2:]
if syudan_text == "マップ":
Droid.view("https://www.google.com/maps/search/" + mokuteki_text)
elif syudan_text == "Google ":
Droid.view("https://www.google.com/search?q=" + mokuteki_text)