2015-11-05 29 views
0

我有一個項目,我必須播放不同的音頻文件通過不同的發言者。文件的開始時間很重要(我的意思是他們必須同時開始播放)。如何通過三個不同的揚聲器播放三個不同的音頻文件?

我的第一個選擇是使用聯網計算機,每臺計算機一個文件,以及一個控制這三個系統(例如一臺服務器和兩臺客戶機)的程序。

但我認爲這比使用聲卡更好,例如使用聲卡。 經過一番搜索,我發現有很多這些聲卡。我想知道,是否可以使用Python或Matlab程序或任何其他方式來控制通道?有沒有圖書館?

回答

1

MATLAB中的audioplayer函數只支持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 

此代碼將在默認輸出設備上播放音頻。如果有三個或更多頻道,您將在三個獨立頻道收聽音頻。如果不是,取決於平臺,它會混合到兩個通道。

您可以參考doc頁面獲取相關信息。

Dinesh

+0

謝謝親愛的Dinesh,我會檢查它並通知你結果。 – Abraham

相關問題