繁体   English   中英

在python中使用wave连接WAV文件

[英]Concatenate wav files using wave in python

我正在尝试将WAV文件列表串联到单个连续的WAV文件中。 我使用了以下代码段,但输出不正确,听起来几乎就像文件在彼此之上。 audio_files是具有按预期播放的.wav文件名的列表。

这是我当前的代码:

outfile = "sounds.wav"

    data= []
    for wav_file in audio_files:
        w = wave.open(wav_file, 'rb')
        data.append( [w.getparams(), w.readframes(w.getnframes())] )
        w.close()
    output = wave.open(outfile, 'wb')
    output.setparams(data[0][0])
    output.writeframes(data[0][1])
    output.writeframes(data[1][1])
    output.close()

我假设您正在使用此问题作为参考。 但是,您所采用的代码仅考虑了2个wav文件,因为这是原始问题所要求的。

尽管我不能通过这种方法解决声音相互叠加的问题,但是您应该遍历data列表中的每个项目。

output = wave.open(outfile, 'wb')
output.setparams(data[0][0])
for params,frames in data:
    output.writeframes(frames)
output.close()

以确保您放入每个文件的框架。

要记住的一件事是,新的wav文件的参数可能特定于每个文件,并且您可能要检查getparams()是否为每个文件返回相似的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM