我有一个声音信号,作为一个numpy数组导入,我想把它切成块numpy数组。但是,我希望块只包含超过阈值的元素。例如:
threshold = 3
signal = [1,2,6,7,8,1,1,2,5,6,7]
应该输出两个数组
^{pr2}$好吧,以上是清单,但你明白我的意思。在
这是我迄今为止所做的,但这只会毁了我的公羊
def slice_raw_audio(audio_signal, threshold=5000):
signal_slice, chunks = [], []
for idx in range(0, audio_signal.shape[0], 1000):
while audio_signal[idx] > threshold:
signal_slice.append(audio_signal[idx])
chunks.append(signal_slice)
return chunks
这是一种数字方法:
请注意,这将为您提供基于拆分逻辑(基于
^{pr2}$diff
和continues项)的所有上下项目始终是交错的,这意味着您可以简单地通过索引将它们分开:您可以将列表的第一项与
threshold
进行比较,以找出上面哪一个部分会给出上面的项目。在通常,您可以使用以下代码段获取上面的项目:
这里有一个选择:
在函数中换行:
^{pr2}$有一种方法-
样本运行-
^{pr2}$运行时测试
其他方法-
时间安排-
相关问题 更多 >
编程相关推荐