この記事はWindows編です。Mac編の記事はこちらを参照してください。
新型コロナウイルスの流行に合わせてオンラインで会議を行うことが増えてきました。オンライン会議では、マイクのミュート機能を上手に使うことが重要です。よけいな雑音や生活音が聞こえないように、ふだんはマイクをミュートしておき、発言する時にだけミュートを解除することが推奨されています。
しかし、ときどき「ミュートを解除したつもりで解除していない」という事態が起きます。画面の向こうから「マイクがミュートになっていますよ」と指摘されて、最初から同じことをもう一度しゃべるということを、これまで何度か繰り返しています。
面倒くさがりの私としては、マイクのミュートを切り替えるたびにアプリを切り替えてマウスでボタンをクリックするとか、複雑なショートカットキーを押す、なんてことは避けたいものです。オンライン会議をしながらメモを取っていたり、他の資料を参照していることもあるので、こうしたミュート操作をわずらわしく感じます。
そこで今回は、Autohotkeyを使って「他のアプリを使っている時でも、特定のキーを押せばマイクのミュート・ミュート解除の切り替えを行える」という機能と、「特定のキーを押しこんでいるときだけマイクをオンにして、キーを離すと再びミュートする」というPush-to-Talkの機能を作っていきます。さらにStream DeckやUSBフットスイッチなどと組み合わせれば、ワンタッチで(あるいは足で)ミュート操作ができるようになります。
必要なもの
- Autohotkey アプリ(さまざまな処理を実行できるようにするソフト)
- (お好みで)Elgato Stream Deck (Amazonリンク)
- (お好みで)USBフットペダル(Amazonリンク)
作り方
Autohotkeyをインストールして、以下のようなマクロを作って実行しましょう。以下はZoomの例です。
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance force
#HotkeyInterval 200
;======================
; Web会議システムのミュート
; F2 : ミュート切り替え
; F3 : Push to Talk (フットスイッチ用)
; F4 : Push to Talk (Stream Deck用)
; 右Alt: Push to Talk
;======================
F2::
ToggleMute()
KeyWait, F2
return
RAlt::
ToggleMute()
KeyWait, RAlt
ToggleMute()
return
F3::
Sleep, 200
ToggleMute()
KeyWait, F3
ToggleMute()
return
F4::
If (A_PriorHotkey <> "F4" or A_TimeSincePriorHotkey > 600)
{
ToggleMute()
SetTimer, Mute_Timer, -600
return
}
SetTimer, Mute_Timer, -300
return
Mute_Timer:
ToggleMute()
return
ToggleMute() {
IfWinNotExist, ahk_exe Zoom.exe
return
WinGet, active_id, ID, A
WinActivate, ahk_exe Zoom.exe
Send, !a
Sleep, 100
WinActivate, ahk_id %active_id%
}
Zoomでは、マイクのミュート切り替えには「Alt + A」というキー操作を行います(上記の “Send, !a” という部分です)。Autohotkeyを使って、F2キーでマイクのミュート/ミュート解除の切り替え、右AltキーでPush-to-Talk機能を実現しています。さらに、どのアプリを使っている時でも、Zoomのミュート操作を行えるようにしています。
F3キーにはフットペダル用、F4キーにはStream Deck用のPush-to-Talkの処理を割り当てています。フットペダル用の処理には、フットペダルを踏み込んだときの「カチャ」という音が入らないよう、0.2秒待ってからミュートを解除するようにしています。
また、Windows版のStream Deckでは、ボタンを押している間、割り当てたキーが何度も連打される(Key-DownとKey-Upイベントが何度も繰り返される)という仕様になっているようです。そのため、AutohotkeyのKeyWaitコマンドではうまく処理ができません。そこで、SetTimer機能を使ってボタンから指を離したタイミングを検出しています。
ちなみに、Microsoft Teamsで使う場合はスクリプトの一部を以下のように修正します。Microsoft Teamsでのミュート切り替えが確実に行われるよう「Sleep, 100」と0.1秒間の処理待ちをしているところがポイントです。このコマンドがないと、ミュートの切り替えに失敗することがありました。
ToggleMute() {
IfWinNotExist, ahk_exe Teams.exe
return
WinGet, active_id, ID, A
WinActivate, Microsoft Teams ahk_exe Teams.exe
Send, ^+m
Sleep, 100
WinActivate, ahk_id %active_id%
}
使い方(キーボードを使う場合)
ZoomやTeamsなどのオンライン会議ソフト起動した状態でF2キーを押すと、キーを押すたびにマイクのミュート / ミュート解除の状態が切り替わります。現在、マイクがミュートされているかどうかは、オンライン会議ソフトの画面表示を確認してください。
また、マイクがミュートされている状態でF3キー(もしくは右Altキー)を押すと、キーを押している間はマイクがオンになり、キーを離すと再びミュートされます。いわゆるPush-to-Talk機能です。
しかし、マイクがミュートされていない状態で、F3キー(もしくは右Altキー)を押すと、キーを押し込んでいる時にはミュートされ、キーを離した時にマイクがオンになるという、想定と逆の状態になってしまいます。ミュートの状態には注意しながら使ってください。
使い方(Stream Deckを使う場合)
Stream Deckのボタンにホットキー機能を使ってF4キーを割り当ててください。マイクがミュートされているときに割り当てたボタンを押すと、ボタンを押している間はマイクがオンになり、ボタンを離すと再びミュートされます(Push-to-Talk機能)。ただし、こちらも、直前のマイクの状態によって、逆の操作になってしまうことがありますので、マイクの状態を確認しながら使ってください。
使い方(フットペダルを使う場合)
最もおすすめの方法は、USB接続できるフットスイッチを使う方法です。Amazonで1,400〜3,000円前後で販売されています。私が持っているのはルートアールのUSBフットペダルスイッチ RI-FP1BK(1399円)です。付属ソフトを使ってフットスイッチに任意のキーを割り当てることができます。
USBフットスイッチにはF3キーを割り当てて使ってください。足を踏み込んでフットスイッチを押している間はマイクがオンになり、フットスイッチから足をどけると再びミュートされるというすばらしい環境が出来上がります(Push-to-Talk機能)。これで、PCで資料を見ながら、あるいはメモを取りながら、両手がふさがっている時でもフットスイッチを使ってオンライン会議のミュート操作ができるようになりました。
ただしこちらも、直前のマイクの状態によって逆の操作になってしまうことがあります。マイクの状態を確認しながら使ってください。