假设您使用 scipy 读取了波形文件。
然后你需要有“编辑点”这些是用户想要保留的输入和输出值(例如以秒为单位)。您可以从文件中获取这些信息,也可以通过显示波形文件并获得鼠标点击来获取这些信息。如果用户提供了应该删除的部分音频文件,那么这需要首先被否定
这不是最有效的解决方案,但在许多情况下应该没问题。
import scipy.io.wavfile
fs1, y1 = scipy.io.wavfile.read(filename)
l1 = numpy.array([ [7.2,19.8], [35.3,67.23], [103,110 ] ])
l1 = ceil(l1*fs1)#get integer indices into the wav file - careful of end of array reading with a check for greater than y1.shape
newWavFileAsList = []
for elem in l1:
startRead = elem[0]
endRead = elem[1]
if startRead >= y1.shape[0]:
startRead = y1.shape[0]-1
if endRead >= y1.shape[0]:
endRead = y1.shape[0]-1
newWavFileAsList.extend(y1[startRead:endRead])
newWavFile = numpy.array(newWavFileAsList)
scipy.io.wavfile.write(outputName, fs1, newWavFile)