gpt4 book ai didi

C++ 将原始音频从 22050 上采样到 48000 Hz

转载 作者:可可西里 更新时间:2023-11-01 10:07:01 26 4
gpt4 key购买 nike

我有

形式的原始音频数据
vector<short> m_shorts;

音频数据为 22050 kHz 单声道。

有人知道我如何(没有任何第三方库)快速将短 vector 转换为 48000 Hz 单声道吗?

我知道它不会改善声音。这仅用于将音频数据传递给效果(采样率越高听起来越好)。

谢谢你的帮助。

最佳答案

如果你想将采样频率从 22050Hz 加倍到 44100Hz(这是 22050 的两倍)你可以做一些 linear interpolation :

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;
}

但我不是音频或信号处理专家。可能有更聪明的方法...(可能是 Fourier transform 然后是逆傅里叶)。

而且我不确定“听起来会更好”。

关于C++ 将原始音频从 22050 上采样到 48000 Hz,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com