wavrecordはもう使用されていないので、最近のバージョンのmatlabでは動作しなくなりました。これを変換するにはどうすればいいですか:wavrecordをaudiorecorderに変換するにはどうすればよいですか?
Fs=8000;
my_voice=wavrecord(3*Fs,Fs,'int16');
wavplay(myvoice,Fs);
Matlabで今動作していますか?
wavrecordはもう使用されていないので、最近のバージョンのmatlabでは動作しなくなりました。これを変換するにはどうすればいいですか:wavrecordをaudiorecorderに変換するにはどうすればよいですか?
Fs=8000;
my_voice=wavrecord(3*Fs,Fs,'int16');
wavplay(myvoice,Fs);
Matlabで今動作していますか?
コード:
% 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 = 16
がFs = 8000
Hzでサンプリングし、あなたが1チャンネルの音声入力を使用していたwavrecord()
とチャンネルを指定していなかったので、ここでnChannels
が1
であることから、16ビットのオーディオを録音したい:my_recorder = audiorecorder(8000,16,1)
。
さらに、録画時間を3
秒に設定します。したがって、3
秒のmy_recorder
オブジェクトのデータを記録する必要があります。record(my_recorder, 3)
。
サンプリングされたオーディオを取得するために:my_voice = getaudiodata(my_recorder)
。
https://se.mathworks.com/matlabcentral/answers/165279-how-to-change-wavrecord-to-audiorecorderをご覧ください。 –