使用python创建一个wav的可视化音频播放器
时间: 2024-05-24 12:04:52 浏览: 13
要创建一个wav的可视化音频播放器,你需要了解以下几个步骤:
1. 使用Python中的wave模块读取wav文件。
2. 使用Python中的PyAudio模块播放wav文件。
3. 使用Python中的matplotlib模块绘制wav文件的可视化波形图。
下面是一个示例代码:
```python
import wave
import pyaudio
import numpy as np
import matplotlib.pyplot as plt
# 读取wav文件
def read_wav_file(filename):
with wave.open(filename, 'rb') as wav_file:
sample_rate = wav_file.getframerate()
num_channels = wav_file.getnchannels()
num_samples = wav_file.getnframes()
data = wav_file.readframes(num_samples)
return sample_rate, num_channels, num_samples, data
# 播放wav文件
def play_wav_file(filename):
sample_rate, num_channels, num_samples, data = read_wav_file(filename)
p = pyaudio.PyAudio()
stream = p.open(format=p.get_format_from_width(2),
channels=num_channels,
rate=sample_rate,
output=True)
stream.write(data)
stream.close()
p.terminate()
# 绘制wav文件的可视化波形图
def plot_wav_file(filename):
sample_rate, num_channels, num_samples, data = read_wav_file(filename)
data = np.frombuffer(data, dtype=np.int16)
duration = num_samples / sample_rate
time = np.linspace(0, duration, num_samples)
plt.plot(time, data)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.show()
# 测试
if __name__ == '__main__':
filename = 'test.wav'
play_wav_file(filename)
plot_wav_file(filename)
```
你可以将文件名替换为你想要播放和可视化的wav文件的文件名,然后运行代码来测试。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)