Основной вопрос - как заставить одновременно воспроизводить разные частоты, вырезанные ранее?
В моем коде я попытался сделать коричневый шум (срезанный до 1000 Гц), создать списки из полученных значений и после этого воспроизведениячастоты со random.choice.
Но, может быть, есть более простой и правильный способ?
import numpy as np
import pyaudio
import random
import time
freq = np.linspace(0, 10000, 5000)
brown_noise = -(1/1000)*freq+1
brown_norm = brown_noise/np.max(brown_noise)*100
sum_val = []
for j, val in enumerate(brown_norm):
if val <= 0:
val_list = [0]
else:
val_list = list(np.linspace(0, int(val), int(val)))
sum_val = sum_val + val_list
sum_val = np.array(sorted(sum_val))/100
start_time = time.time()
measure_time = 0
stream = pyaudio.PyAudio().open(format=pyaudio.paInt8, channels=1, rate=32000, output=True)
while measure_time < 2:
measure_time = time.time()-start_time
value = int(random.choice(sum_val)*512)
stream.write(chr(value))
stream.close()
pyaudio.PyAudio().terminate()
В результате хочется услышать разницу между разными типами шумов.