python - 使用python从给定的音频文件中检测静音索引

标签 python audio

我正在尝试使用 numpy、struct 等各种模块在 python 中处理音频文件。但我真的很难检测文件中的静音,因为静音的存在。我遇到的一种方法是在我的音频信号上滑动一个固定时间间隔的窗口并记录平方元素的总和。我是 python 新手,几乎不知道它,因此无法实现此方法。

最佳答案

如果您对外部图书馆开放,一种快速的方法是使用 pydub .pydub有一个名为 silence 的模块有方法detect_silencedetect_nonsilent这可能对您的情况有用。
然而,唯一需要注意的是,沉默至少需要半秒钟。
下面是我尝试使用音频文件的示例实现。
但是,由于我的静音时间不到半秒,因此只有少数静音范围是正确的。
您可能想尝试一下,通过调整 min_silence_len 来查看它是否适合您。和 silence_thresh .
程序

from pydub import AudioSegment, silence

myaudio = AudioSegment.from_wav("a-z-vowels.wav")

silence = silence.detect_silence(myaudio, min_silence_len=1000, silence_thresh=-16)

silence = [((start/1000),(stop/1000)) for start,stop in silence] #convert to sec

print(silence)
结果
[(0, 1), (1, 14), (14, 20), (19, 26), (26, 27), (28, 30), (29, 32), (32, 34), (33, 37), (37, 41), (42, 46), (46, 47), (48, 52)]

关于python - 使用python从给定的音频文件中检测静音索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40896370/

相关文章:

python - 将 sqlite3 行读入对象的更简单方法?

python - 嵌入式 pdf 文件未显示在 Django 中

android - openSL ES Android : Irregular audio callback(s)

html - 寻找与SCORM 5兼容且带有音频的HTML类(class)的示例,该类(class)在SAP内容播放器上有效

audio - 使用 FFMPEG 填补原始音频 UDP 流的空白

python 3; Websockets 服务器和 HTTP 服务器 - run_forever 和 serve_forever

python - 根据字符串的一部分查找列表中字符串的索引

java - 如何编写 java 库的 python 包装器

c++ - 使用 Kinect SDK 和 C++ 的 Kinect 音频

iphone - 使用Xcode播放随机声音