使用java识别mp3末尾的静音

Posted

技术标签:

【中文标题】使用java识别mp3末尾的静音【英文标题】:Identifying silence at the end of an mp3 using java 【发布时间】:2012-06-06 16:22:57 【问题描述】:

尝试在 mp3 格式的音频末尾检测静音,所有格式都会有用,但 mp3 格式是最重要的

【问题讨论】:

有趣的问题,但到目前为止你尝试过什么? 我最近写了一个小c++应用程序:WaveMix,你需要的可能是把mp3格式转码为线性PCM,检查签名数据的样本值是否为0,检查样本值是否为无符号数据的中间值 【参考方案1】:

我所知道的在声音剪辑结尾可靠检测静音的唯一方法是将其转换为 PCM 格式并执行以下计算之一,检查某个最小截止幅度。

Decibels (dB) Root Mean Square (RMS)

我从未设法实现 dB,但 RMS 相对简单,应该适用于此用途。我将它用于在 DukeBox 播放器的跟踪区域左下方/右下方看到的小条。

关于如何使用 MP3 格式执行任何操作,请参阅Java Sound info. page 上的详细信息。

【讨论】:

实际上没有必要计算每个样本的 dB 或 RMS。从理论上讲,由于您正在寻找静音,您可以只寻找值为零的样本,但在实践中,您需要一个小的截止值 - 无需为此计算 RMS 或 dB。绝对值就可以了。

以上是关于使用java识别mp3末尾的静音的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式操作 MP3:静音某些部分?

如何以编程方式从 MP3 中删除静音?

Delphi:如何创建具有特定秒数的静音 MP3 文件?

使用静音检测分割音频文件

使用带有silencedetect的FFMPEG来消除音频静音

谷歌云文本到语音生成的mp3开头和结尾静音