2016-12-16 323 views
2

我在matlab中有一个代码,其中语音被记录并保存为名为say.wav的.wav文件。 但我面临的问题是,每次运行代码时,.wav文件都会被重写。但是我希望将声音录制到新的.wav文件中。我如何在matlab中做到这一点?在matlab中保存wav文件

的代码是:

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) 

回答

0

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

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

filename = 'say.wav'; 

可以使用

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

另外,并且根据您的音频文件的长度(如果它足够长的时间),你可以要求用户提供一个独特的文件名,通过封装成为它所有的代码放到一个函数,要求一个字符串作为参数filename或通过使用Matlab的input()

filename = input('give me a filename: ', 's'); 
+0

临屋Nk you so .. –

+0

不客气!如果有帮助,可以考虑提升和接受 –

2

是越来越重写,因为你已经使用了恒定的文件name.You需要让你的.wav文件独特的,以确保它是越来越新创建的。您可以将当前时间以毫秒为单位添加到文件名中以使其唯一。

+0

谢谢你这么多 –