【问题标题】:How to create sound clips when silent?静音时如何创建声音片段?
【发布时间】:2013-11-12 18:30:07
【问题描述】:

所以我正在编写一个程序,在没有声音播放时将音频剪辑分成多个部分。这样从声音文件创建的所有剪辑都只包含有声音的部分。我将如何使用 Java 完成此任务?我打算使用 FLAC,但该程序目前也支持 WAV。 RMS 是确定这一点的最佳方法吗?任何代码的奖励积分。

【问题讨论】:

  • 我不是信号处理专家,但我认为如果你对音频进行 FFT,当有静音时,你可能会得到所有频率的幅度接近零。
  • 虽然这在计算上会非常昂贵......

标签: java audio javasound voice-recording


【解决方案1】:

您可以通过平均样本 n 和 n+1 之间的差异的平方来粗略估计采样波形的“响度”。这将为您提供一个粗略的指示,了解这些样本对听众的“响亮”程度。

该方法对高频比对低频更敏感,这就是为什么如果声音具有非常极端的频率分布,它可能会偏离很多。

要获得精确的解决方案,您将需要采用 FFT 方法并且还通过代表听者耳朵的模型校正提取的频率加权(并非所有频率在相同的 DB 级别下都感觉同样响亮)。

【讨论】:

  • 没有计算成本更低的方法吗?
  • @Skylion 完全取决于您的精度要求。试试平方增量法。如果它对您的要求太不准确,则没有绕过频率分析。 FFT 现在并没有那么昂贵(任何 MP3 编码器都需要这样做,并且您可以在当今广泛的硬件平台上进行实时编码)。编辑:哎呀,甚至 音频播放器 这样做只是为了显示精美的频谱分析。看看 JavaMod 播放器(它的免费和开源):javamod.de
  • 我发现这个算法类似于你所描述的:source-code.biz/dsp/java/apidocs/biz/source_code/dsp/signal/…
猜你喜欢
  • 1970-01-01
  • 2011-11-25
  • 1970-01-01
  • 2013-10-15
  • 2015-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-24
相关资源
最近更新 更多