私はMatlabで自分の声を録音し、それにエコーを追加するつもりです。目的のエコー効果を得るための1つの解決策を考え出しました。
- サンプリングされたオーディオを時間領域で遅延させ、元のサンプルに追加します。
これを行うために、私はMatlabを使用しており、基本的に次のことを行いました。
recObj = audiorecorder(44100, 16, 2);%sampling rate of 44100Hz, stereo
recordblocking(recObj,length);%record audio for a fixed length duration
y = time_delay(getaudiodata(recObj) , 5000 );%set a delay of 5000 to original sampled audio data
function [ y ] = time_delay ( x , R )
%this function sets a delay to x of R
y = zeros(length(x) + R , 1);
y(R + 1:length(y)) = x(1:length(x));
ご覧のとおり、録音されたオーディオの再生に使用できるrecObjがあります。録音されたオーディオの遅延バージョンを取得するために、getaudiodata(recObj)と独自の関数time_delayを使用しました。 time_delay関数によって取得された遅延オーディオデータから新しい遅延オーディオレコーダーオブジェクトを取得する方法がわかりません。オーディオレコードオブジェクトが必要です。これが何かを再生する唯一の方法だからです。だから、私の質問は:
- これは、オーディオ信号で目的のエコー効果を得るのに適したアプローチですか?
そうである場合、遅延オーディオデータをオーディオレコーダーオブジェクトに設定するにはどうすればよいですか?