python中音频文件的信号处理

发布于 2024-10-13 02:35:10 字数 129 浏览 0 评论 0原文

我想在未压缩的 AIFF 音频文件中进行静音检测。我更喜欢用 Python 来做,但如果效率超级低的话,我会考虑其他选择。我正在处理的未压缩文件预计为 20 MB(最大大小)。

我可以了解信号处理的基础知识,但不是这方面的专家。

I am tying to do silence detection in uncompressed AIFF audio files. I prefer to do it in Python, but would consider other options if this is super inefficient. The uncompressed files I am dealing with are expected to be 20 MB (maximum size).

I can understand basics of signal processing, but am not an expert in it.

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

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

发布评论

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

评论(2

娇俏 2024-10-20 02:35:10

你很幸运! aifc 库似乎足以支持解决您的问题。

You're in luck! The aifc library seems to do enough to support the solving of your problem.

回梦 2024-10-20 02:35:10

与语言无关的伪代码:

  • 针对每个时间窗口(例如 10 ms)
    • 计算时间窗口内的RMS功率
    • 静音 = RMS 功率 <沉默阈值

计算 RMS 功率:

  • sum_sq = 0
  • 对于 N 个样本窗口中的每个样本,
    • sum_sq += 样本^2
  • RMS power = sqrt(sum_sq / N)

您可能还想添加进一步的检测层,例如确定静音 = M 个连续的静音窗口,其中 M 确定静音需要多长时间在它算作真正的沉默之前。

Language-agnostic pseudo code:

  • for each time window (e.g. 10 ms)
    • calculate RMS power in time window
    • silence = RMS power < silence threshold

To calculate RMS power:

  • sum_sq = 0
  • for each sample in N sample window
    • sum_sq += sample^2
  • RMS power = sqrt(sum_sq / N)

You probably also want to add a further layer of detection, e.g. decide that silence = M consecutive silent windows, where M determines how long a silence needs to be before it counts as an actual silence.

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