はじめに
マイクがないパソコンを使っていると、ごくまれにそのことを不便に感じることがあります。以前私は音声入力を試してみたくなった際にこの不便さに直面しました。その際の対処法は、DroidCamを使ってスマホをマイクとして使うというものでした。
この記事では、DroidCamを使わない同様の対処法として、「余っているAndroidスマホに搭載されたマイクをscrcpyから読み取る」というものについてまとめます。scrcpyなら、複雑なインストールの手間なくスマホのマイクをパソコンから読み取れ、スマホ側のノイズ処理を活用でき、USB接続なら低遅延かつ安定して動作します。そして、WindowsではVB-Cableと組み合わせることで、その読み取った音声をマイクからの音声入力と同等にパソコン上で扱えるようになります。
DroidCamに対するscrcpyの優位性について
DroidCamは、スマホをパソコンのマイクやカメラとして扱える便利なアプリです。スマホとパソコンが同じネットワークでつながってさえいれば音声・映像をやり取りできますし、VPNを構築している場合はその経路を使って通信することもできます。ただしDroidCam自体があまり使いやすいとはいえず、ネットワーク品質に左右され遅延が小さくない点も気になっていました。
そこで別の方法を探し、scrcpyの音声転送機能に行き着きました。scrcpyとは、Androidスマホの画面をパソコンへミラーリングし、キーボードやマウスで操作するためのツールとして有名なものです。
そんなscrcpyのAudio source機能では、通常はスマホの音声出力が転送されるところを、引数に--audio-source micと設定することで、スマホが拾った音声をパソコンへ転送するようにできます。
さらに、micの代わりにmic-voice-recognitionを選ぶと、音声認識向けの処理が施された明瞭な音声が得られます。
スマホのノイズ処理は意外と優秀で、もしかすると安価なUSBマイクより聞き取りやすいかもしれません。
なお、この方法はスマホをパソコンにマイクとして認識させるものではありません。パソコン側から見るとあくまで「アプリケーションの音声出力」として扱われています。しかし、例えばOBS Studioでは、アプリケーション音声キャプチャを通じてscrcpyのプレイバック音声を取り込めるため、配信や録画には一応使えます。
スマホのマイクが音声を読み取る
→ パソコン上のscrcpyが規定のデバイスへ音声を出力
→ それをアプリケーション音声キャプチャによってOBS Studioが読み取り
→ パソコンのスピーカーからも出力される
もしスマホのマイクで拾った音声を、Windowsパソコン上でマイクからの音声入力と同等に取り扱いたいのであれば、VB-Cableを活用することになります。少し手間はかかってしまいますが、scrcpyの音声出力先をVB-Cableに割り当て、そのVB-Cableを音声入力元として各種アプリケーションから読み取る形です。(これには、プレイバック音声を聞かずに済むようになるなどのメリットもあります。)
スマホのマイクが音声を読み取る
→ パソコン上のscrcpyがVB-Cableへ音声を出力
→ それをOBS Studio含む各種アプリケーションがマイクからの音声入力と同じように読み取り
→ パソコンのスピーカーからは出力されない!
このように疑似的な入力デバイスとして扱えるようになれば、より広く活用できるでしょう。
少し気をつけたいのが、scrcpyがAndroidのデバッグ機能を利用していることです。USBデバッグやワイヤレスデバッグを有効にする必要があるため、設定の手間は少しかかりますし、デバッグモードを有効にした状態では一部アプリが起動しなくなることがあります。また、デバッグ接続は通常のUSB接続より権限が広く、信頼できないコンピュータに不用意に接続すると意図しないアクセスを許す可能性がありますので、セキュリティにはお気をつけください。
スマホを完全にマイク専用として扱いたいときには、次のように設定すると便利です。
scrcpy.exe --audio-source mic-voice-recognition --no-video --turn-screen-off --stay-awake --power-off-on-close
映像の転送を無効にし、scrcpy使用中はディスプレイを消灯し、しかしスリープはさせず、終了時にスリープさせるという設定になります。長時間の音声転送はスマホ側の発熱につながりやすいですが、scrcpyでは画面を消して内部で処理を動かし続けることができるため、発熱を抑える効果について期待できます。実際、私の環境では、30分ほど動かし続けた程度ではまったく問題にならないことが確認されています。
これは余談ですが、scrcpyには--video-source cameraという指定もあり、スマホのカメラ映像をパソコン上に表示できます。未検証ですが、Linuxではv4l2を活用することでWebcamとしても扱えるようにできるようですし、WindowsでもおそらくはOBS Studioの仮想カメラ経由で同じような使い方ができるでしょう。
まとめ
余っているAndroidスマホとscrcpyを組み合わせることで、パソコンにマイクがなくても安定した音声入力環境を構築できます。スマホ側のノイズ処理が効くため品質も悪くなく、USB接続なら低遅延で使える点が魅力でした。
マイクやカメラは安くても数千円はしますが、手元のスマホで代用できれば新しく買う必要がなく、負担が小さく済みます。USB接続で動かす場合はDroidCamのようにネットワーク越しで通信しないため、遅延が少なく安定している点も魅力でした。
今後もこのようにデバイスの再活用の場が広がっていってくれると嬉しいですね。