【发布时间】:2021-10-20 11:20:06
【问题描述】:
我希望以各种方式组合 10 个音频样本(格式 - 可能是 wav,但这可以更改为任何格式,因为它们将被预先录制)。
from pydub import AudioSegment
sounds = []
sound1 = AudioSegment.from_wav("Dropbox/PIREAD/1.wav")
sound2 = AudioSegment.from_wav("Dropbox/PIREAD/2.wav")
sound3 = AudioSegment.from_wav("Dropbox/PIREAD/3.wav")
sound4 = AudioSegment.from_wav("Dropbox/PIREAD/4.wav")
sound5 = AudioSegment.from_wav("Dropbox/PIREAD/5.wav")
sound6 = AudioSegment.from_wav("Dropbox/PIREAD/6.wav")
sound7 = AudioSegment.from_wav("Dropbox/PIREAD/7.wav")
sound8 = AudioSegment.from_wav("Dropbox/PIREAD/8.wav")
sound9 = AudioSegment.from_wav("Dropbox/PIREAD/9.wav")
sound0 = AudioSegment.from_wav("Dropbox/PIREAD/0.wav")
sounds=[sound1,sound2,sound3,sound4,sound5,sound6,sound7,sound8,sound9,sound0]
combined_sounds = AudioSegment.empty()
for x in range(10):
for y in range(10):
combined_sounds += sounds[y]
combined_sounds.export("Dropbox/PIREAD/joinedFile.wav", format="wav")
这实际上是我阅读数字 0-9 并将它们组合成一个整体 wav 文件。
它可以工作 - 但是一旦循环扩展 x=100, x=1000 就会很慢。
问:我怎样才能加快速度?
数字的实际顺序将从文本 $ 中读取 - 例如“354224848179261915075”,恰好是第 100 个斐波那契数。
干杯 格伦
【问题讨论】:
-
你为什么要做双循环?如果您想要 1-10 然后 1-10 一次又一次地总共 10 次,那么最好稍后重新添加 10 元素段,而不是再次遍历所有 10 个文件。 (区别是:走10^2次或走2*10次)
-
见下文 - 只是测试速度。噢噢噢!!!在我问之前应该虽然 BigO。