【发布时间】:2021-07-27 19:16:18
【问题描述】:
我希望将 Python 中的波形文件与它们之间的静默结合起来。这里使用wave 的代码运行良好:
How to join two wav files using python?
但我需要在文件之间放置一些空间,以便不同的文件对以相同的方式间隔。我有这段代码来计算 wav 之间需要的空间来使总 10 秒:
import wave
file_1 = wave.open('file_1.wav')
file_2 = wave.open('file_2.wav')
total_length = 0
for item in [file_1,file_2]:
item_length = item.getnframes()/item.getframerate()
total_length = total_length + item_length
space_between = 10-total_length
所以现在我需要知道是否有办法使用我在上面链接的代码中创建的space_between 变量,以便在合并两个文件时将它们分开。我已经看到了一些用于生成不同类型波形的脚本,并且我已经弄清楚了如何使它们基本上静音,但是我无法指定长度,或者至少无法弄清楚如何指定。有什么想法吗?
编辑:通过将上面的代码与此处给出的代码相结合,我能够找到一种方法来制作指定长度的静默文件: python - how can I generate a WAV file with beeps?
谢谢各位!
【问题讨论】:
-
“之间的空格”是指要在它们之间插入静音吗?假设这些是 PCM 文件,静音为 0。只需添加 N 帧的 0。
-
所以你需要将 space_between 乘以帧速率。当然,如果 wav 文件的帧速率不同或组合时长超过 10 秒,就会出现问题。
-
是的,我做了这么多是有道理的——但是我到底是在哪里产生这种沉默呢?对于如何组合 wav 文件,我有几个选项,但到目前为止我正在使用这个:stackoverflow.com/a/2900266/14132599 那么我在什么时候说“添加 N 帧 0”?