# -*- coding: utf-8 -*-
import wave
import pylab as pl
import numpy as np
# 打开WAV文档
f = wave.open(r"E:\aryaxyang\test1.wav", "rb")
# 读取格式信息
# (nchannels, sampwidth, framerate, nframes, comptype, compname)
params = f.getparams()
nchannels, sampwidth, framerate, nframes = params[:4]
# 读取波形数据
str_data = f.readframes(nframes)
f.close()
#将波形数据转换为数组
wave_data = np.fromstring(str_data, dtype=np.short)
wave_data.shape = -1, 2
temp_data = wave_data
temp_data.shape = 1, -1
temp_data = temp_data.astype(np.short)
f = wave.open(r'temp\aaa.wav', 'wb')
#配置声道数、量化位数和取样频率
f.setnchannels(nchannels)
f.setsampwidth(sampwidth)
f.setframerate(framerate)
#将wav_data转换为二进制数据写入文件
f.writeframes(temp_data.tostring())
f.close()
python wav文件与wave bytes的转化
最新推荐文章于 2024-08-08 14:28:23 发布