首页 文章

在matlab中保存wav文件

提问于
浏览
2

我在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

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

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

    filename = 'say.wav';
    

    您可以使用

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

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

    filename = input('give me a filename: ', 's');
    
  • 2

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

相关问题