How to generate and play audio in real time with dsp toolbox

조회 수: 10 (최근 30일)
Luke Plausin
Luke Plausin 2013년 3월 11일
Hi everybody,
I am writing an application which must simultaneously analyse video frames and generate & play an audio stream. I am trying to use a dsp.AudioPlayer object to do this but I'm having lag issues. Without code writing to the dsp.AudioPlayer object I'm achieving 30-40 fps, with audio output I get less than 1. After profiling I can see most of the time is going into a for loop which pushes samples from a buffer to the audio object with the step function.
obj.hap = dsp.AudioPlayer;
sc_samples = 0:(1/obj.sc_sample_rate):path.tof; % Time samples
sc_voltage = interp1(path.pixelt, real(path.direct), sc_samples, 'linear');
% Sound wave stored in sc_voltage, with time base sc_samples
% sample rate is 8000hz
tic
for samp = 1:length(sc_samples)
step(obj.hap, sc_voltage(samp));
end
time = toc
Is there any way to copy the whole buffer at once? Would this boost performance? I am aware of sound outputs in the data acquisition toolbox but this isn't compatible with 64 bit versions of Matlab.
Thanks for your help

답변 (2개)

yeshwanth manhcuri
yeshwanth manhcuri 2013년 5월 21일
try with wavread and wavwrite functions....audio player will show some time lag/..............

Luke Plausin
Luke Plausin 2013년 5월 21일
Audio had to be computed on the fly so precomputing to wav files was not an option. In the end I rewrote my code in C++ with port audio. Thanks for looking anyway

카테고리

Help CenterFile Exchange에서 Code Generation and Deployment에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by