Jak mogę używać Kinect jako mikrofonu w systemie Linux?

14

Używam Ubuntu 14.04 LTS, a kamera Kinect ma typ Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor.

Mogę uzyskać dostęp do kamery Kinect z programu Linux, który piszę, ale chciałbym również użyć jej mikrofonu do komunikacji głosowej. Jak mogę to zrobić?

the_naive
źródło
3
Nie jestem pewien, czy będzie to możliwe dzięki alternatywnemu sterownikowi NUI. Zwykle w systemie Windows mikrofon jest kolejnym oddzielnym urządzeniem i nie ma bezpośredniego interfejsu API, ponieważ można uzyskać do niego dostęp jak normalny mikrofon, ponieważ inni mogą być obecni.
Yosh Synergi,
Czy już rzuciłeś okiem na te sterowniki Kinect OpenSource? github.com/OpenKinect/libfreenect dla Kinect v1 i github.com/OpenKinect/libfreenect2 dla Kinect v2. Jak stwierdził autor, przynajmniej libfreenect1 obsługuje audio.
McLovin,
Najwyraźniej można to zrobić za pomocą HARK-KINECT - ktoś spróbuje.
Theraot
1
Powinniście udzielić odpowiedzi na podstawie tych komentarzy.
Gustavo Maciel

Odpowiedzi:

0

Na podstawie tego, co powiedzieli inni w komentarzach i niektórych badaniach, które przeprowadziłem, oto moje sugestie.

HARK-KINCET powinien wykonać to zadanie, choć wymaga instalacji. Istnieje możliwość spakowania instalacji w grze, choć prawdopodobnie będziesz potrzebować zgody deweloperów. [Na podstawie odpowiedzi Theraot ]

Inną przedstawioną tutaj opcją jest użycie tutaj bibliotek i kodowanie programu, który łączy się z tymi bibliotekami. [Na podstawie odpowiedzi McLovina ]

Rozwiązaniem, które będzie działać tylko dla ciebie, będzie użycie kodu zamieszczonego tutaj, a następnie skonfigurowanie go w jądrze. Możesz sprawdzić, co strona mówi o niektórych mikrofonach mających błąd uniemożliwiający pełną konfigurację; jeśli tak, użyj tego polecenia instalacyjnego:

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

Jeśli masz ten błąd, otrzymasz ten błąd:

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)

Z tego, co przeczytałem, jest to prawdopodobnie problem, który masz. Możesz to naprawić, pobierając źródło i edytując je, a następnie pobierając oprogramowanie układowe.

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

Odtąd powinieneś postępować zgodnie z krokami przedstawionymi w linku , ponieważ moje wyjaśnienia mogą być nieco mylące. Jeśli chcesz kontynuować moje wyjaśnienie, edytuj plik o nazwie „kinect_upload_fw.c”, tak aby brzmiał:

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;

Zapisz zmiany, a następnie skompiluj i zainstaluj. To powinno rozwiązać problem.

Vaillancourt
źródło