Como posso usar o Kinect como microfone no Linux?

14

Estou usando o Ubuntu 14.04 LTS, e a câmera Kinect tem tipo Microsoft_Xbox_NUI_Sensor_043367545147-02-Sensor.

Posso acessar a câmera do Kinect a partir de um programa Linux que estou escrevendo, mas também gostaria de usar o microfone para comunicação por voz. Como eu posso fazer isso?

the_naive
fonte
3
Não tenho certeza se isso será possível com o driver NUI alternativo. Normalmente, no Windows, o microfone é outro dispositivo separado e não há API diretamente, porque você pode acessá-lo como um microfone normal, pois outros podem estar presentes.
Yosh Synergi
Você já deu uma olhada nesses drivers OpenSource Kinect? github.com/OpenKinect/libfreenect para Kinect v1 e github.com/OpenKinect/libfreenect2 para Kinect v2. Conforme declarado pelo autor, pelo menos libfreenect1 suporta áudio.
19417 McLovin
Aparentemente, isso pode ser feito com o HARK-KINECT - alguém experimenta.
Theraot 22/01
1
Vocês devem responder a esses comentários.
Gustavo Maciel

Respostas:

0

Com base no que outros disseram nos comentários e em algumas pesquisas que fiz, aqui estão minhas sugestões.

O HARK-KINCET deve fazer o trabalho, embora exija instalação. Existe a possibilidade de você agrupar a instalação no seu jogo, embora provavelmente exija permissão dos desenvolvedores. [Com base na resposta de Theraot ]

A outra opção apresentada aqui é usar as bibliotecas aqui e codificar um programa que se conecta a essas bibliotecas. [Baseado na resposta de McLovin ]

Uma solução que funcionará apenas para você seria usar o código postado aqui e configurá-lo no seu kernel. Você pode verificar o que o site disse sobre alguns microfones com um bug que impede a instalação completa; Nesse caso, use este comando de instalação:

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

Se você tiver esse bug, receberá este erro:

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)

Pelo que li, esse provavelmente é o problema que você está tendo. Você pode corrigi-lo baixando a fonte e editando-a e depois buscando o firmware.

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

A partir daqui, você deve seguir as etapas apresentadas no link , pois minhas explicações podem ficar um pouco confusas. Se você deseja continuar com minha explicação, edite o arquivo chamado "kinect_upload_fw.c" para que fique como:

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;

Salve as alterações e, em seguida, crie e instale-o. Isto deve resolver o problema.

Vaillancourt
fonte