How to get partial data from audiorecorder
1 次查看(过去 30 天)
显示 更早的评论
Hi.
I want to plot my speech in realtime. now i using this code
clc; clear all; close all;
fs=14000;
l=10;
recObj = audiorecorder(fs,16,1,1);
%recObj.UserData=1;
recObj.TimerFcn = {@my_callback_fcn};
disp('Start speaking.')
recordblocking(recObj, l);
disp('End of Recording.');
y = getaudiodata(recObj);
play(recObj);
x=0:1/fs:l-1/fs;
plot(x,y);
and callback function
function my_callback_fcn(obj,event)
y = getaudiodata(obj);
plot(y);
hold on;
obj.UserData=obj.TotalSamples;
end
In this case my script begins to lag after 3-4 secs of work. How can i solve that problem? I tried to find find some fields in
recobj
that contain original data, but seems like it doesnt. So how can i atleast get partial data from recObj(planing to use plot and hold on)?
0 个评论
采纳的回答
Walter Roberson
2016-2-12
audiorecorder is not designed for real-time work. You should look at the DSP System Toolbox, which has ability to use ASIO drivers for low-latency work.
2 个评论
Derrick Ling
2017-9-19
Is this answer still valid? from this website, it states audio system toolbox is capable of doing real-time signal processing
Walter Roberson
2017-9-19
That toolbox did not exist at the time that answer was written. Probably you could use either toolbox now
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio and Video Data 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!