上采样原始音频从22050到48000赫兹
C++ Upsampling raw audio from 22050 to 48000 Hz
我有原始音频数据的形式
vector<short> m_shorts;
音频数据为22050 kHz单声道。
有没有人知道我怎么能(没有任何第三方库)快速转换短矢量到48000赫兹单声道?
我知道它不会改善声音。这只是为了将音频数据传递给效果(更高的采样率听起来更好)。
谢谢你的帮助
如果您想将采样频率从22050Hz
加倍到44100Hz
(这是22050的两倍),您可能会做一些线性插值:
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;
}
但我不是一个音频或信号处理专家。可能有更聪明的方法……(也许是傅里叶变换,然后是傅里叶反变换)
我不确定"would sounds better"