2017-02-14 24 views
1

wavrecordはもう使用されていないので、最近のバージョンのmatlabでは動作しなくなりました。これを変換するにはどうすればいいですか:wavrecordをaudiorecorderに変換するにはどうすればよいですか?

Fs=8000; 

my_voice=wavrecord(3*Fs,Fs,'int16'); 

wavplay(myvoice,Fs); 

Matlabで今動作していますか?

+0

https://se.mathworks.com/matlabcentral/answers/165279-how-to-change-wavrecord-to-audiorecorderをご覧ください。 –

答えて

0

コード:

% Setup the recording object 
Fs = 8000; 
Nbits = 16; 
my_recorder = audiorecorder(Fs, Nbits, 1) 

% Record the audio 
record(my_recorder, 3); 
% Retrieve the sampled recording 
my_voice = getaudiodata(my_recorder); 
% Play the sampled recording 
play(my_voice); 

これは(answer @Jørgen linked in the commentsに似て)あなたがあなたの質問に投稿したコードを再現します。上記のコードの

説明:

まずは、あなたのコードが何をしたか打破しましょう。

my_voice = wavrecord(3*Fs, Fs, 'int16')Fs = 8000 Hzでサンプリングされた16ビットオーディオのレコード秒。チャネルを指定しない場合、デフォルトはmono、または1チャネル入力です。

今、この動作をaudiorecorder()機能で複製したいとします。

audiorecorder(Fs, nBits, nChannels)audiorecorderというオブジェクトを作成し、nBitsというオーディオをFs Hzに作成します。

あなたはそうnBits = 16Fs = 8000 Hzでサンプリングし、あなたが1チャンネルの音声入力を使用していたwavrecord()とチャンネルを指定していなかったので、ここでnChannels1であることから、16ビットのオーディオを録音したい:my_recorder = audiorecorder(8000,16,1)

さらに、録画時間を3秒に設定します。したがって、3秒のmy_recorderオブジェクトのデータを記録する必要があります。record(my_recorder, 3)

サンプリングされたオーディオを取得するために:my_voice = getaudiodata(my_recorder)

関連する問題