首页 > 解决方案 > 从音频文件(数组)中切片(分离)片段并删除它们

问题描述

我想从长音频文件(10 分钟以上)中切出特定片段并单独保存。到目前为止它工作正常,但我想从数组中删除这些段并缩短数组。

import numpy as np
import itertools

b = np.array([1,2,3,4,5,6,7,8,9])

start = 2
stop = 4
index = list(range(start, stop+1))
print(index)

b = np.array(list(itertools.compress(b, [i not in index for i in range(len(b))])))
print(b)

那是我的方法,但它不适用于具有更大数字的真实脚本。我使用 librosa 加载和保存音频文件,但我还没有找到一个有用的命令来解决我的问题。

有没有更优雅的方式来做到这一点?

标签: pythonlistnumpyitertoolslibrosa

解决方案


您可以将数组的 np 切片和串联用作:

np.concatenate([b[0:start],b[stop:len(b)]])

希望这可以帮助


推荐阅读