私は生のオーディオデータを次の形式で持っています
vector<short> m_shorts;
音声データは 22050 kHz モノラルです。
ショートベクターを48000 Hzのモノラルにすばやく変換する方法を(サードパーティのライブラリなしで)知っている人はいますか?
音質が向上しないことは承知しています。これは、オーディオ データをエフェクトに渡すためだけのものです (サンプル レートが高いほどサウンドが良くなります)。
お手伝いありがとう。
22050Hz
から44100Hz
(22050 の 2 倍)までのサンプリング周波数を 2 倍にしたい場合は、線形補間を行うことができます。
vector<short> m_shorts;
vector<short> outputs;
unsigned inplen = m_shorts.length();
output.resize(2*inplen+1);
for (unsigned ix = 0; ix < inplen; ix++) { // not sure of the bounds
output[2*ix] = m_shorts[ix];
output[2*ix+1] = (m_shorts[ix] + m_shorts[ix+1])/2;
}
しかし、私はオーディオまたは信号処理の専門家ではありません。もっと巧妙な方法があるかもしれません... (おそらくフーリエ変換と逆フーリエ)。
そして、「音が良くなる」かどうかはわかりません。