python WAV音频文件处理—— 读写WAV文件
import wave
import numpy as np
# 定义一个函数来读取WAV文件
def read_wav_file(file_path):
"""
读取WAV文件并返回其采样率、采样点数据
:param file_path: WAV文件路径
:return: 采样率(sample_rate)和采样点数据(samples)
"""
# 打开WAV文件
with wave.open(file_path, 'r') as wav_file:
# 读取WAV文件的参数
sample_rate = wav_file.getframerate()
samples = wav_file.readframes(-1)
# 将读取的原始数据转换为数组
samples = np.frombuffer(samples, dtype=np.int16)
return sample_rate, samples
# 定义一个函数来写入WAV文件
def write_wav_file(file_path, sample_rate, samples):
"""
将采样率和采样点数据写入WAV文件
:param file_path: 要写入的WAV文件路径
:param sample_rate: 采样率
:param samples: 采样点数据
:return: None
"""
# 将数据转换为字符串格式
samples = samples.astype(np.int16)
# 打开WAV文件进行写入
with wave.open(file_path, 'w') as wav_file:
# 设置WAV文件的参数
wav_file.setnchannels(1) # 单声道
wav_file.setsampwidth(2) # 量化位数为2字节
wav_file.setframerate(sample_rate) # 采样率
# 写入数据
wav_file.writeframes(samples.tobytes())
# 示例:读取和写入WAV文件
sample_rate, samples = read_wav_file('input.wav')
write_wav_file('output.wav', sample_rate, samples)
这段代码定义了两个函数read_wav_file
和write_wav_file
,分别用于读取和写入WAV文件。read_wav_file
函数打开一个WAV文件,读取其采样率和数据,然后将数据转换为NumPy数组。write_wav_file
函数接收采样率和数据,打开一个新的WAV文件,并写入这些信息。最后,代码示例展示了如何使用这两个函数来读取一个名为input.wav
的文件,然后将其内容写入一个名为output.wav
的新文件。
评论已关闭