我在matlab中有一个代码,其中录制语音并保存为.wav文件,名称为say.wav . 但我遇到的问题是,每次运行代码时都会重写.wav文件 . 但我希望将语音记录到新的.wav文件中 . 我怎么能在matlab中做到这一点?
代码是:
Fs = 1E+4;
nBits = 24;
nChannels = 1;
sig = audiorecorder(Fs, nBits, nChannels);
recordblocking(sig,5);
sigsound = getaudiodata(sig);
t= linspace(0, size(sigsound,1), size(sigsound,1))/Fs;
cd F:\1hp_laptop\c\my_files
filename = 'say.wav';
audiowrite(filename, sigsound, Fs)
2 回答
正如Nilu所说,你的问题是
filename
在你的脚本/函数中是不变的 .如上所述,一种选择是使用某种时间戳,例如,代替
您可以使用
或者,根据您的音频文件长度(如果它足够长),您可以要求用户提供一个独特的文件名,通过将所有代码封装到一个函数中并要求使用字符串作为参数
filename
或使用Matlab的input()
:它正在被重写,因为您使用了常量文件名 . 您需要使.wav文件唯一,以确保它是新创建的 . 您可以将当前时间(以毫秒为单位)添加到文件名中,以使其唯一 .