/ / Czy istnieje skuteczny sposób uzyskiwania sygnałów audio z wielu mikrofonów w Matlab? - Matlab, przetwarzanie sygnału, mikrofon

Czy istnieje sposób na uzyskanie sygnałów audio z wielu mikrofonów w programie Matlab? - Matlab, przetwarzanie sygnału, mikrofon

Chcę pobrać wiele mikrofonów USB jednocześnie w programie Matlab (2012a). Dwie funkcje nagrywania są jednak krótkie. 1, recordblocking() - Pozwala użytkownikowi określić czas nagrywania, ale każdy mikrofon musi być nagrany NA ZAMÓWIENIE. Więc nie znam żadnego sposobu na jednoczesne nagrywanie. 2, record() - Umożliwia użytkownikowi jednoczesne nagrywanie wielu sygnałów, ale działa tylko przez 1 sekundę (mniej więcej).

Użyłem następującego kodu:

recObj1 = audiorecorder(44100, 16, 1, 1);
recObj2 = audiorecorder(44100, 16, 1, 3);
disp("Start speaking.")
% recordblocking(recObj1, n);
% recordblocking(recObj2, n);
disp("Real recording.")
% by the way, the following function doesn"t take "on" as the second argument as opposed to what the internal/external documentation says
record(recObj1, 1);
record(recObj2, 1);

disp("End of Recording.");

W zasadzie nie udało mi się uzyskać jednoczesnego nagrywania wielu wejść mikrofonowych przez n sekund. Proszę o pomoc.

Odpowiedzi:

0 dla odpowiedzi № 1

Oczywiście czytasz tę dokumentację, która dotyczy nagrywania danych z portów: http://www.mathworks.de/de/help/matlab/ref/record.html

To jest funkcja nagrywania audiorecorder: http://www.mathworks.de/de/help/matlab/ref/audiorecorder.record.html

Drugi argument wejściowy to czas trwania.


0 dla odpowiedzi nr 2

Spróbuj tego:

%records from speaker IDs 0 (probably internal microphone) & 3,
%using audiorecorder function.

recobj1 = audiorecorder(22500,16,2,0);
recobj2 = audiorecorder(22500,16,2,3);

disp("start speaking.")
record(recobj1,5);
record(recobj2,5);

recordblocking(recobj1,5);
%recordblocking(recobj3,2);

disp("end of recording");

y1 = getaudiodata(recobj1);
wavwrite(y1,22500,16,"recobj1");

y2 = getaudiodata(recobj2);
wavwrite(y2,22500,16,"recobj2");

plot(y1)
plot(y2)

Tworzy również wyniki. Powiększ, aby zobaczyć różnice między dwoma wyjściami mikrofonowymi.