2016-12-16 37 views
2

私はmatlabに音声が記録され、say.wavという名前の.wavファイルとして保存されるコードを持っています。 しかし、私が直面している問題は、コードを実行するたびに.wavファイルが書き直されることです。しかし、私は声を新しい.wavファイルに記録したい。どのように私はmatlabでこれを行うことができますか?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) 

答えて

0

Niluが言ったように、あなたの問題はfilenameがあなたのスクリプト/関数で一定であることです。

1つのオプションは、前述のように、何らかの種類のタイムスタンプを使用することです。代わりに

filename = 'say.wav'; 

のあなたは(それが十分に長い場合)、あなたはカプセル化することにより、それをされ、独特のファイル名をユーザに尋ねることができる代わりに

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

を使用して、オーディオファイルの長さに依存することができますすべてのコードの関数へのパラメータとしてfilenameまたはMATLABのinput()を使用して使用する文字列を求めて:

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

ターをありがとうあなたはそんなにたくさん..。 –

+0

あなたは大歓迎です!それが参考になった場合は、 –

2

あなたはそれが新たに作成されたばかりであることを確実にするために、あなたの.wavファイルを一意にするために必要name.You一定のファイルを使用していたので、それを書き換えなっています。現在の時刻をミリ秒単位でファイル名に追加して、一意にすることができます。

+0

はそんなに –

関連する問題