我有一些加载到numpy数组中的音频数据,我希望通过查找静默部分来分割数据,即音频幅度在一段时间内低于某个阈值的部分。
一种非常简单的方法是这样的:
values = ''.join(("1" if (abs(x) < SILENCE_THRESHOLD) else "0" for x in samples))
pattern = re.compile('1{%d,}'%int(MIN_SILENCE))
for match in pattern.finditer(values):
# code goes here
上面的代码查找至少有MIN_SILENCE个连续元素小于SILENCE_THRESHOLD的部分。
现在,很明显,上面的代码效率非常低,并且是对正则表达式的严重滥用。有没有其他更有效的方法,但仍然可以得到同样简单和简短的代码?
https://stackoverflow.com/questions/4494404
复制相似问题