Python 生成和播放不同类型白噪音代码示例
使用 Python 生成和播放不同类型的白噪音,可以利用 numpy 库生成随机数,并使用 sounddevice 库进行音频播放。以下代码示例展示了如何实现不同类型白噪音的生成和播放:
import numpy as np
import sounddevice as sd
def generate_white_noise(duration, sample_rate, noise_type='normal'):
# 生成指定时长和采样率的白噪音
samples = int(duration * sample_rate)
if noise_type == 'normal':
# 正态分布的白噪音
noise = np.random.normal(0, 1, samples)
elif noise_type == 'uniform':
# 均匀分布的白噪音
noise = np.random.uniform(-1, 1, samples)
elif noise_type == 'pink':
# 粉噪音(1/f衰减)
b0 = 0.049922035
b1 = -0.095993537
b2 = 0.050612699
b3 = -0.004408786
b4 = 0.000334845
b5 = 0.000021433
white_noise = np.random.normal(0, 1, samples + 5)
pink_noise = np.zeros(samples)
for i in range(samples):
pink_noise[i] = b0 * white_noise[i] + b1 * white_noise[i+1] + b2 * white_noise[i+2] + b3 * white_noise[i+3] + b4 * white_noise[i+4] + b5 * white_noise[i+5]
noise = pink_noise / np.max(np.abs(pink_noise))
else:
raise ValueError('Invalid noise type.')
return noise
# 设置参数
duration = 5 # 持续时间(秒)
sample_rate = 44100 # 采样率
noise_type = 'normal' # 噪音类型('normal', 'uniform', 'pink')
# 生成白噪音
noise = generate_white_noise(duration, sample_rate, noise_type)
# 播放白噪音
sd.play(noise, sample_rate)
sd.wait()
可以通过修改 duration、sample_rate 和 noise_type 参数来调整生成和播放的白噪音的类型和持续时间。
原文地址: https://www.cveoy.top/t/topic/pfsV 著作权归作者所有。请勿转载和采集!