怎么根据实时声音大小储存成wav格式
时间: 2024-04-10 16:34:11 浏览: 25
你可以使用Python中的`pyaudio`库来实时录制声音并将其保存为.wav格式。下面是一个示例代码:
```python
import pyaudio
import wave
chunk = 1024 # 每次读取的音频数据块大小
sample_format = pyaudio.paInt16 # 采样格式为16位
channels = 1 # 单声道
sample_rate = 44100 # 采样率为44.1kHz
duration = 5 # 录制时长(秒)
output_filename = "output.wav" # 输出文件名
p = pyaudio.PyAudio()
stream = p.open(format=sample_format,
channels=channels,
rate=sample_rate,
frames_per_buffer=chunk,
input=True)
frames = [] # 存储录制的音频数据
print("开始录制...")
for i in range(0, int(sample_rate / chunk * duration)):
data = stream.read(chunk)
frames.append(data)
print("录制结束.")
stream.stop_stream()
stream.close()
p.terminate()
# 将录制的音频数据保存为.wav文件
wf = wave.open(output_filename, 'wb')
wf.setnchannels(channels)
wf.setsampwidth(p.get_sample_size(sample_format))
wf.setframerate(sample_rate)
wf.writeframes(b''.join(frames))
wf.close()
print("保存完成:", output_filename)
```
这段代码使用了`pyaudio`库来获取实时音频数据,然后将其存储为.wav文件。你可以根据需要修改`chunk`(音频数据块大小)、`sample_format`(采样格式)、`channels`(声道数)、`sample_rate`(采样率)和`duration`(录制时长)等参数。最后,你可以在`output_filename`中指定保存的.wav文件名。运行代码后,录制的音频将被保存在指定的文件中。