如何将音频帧附加到wav文件python

2024-09-30 08:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我的python代码中有一个PCM音频帧流。是否有方法以附加到现有.wav文件的方式写入帧。我所尝试的是我采取2 wav文件。从1 wav文件中,我读取数据并写入现有的wav文件

import numpy
import wave
import scipy.io.wavfile
with open('testing_data.wav', 'rb') as fd:
   contents = fd.read()
contents1=bytearray(contents)
numpy_data = numpy.array(contents1, dtype=float)
scipy.io.wavfile.write("whatstheweatherlike.wav", 8000, numpy_data)

数据被附加到现有的wav文件中,但当我试图在媒体播放器中播放时,wav文件被损坏


Tags: 文件方法代码ioimportnumpydatacontents
1条回答
网友
1楼 · 发布于 2024-09-30 08:17:13

使用wave库,您可以通过以下方式实现:

import wave

audiofile1="youraudiofile1.wav"
audiofile2="youraudiofile2.wav"

concantenated_file="youraudiofile3.wav"
frames=[]

wave0=wave.open(audiofile2,'rb')
frames.append([wave0.getparams(),wave0.readframes(wave0.getnframes())])
wave.close()

wave1=wave.open(audiofile2,'rb')
frames.append([wave1.getparams(),wave1.readframes(wave1.getnframes())])
wave1.close()

result=wave.open(concantenated_file,'wb')
result.setparams(frames[0][0])
result.writeframes(frames[0][1])
result.writeframes(frames[1][1])

result.close()

连接的顺序正是这里的书写顺序:

result.writeframes(frames[0][1]) #audiofile1
result.writeframes(frames[1][1]) #audiofile2

相关问题 更多 >

    热门问题