跨平台库来标准化音频?

发布于 2024-12-09 00:30:41 字数 33 浏览 0 评论 0原文

您知道我可以使用任何跨平台音频库来标准化采样音频吗?

Do you know any cross-platform audio library I can use to normalize sampled audio?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

香草可樂 2024-12-16 00:30:41

标准化是一个简单的过程。这是浮点型的简单实现:

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

可以轻松转换其他信号格式。

normalization is an easy process. this is a simple implementation for floats:

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

other signal formats can be easily converted.

多孤肩上扛 2024-12-16 00:30:41

Google 是您的朋友:

http://normalize.nongnu.org/

https://neon1.net/prog/normalizer.html

如果您不能在项目中使用 GPL 代码,那么只需阅读说明第二个网站上的算法并实现您的 自己的。这很简单。

Google is your friend:

http://normalize.nongnu.org/

https://neon1.net/prog/normalizer.html

If you can't use GPL code in your project, then just read the description of the algorithm on the second website and implement your own. It's pretty simple.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文