私はDebian(技術的にはRaspbian)を実行しており、Star Trekスタイルの音声コマンドシステムを取得しようとしています。基本的には動作していますが、プライバシーとすべてのジャズのためにマイクを常に録音したくありません。
現在どのプロセス(ある場合)がマイクにアクセスしているかをポーリングする方法があるかどうか疑問に思います。私の考えは、マイクが現在オーディオを録音しているかどうかを知らせる小さなインジケータを作成することでした。
私の究極の目標は、テレビのリモコンを使用してマイクをオン/オフし、マイクがオンになっているかどうかを示すLED照明を持つことです。すべてのハードウェアが正常に動作しています。これで、仕上げるソフトウェアだけが必要です。
今構成しているのは純粋なALSA、つまりPulseAudioではないと思います。私が間違っている可能性があります。
ベストアンサー1
マイクデバイスファイルを識別することから始めます/dev/snd/pcmC0D0c
。デバイスファイルを見つけるのに役立つように、arecord
次のコマンドを使用してテスト記録を開始して実行すると、lsof | grep '/dev/snd'
すべてのプログラムと関連デバイスファイルが一覧表示されます。
その後、を使用してマイクの使用量を表示できますfuser /dev/snd/pcmC0D0c
。デバイスが開かれると、デバイスにアクセスするプログラムのPIDが返されます。
inotifywait /dev/snd/pcmC0D0c
デバイスの状態を継続的にポーリングするよりも、状態の変化を検出するためにループを好むことができます。