我有一个项目,必须通过3不同的扬声器播放3不同音频文件。文件的开始时间很重要(我的意思是它们必须同时开始播放)。
我的第一个选择是使用3联网计算机,每台计算机一个文件,以及一个控制这三个系统的程序(例如一个服务器和两个客户端)。
但我认为最好使用4声道的声卡。经过一番搜索,我发现有很多这样的声卡。我想知道,是否可以使用Python或Matlab程序或任何其他方式控制通道?有图书馆吗?
MATLAB中的音频播放器功能仅支持2个通道。但您可以使用DSP系统工具箱中的功能。下面的代码片段可以帮助:
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
此代码将在默认输出设备上播放音频。如果有三个或三个以上的频道,您将在三个独立的频道上听到音频。如果没有,根据平台的不同,它将被分成两个频道。
您可以参考文档页面了解信息。
Dinesh