使用 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()

可以通过修改 durationsample_ratenoise_type 参数来调整生成和播放的白噪音的类型和持续时间。

Python 生成和播放不同类型白噪音代码示例

原文地址: https://www.cveoy.top/t/topic/pfsV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录