Я начал писать скрипт, который должен генерировать звук любой частоты. Я нашел несколько примеров и попытался их запустить. Потом я случайно установил 16000 Гц и как-то мой компьютер играл, хотя и не должен. Кто-нибудь знает, почему я слышу такой высокий т. звук? Я имею в виду, что в коде должна быть ошибка.
SAMPLE_RATE = 44100
S_16BIT = 2 ** 16
def generate_sample(freq, duration, volume):
amplitude = np.round(S_16BIT * volume)
total_samples = np.round(SAMPLE_RATE * duration)
w = 2.0 * np.pi * freq / SAMPLE_RATE
k = np.arange(0, total_samples)
return np.round(amplitude * np.sin(k * w))
freq_array = np.array([260.00, 290.00, 329.63, 350.00, 392.00, 440.00, 800.00, 16000.00])
tones = []
for freq in freq_array:
tone = np.array(generate_sample(freq, 1.0, 1.0), dtype=np.int16)
tones.append(tone)
def fmain():
p = pa.PyAudio()
stream = p.open(format=p.get_format_from_width(width=2), channels=2, rate=SAMPLE_RATE, output=True)
stream.write(tones[7])
stream.stop_stream()
stream.close()
p.terminate()
fmain()
UPD: 30 кГц также можно услышать по некоторым причинам.