You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python 3播放非整数Hz频率?解决winsound兼容问题

解决winsound无法播放非整数频率的问题

winsound的Beep()方法要求频率参数必须是整数,直接传入计算得到的浮点数值会触发错误。你只需要把每个频率值四舍五入取整(或按需用int()截断小数部分),就能正常播放了。

修改后的代码如下:

import winsound

a4_frequency_hz = 440

# 计算十二平均律频率并转为整数
range_of_pitches = [round(2**(i/12) * a4_frequency_hz) for i in range(13)]

for pitch in range_of_pitches:
    winsound.Beep(pitch, 1000)

如果需要更高精度的音频播放(比如保留浮点频率的原始精度),可以考虑使用pygame或pyaudio这类专业音频库,但如果只是简单的蜂鸣需求,上面的方法完全够用。

内容的提问来源于stack exchange,提问作者birdfromejipt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 00:05:54