【问题标题】:Concatenate wav files using wave in python在python中使用wave连接wav文件
【发布时间】:2016-03-23 05:37:43
【问题描述】:

我正在尝试将 wav 文件列表连接成一个连续的 wav 文件。我使用了以下 sn-p 但输出不正确,听起来几乎就像文件在彼此之上。 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()

【问题讨论】:

  • 有多少个文件?这只是将您的 wav 帧数据中的 2 个写入输出文件
  • 数字可以变化,通常小于6

标签: python audio text-to-speech wav wave


【解决方案1】:

我假设您使用this question 作为您的参考。但是,您所采用的代码仅考虑了 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() 是否为每个文件返回相似的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2010-09-25
    • 1970-01-01
    • 2015-03-24
    相关资源
    最近更新 更多