您知道我可以用来规范化采样音频的任何跨平台音频库吗?
答案 0 :(得分:1)
标准化是一个简单的过程。这是float
s的简单实现:
float peakAmplitude(0.0f);
/* find the peak */
for (size_t idx(0); idx < bufferLength; ++idx) {
peakAmplitude = std::max(peakAmplitude, std::fabs(buffer[idx]));
}
if (0.0f >= peakAmplitude) {
std::cout << "signal is silent\n";
return;
}
/* apply normalization */
const float mul(1.0f / peakAmplitude);
for (size_t idx(0); idx < bufferLength; ++idx) {
buffer[idx] *= mul;
}
其他信号格式可以轻松转换。
答案 1 :(得分:0)
Google是你的朋友:
https://neon1.net/prog/normalizer.html
如果你不能在你的项目中使用GPL代码,那么只需在第二个网站上阅读算法的描述并实现你自己的。这很简单。