[英]Is there a way of producing a beep at a specific frequency without using winsound?
我一直在嘗試編寫一個以給定頻率生成“嗶”聲的程序。 我曾嘗試使用 winsound,但我無法隨心所欲地開始和停止聲音,只能播放一段時間。 是否有一個模塊可以在特定頻率下產生帶有啟動和停止脈沖的嗶聲? 我目前正在運行 Python 3.8.2(我有 pip,因此可以安裝未內置的模塊)。
這可以通過PyAudio - python 的 Portaudio 綁定來完成。
import pyaudio
from math import pi
import numpy as np
p = pyaudio.PyAudio()
stream = p.open(format=pyaudio.paFloat32, channels=1, rate=44100, output=1,)
def make_sinewave(frequency, length, sample_rate=44100):
length = int(length * sample_rate)
factor = float(frequency) * (pi * 2) / sample_rate
waveform = np.sin(np.arange(length) * factor)
return waveform
wave = make_sinewave(500, 1)
stream.write(wave.astype(np.float32).tostring())
stream.stop_stream()
stream.close()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.