Linux에서 Kinect를 마이크로 사용하려면 어떻게해야합니까?


14

Ubuntu 14.04 LTS를 사용하고 있으며 Kinect 카메라에는 유형이 Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor있습니다.

작성중인 Linux 프로그램에서 Kinect의 카메라에 액세스 할 수 있지만 음성 통신에 마이크를 사용하고 싶습니다. 어떻게해야합니까?


3
대체 NUI 드라이버로 이것이 가능한지 확실하지 않습니다. 일반적으로 Windows에서 마이크는 별도의 다른 장치이며 다른 마이크가있을 수 있으므로 일반 마이크로 액세스 할 수 있기 때문에 API가 직접 없습니다.
Yosh Synergi 12

이 OpenSource Kinect 드라이버를 이미 살펴 보셨습니까? github.com/OpenKinect/libfreenect 키 넥트에 대한이 v1 및 github.com/OpenKinect/libfreenect2 넥트 v2의. 저자가 언급했듯이 최소한 libfreenect1은 오디오를 지원합니다.
McLovin

분명히 그것은 HARK-KINECT로 할 수 있습니다 -누군가 시도해보십시오.
Theraot

1
여러분은이 의견들로부터 답을해야합니다.
구스타보 메이 엘

답변:


0

다른 사람들이 의견에서 말한 내용과 내가 한 일부 연구를 바탕으로 내 제안이 있습니다.

HARK-KINCET 은 설치가 필요하지만 작업을 수행해야합니다. 게임에 설치를 번들로 묶을 수도 있지만 개발자의 허가가 필요할 수도 있습니다. [ 테라 트 기반 답변을 ]

여기에 제시된 다른 옵션은 라이브러리를 사용하고 여기에 프로그램이 코드 해당 라이브러리에 연결합니다. [기준 맥 로빈의 답변을 ]

나에게만 적합한 해결책은 여기에 게시 된 코드를 사용한 다음 커널에서 설정하는 것입니다. 전체 설정을 방해하는 버그가있는 일부 마이크에 대한 사이트의 의견을 확인하고 싶을 수도 있습니다. 그렇다면이 설정 명령을 사용하십시오.

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.