在matlab中保存wav文件

时间:2016-12-16 04:44:09

标签: matlab

我在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 个答案:

答案 0 :(得分:2)

它正在被重写,因为您使用了常量文件名。您需要使.wav文件唯一,以确保它是新创建的。您可以将当前时间(以毫秒为单位)添加到文件名中,以使其唯一。

答案 1 :(得分:0)

正如Nilu所说,你的问题是你的脚本/函数filename是不变的。

如上所述,一种选择是使用某种时间戳,例如:而不是

filename = 'say.wav';

你可以使用

filename = ['say_', datestr(now,'FFF'), '.wav'];

或者,根据你的音频文件长度(如果它足够长),你可以要求用户提供一个独特的文件名,通过将所有代码封装到一个函数中并要求一个字符串用作参数{ {1}}或使用Matlab的filename

input()