2015-11-05 2 views
0

У меня есть проект, и я должен сыграть различные аудиофайлы через разные динамики. Время начала файлов важно (я имею в виду, что они должны начать играть одновременно).Как играть в три разных аудиофайла через три разных динамика?

Мой первый вариант: сетевой компьютер, один файл на компьютеры и программа, управляющая этими тремя системами (например, один сервер и два клиента).

Но я думаю, что лучше использовать звуковую карту с канал, например. После некоторого поиска я обнаружил, что таких звуковых карт много. Я хочу знать, можно ли управлять каналом с помощью программ Python или Matlab или любым другим способом? Есть ли библиотека?

ответ

1

Функция аудиоплеера в MATLAB поддерживает только 2 канала. Но вы можете использовать функциональность в DSP System Toolbox. Ниже приведен фрагмент кода:

hafr1 = dsp.AudioFileReader('myfile1.wav');% Can be other formats as well 
hafr2 = dsp.AudioFileReader('myfile2.wav'); 
hafr3 = dsp.AudioFileReader('myfile3.wav'); 
hap = dsp.AudioPlayer; 
hap.SampleRate = hafr1.SampleRate; % Assuming that all files have same sample rate or else you have to do some clever mixing. 
while ~isDone(hafr1) % assuming same size. You need to add some clever logic to adjust the number of channels if they are of different sizes 
    data1 = step(hafr1); 
    data2 = step(hafr2); 
    data3 = step(hafr3); 
    step(hap, [data1 data2 data3]); 
end 

Этот код воспроизводит звук на устройстве вывода по умолчанию. Если у этого есть три или более канала, вы услышите звук на трех отдельных каналах. Если нет, в зависимости от платформы, он будет смешаться в два канала.

Информацию можно найти на странице doc.

Dinesh

+0

Спасибо вам, дорогой Динеш, я проверю его и сообщит вам о результате. – Abraham