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)