私は (可能であれば) 1 台のコンピューターで少なくとも 20 個のマイクの入力を監視するプログラムを作成するように依頼されました。
現在、Alsa を使用する Ubuntu システムで、Python (2.6) でプロトタイプを作成しています。これまでの私の試みは、かなりの数の質問を作成しました...
Ubuntu は必須ですが、Alsa は必須ではなく、python が理想的です。
ハードウェアの場合、1 つの提案は複数のサウンド カードです。もう 1 つは、一連の USB ハブとマイク アダプター (これらのようなもの) です (この場合、デバイスはすべて同一で、同じ USB バス上にあります)。
質問:
1 つのサウンド カードから複数のマイクを同時に録音するにはどうすればよいですか? (例: ライン入力とマイクの使用。2 つ以上の入力を使用する方法を知っている人にはボーナスです!)
USB セットアップで、サウンド カード (USB アダプタ) が USB ハブ (または USB ハブのチェーン) に接続されている位置を特定するにはどうすればよいですか。
解決策が USB 経由のマイクへの生のアクセスである場合、USB バス上のデバイスの位置は、それらが接続されている USB ハブのどのポートにのみ依存しますか、それともコンピューターの電源のオンとオフの間で変わる可能性がありますか?
最後に、生のアクセスを使用している場合、どのようにデータを取得するのが最善でしょうか (pyUSB の現在の経験はありません)、生からオーディオへの変換 (必要な場合) は何ですか?
編集:
モニターごとに、入力をディスクに記録し (理想的には、speex コーデックが理想的と思われる設定されたしきい値を超える)、ボリューム レベルをモニターし、グラフィック フィードバックを提供し、すべてのアクティブなマイクを循環する少なくとも 1 つの出力をセットアップするように求められました。
Python は長期的な要件ではありません。サウンド カードから PCM データを取得するためにこれまでに見つけた最も簡単な方法です (ただし、マイクのみ)。
私は、サウンドカードのポーリングとデータ処理を別々のスレッドで行うつもりです。これは、私があまり経験していない領域です。
USB オーディオ クラス ドライバーの実装に関する詳細情報はどこにありますか?