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ć?


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.