ぺんちゃん日記

食と歴史と IT と。 Web の旅人ぺんじろうが好奇心赴くままに彷徨います 。

Chrome 上の Google Docの音声入力をオートホットキーでオンにする

今日も Auto HOT key のお勉強です。
ちょっとやってみたいのが音声入力環境の向上。
私は普段 Google Docの音声入力を利用して文章を書いています。

f:id:yasushiito:20190316185600p:plain

多くの人はここに amivoiceなどの 音声入力ソフトを使うかと思います。

エムシーツー 音声認識ソフト AmiVoice SP2 USBマイク付

エムシーツー 音声認識ソフト AmiVoice SP2 USBマイク付

私の場合は Google Docです。
句読点が打てない、修正できない、自分用に学習させられないなどの致命的と思われる問題点がありながらも無料の割には便利だからという理由で使い続けています。
インターネットによるデータ収集& AI による学習という将来面に期待しているところもあります 。

Google Docは マイクの聞き取りは一定期間無音でいると切断されます。
マイクボタンをクリックしてスタンバイにするのが結構面倒くさい。
何か発信したいと思いついても素早く入力に取り掛かれません。
そこで Auto HOT Key から Google Chrome をアクティブにして音声入力用のdocumentにうつってマイクをオンにする作業を自動化したいと思います。

私は普段の作業は音声入力用というファイル名のdocument上で行っています。
一旦ここで音声入力してからコピペするんですね。
Chrome は作業中のページタイトルを表示するのでこれが手がかりになるはずです。
Chrome で表示中のタブの切り替えは Control + tab で行います。
またマイクの音声開始は Control + SHIFT + S で行います。
これだけのネタがあればなんとかなりそうな気がします。

スクリプトは次のような手順になるでしょうか。

  • 起動中の Google Chrome を探す。
  • Google Chrome が見つからなかったら諦める。
  • Chrome で表示中のページタイトル音声入力用だったらマイクのスイッチを入れるためのショートカットキーをブラウザに送信する。
  • 音声入力用ページで作業していなかったらタブ切り替えショートカットキーをブラウザに送信して見つかるまで繰り返す。

documentを見ながら試行錯誤した結果がこれです。

Process,Exist,chrome.exe
If (ErrorLevel <> 0 ) {
    WinActivate,ahk_pid %ErrorLevel% にする
    IfWinExist,音声入力用
    {
        Send,+^s
    }
    Else
    {
        WinGetActiveTitle, current
        Loop
        {
            Send,^{Tab}
            IfWinExist,音声入力用
            {
                Send,+^s
                break
            }
            Sleep 500
        }
    }
}
Else
{
    ExitApp
}

今のところ音声入力用ページが見つからなかった場合、永久にタブ切り替えを続けます。
私の環境では必ず開いているのでしばらくの間はこの運用で問題ありませんが、そのうちページが見つからない場合の対応をしたいと思います。
もう一つ、 Google Chrome が複数起動している場合は期待した動作をしないと思います。
その辺は今度の機会にでも 。

yasushiito.hatenablog.com