python 读取两个音频生成波形的代码
以下是使用Python读取两个音频文件并生成波形的代码示例:
import wave
import numpy as np
import matplotlib.pyplot as plt
# 读取音频文件
w1 = wave.open('audio1.wav', 'rb')
w2 = wave.open('audio2.wav', 'rb')
# 获取声道数、采样宽度和帧率
channels1 = w1.getnchannels()
channels2 = w2.getnchannels()
sample_width1 = w1.getsampwidth()
sample_width2 = w2.getsampwidth()
framerate1 = w1.getframerate()
framerate2 = w2.getframerate()
# 读取音频数据
frames1 = w1.readframes(-1)
frames2 = w2.readframes(-1)
# 将音频数据转换为numpy数组
signal1 = np.frombuffer(frames1, dtype='int16')
signal2 = np.frombuffer(frames2, dtype='int16')
# 计算音频时长
duration1 = len(signal1) / (framerate1 * channels1)
duration2 = len(signal2) / (framerate2 * channels2)
# 生成时间轴
time1 = np.linspace(0, duration1, len(signal1))
time2 = np.linspace(0, duration2, len(signal2))
# 绘制波形图
plt.figure()
plt.subplot(2, 1, 1)
plt.plot(time1, signal1)
plt.title('Waveform of Audio 1')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.subplot(2, 1, 2)
plt.plot(time2, signal2)
plt.title('Waveform of Audio 2')
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.show()
# 关闭音频文件
w1.close()
w2.close()
这段代码使用wave模块读取两个音频文件,将音频数据转换为Numpy数组,并生成时间轴和波形图。您可以根据需要修改代码以适应您的音频文件
原文地址: https://www.cveoy.top/t/topic/caVE 著作权归作者所有。请勿转载和采集!