我在matlab中遇到问题
我想录制一段演讲2秒然后读取录制的声音并将其绘制
我使用代码
FS = 8000;
new_wav = wavrecord(2*FS,FS,'int16');
x = wavread(new_wav);
plot(x);
但出现错误
??? Error using ==> fileparts at 20
Input must be a row vector of characters.
Error in ==> wavread>open_wav at 193
[pat,nam,ext] = fileparts(file);
Error in ==> wavread at 65
[fid,msg] = open_wav(file);
Error in ==> test at 2
x = wavread(new_wav);
我正确录制了录制的声音文件,但是当我想通过matlab录制新的声音文件时,我发现了这个错误。
我通过改变FS和'int16'尝试了很多方法,但没有任何反应。
感谢
答案 0 :(得分:2)
答案 1 :(得分:0)
name = input('Enter Your Name ','s');
file = sprintf('%s%s.wav','train - ',name);
input ('You have 2 seconds to a word. Press enter when ready ')
y = wavrecord (2*fs,fs);
wavwrite(y,fs,file);
答案 2 :(得分:0)
最后这是完整的代码:)
%录制您的声音5秒钟。
recObj = audiorecorder;
disp('Start speaking.')
recordblocking(recObj, 3);
disp('End of Recording.');
%播放录音。
play(recObj);
%将数据存储在双精度数组中。
myRecording = getaudiodata(recObj);
%绘制波形。
plot(myRecording);