生成PCM信号并生成文件的代码
时间: 2023-12-21 08:03:44 浏览: 35
下面是生成PCM信号并生成文件的Python代码示例:
```python
import wave
import struct
import math
# 设置参数
freq = 440.0 # 频率
duration = 5.0 # 时长(秒)
volume = 0.5 # 音量
sample_rate = 44100 # 采样率
num_channels = 1 # 声道数
sample_width = 2 # 采样宽度(字节数)
# 生成PCM信号
num_samples = int(duration * sample_rate)
pcm_data = []
for i in range(num_samples):
sample = int(volume * 32767.0 * math.sin(2 * math.pi * freq * i / sample_rate))
pcm_data.append(sample)
# 写入WAV文件
file_name = 'test.wav'
with wave.open(file_name, 'wb') as wav_file:
wav_file.setparams((num_channels, sample_width, sample_rate, num_samples, 'NONE', 'not compressed'))
for sample in pcm_data:
wav_file.writeframes(struct.pack('<h', sample))
```
该代码使用Python标准库wave和struct生成PCM信号并写入WAV文件。其中,freq、duration、volume、sample_rate、num_channels、sample_width等参数可以根据需要进行修改。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)