首页 > 开发 > 云计算 > 正文

Matlab 读取麦克风 清风易逝 明月难圆

2017-07-01 22:18:35  来源:慕课网

麦克风读取内容并画图,涉及到背景的保存

clc
clear all;
while 1
    R = audiorecorder(8000, 16 ,1) ;
    %创建一个保存音频信息的对象,它包含采样率,时间和录制的音频信息等等。
    %44100表示采样为44100Hz(可改为8000, 11025, 22050等,此数值越大,录入的声音质量越好,相应需要的存储空间越大)
    %16为用16bits存储,2为两通道即立体声(也可以改为1即单声道)。
    record(R);
    %开始录制,此时对着麦克风说话即可。
    pause(1);
%     pause(R);
%     %暂停录制。
%     play(R);
%     %播放录制的声音。
%     resume(R);
    %继续录制.
    stop(R);
    %停止录制
    myspeech = getaudiodata(R);
    %得到以n*2列数字矩阵存储的刚录制的音频信号。
    %对这个矩阵你就可以用各种滤波器进行处理,或者把它和别的音频混音等等。你也可以画出它的波形(如果时间较长画波形可能会花点时间)。
  figure1 = figure;

axes1 = axes('Parent',figure1);
hold(axes1,'on');

plot(myspeech,'g');
box(axes1,'off');
grid(axes1,'off');
% 设置其余坐标轴属性
set(axes1,'Color',[0 0 0],'XColor',[1 1 1],'YColor',[1 1 1]);
set(figure1,'visible','off');
FG=getframe(gcf);
imwrite(FG.cdata,'D:\3d\img\audio.jpg')

%  print (h,'-djpeg','-noui','D:\3d\img\audio.jpg');
    %画出波形

end