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!