0
您是否知道我可以使用任何跨平台音频库来标准化采样音频?跨平台库来规范化音频?
您是否知道我可以使用任何跨平台音频库来标准化采样音频?跨平台库来规范化音频?
标准化是一个简单的过程。这是float
个简单的实现:
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;
}
其他信号格式可容易地转化。
那么,它的简单,除非你想正常化*感知*响度。 – derobert
@derobert在上述书写风格中,rms规范化实现需要*一行*代码。 – justin
这是真的,但那不是感知响度。他们的人类听觉系统没有平均听到所有频率,所以知觉响度更难。如果您认为OP需要澄清,请参阅http://en.wikipedia.org/wiki/File:Perceived_Human_Hearing.png – derobert