【发布时间】:2014-05-05 16:31:31
【问题描述】:
我正在开发一个程序,该程序接收音频文件,定位然后从文件中删除任何静音。此时程序运行,但是当我们播放返回的声音时,它只是原始文件的减慢版本。这个函数接受一个声音文件,然后是一个无声片段的开始和停止时间。然后该函数制作两个剪辑(一个剪辑之前的剪辑,一个静音之后的剪辑)并将这两个剪辑放在目标声音对象中。
def spliceAudio(audio, start, stop):
clipOneStart = 0
clipOneEnd = start - 1
clipTwoStart = stop + 1
clipTwoEnd = getLength(audio) - 1
target = makeEmptySound(getLength(audio) - (stop-start))
index = 0
for source in range(clipOneStart, clipOneEnd):
value = getSampleValueAt(audio, source)
setSampleValueAt(target, index, value)
index = index + 1
for source in range(clipTwoStart, clipTwoEnd):
value - getSampleValueAt(audio, source)
setSampleValueAt(target, index, value)
index = index + 1
play(target)
return target
对我来说,一切看起来都应该正常工作,但并没有给我们预期的结果。有什么想法吗?
【问题讨论】:
-
value - getSampleValueAt(audio, source)。那个连字符是错字吗? -
哎呀,是的。不过,修复并没有改变目标声音对象。
-
Idk 如果这有帮助,但 iirc Echo Nest API 应该有用;也检查一下forever.fm。开发人员在他的博客上详细讨论了他如何处理大量切割、分割和拼接。
标签: python audio jython splice