LinuxでKinectをマイクとして使用するにはどうすればよいですか?


14

Ubuntu 14.04 LTSを使用していますが、KinectカメラのタイプはMicrosoft_Xbox_NUI_Sensor_043367545147-02-Sensorです。

私が書いているLinuxプログラムからKinectのカメラにアクセスできますが、音声通信にマイクを使用したいのです。どうやってやるの?


3
代替NUIドライバーでこれが可能かどうかはわかりません。通常、Windowsではマイクは別の別のデバイスであり、APIが直接ありません。他のマイクが存在する可能性があるため、通常のマイクとしてアクセスできます。
ヨシュSynergi

すでにこれらのオープンソースKinectドライバーをご覧になりましたか?github.com/OpenKinect/libfreenect Kinectのv1とのためgithub.com/OpenKinect/libfreenect2のKinect v2の。著者が述べたように、少なくともlibfreenect1はオーディオをサポートしています。
マクロビン

どうやらそれはHARK-KINECTできる -誰か試してみてください。
Theraot

1
これらのコメントから回答を作成する必要があります。
グスタボマシエル

回答:


0

他の人がコメントで言ったことと私がやったいくつかの研究に基づいて、ここに私の提案があります。

HARK-KINCETはインストールを必要としますが、仕事をするはずです。ゲームにインストールをバンドルできる可能性がありますが、おそらく開発者の許可が必要になります。[ Theraotの回答に基づく]

他のオプションは、ここで紹介するライブラリを使用している、ここで、これらのライブラリに接続するプログラムを、コード。[ マクロビンの答えに基づく]

あなただけのために働く解決策は、ここに投稿されたコードを使用し、それをカーネルにセットアップすることです。完全なセットアップを妨げるバグがあるマイクについて、サイトが言ったことを確認することをお勧めします。その場合は、次のセットアップコマンドを使用します。

sudo kinect_upload_fw /lib/firmware/kinect/UACFirmware.C9C6E852_35A3_41DC_A57D_BDDEB43DFD04

このバグがある場合、次のエラーが表示されます。

libusbx: error [op_set_configuration] failed, error -1 errno 110
  About to send: 09 20 02 06 01 00 00 00 60 00 00 00 00 00 00 00 15 00 00 00 00 00 00 00
  libusbx: error [submit_bulk_transfer] submiturb failed error -1 errno=2
  Error: res: -1    transferred: 0 (expected 24)

私が読んだことから、これはおそらくあなたが抱えている問題です。ソースをダウンロードして編集し、ファームウェアを取得することで修正できます。

cd ~/Downloads
wget https://launchpad.net/ubuntu/+archive/primary/+files/kinect-audio-
setup_0.3.orig.tar.gz

ここから、リンクに示されている手順に従う必要があります。これは、私の説明がやや混乱する可能性があるためです。説明を続けたい場合は、「kinect_upload_fw.c」というファイルを編集して、次のようにします。

index b2188d6..e3b72db 100644 (file)
b/kinect_upload_fw/kinect_upload_fw.c
@@ -155,9 +155,19 @@ int main(int argc, char** argv) {
            goto fail_libusb_open;
    }

   int current_configuration = 0;
   libusb_get_configuration(dev, &current_configuration);
   if (current_configuration != 1)
           libusb_set_configuration(dev, 1);

   libusb_claim_interface(dev, 0);

   libusb_get_configuration(dev, &current_configuration);
   if (current_configuration != 1) {
           res = -ENODEV;
           goto cleanup;
   }

    seq = 1;

    bootloader_command cmd;

変更を保存してから、ビルドしてインストールします。これで問題が解決するはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.