在python中以任意音调发出合成声音

2024-10-03 19:27:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现很难找到一个python的合成器模块,它允许程序以任意音调播放音符。最好的注意应该不仅仅是一个纯正弦波,并应包括至少几个谐波-它应该不仅仅是一个哔哔声

我的想法是能够写出

the_module.play(frequency, loudness, duration)

或者

my_synth = the_module.newsynth()
my_synth.play(frequency, loudness, duration)

其中频率以Hz为单位,并具有来自用户扬声器的合成音调播放。有JavaScript模块可以做到这一点,比如Tone.js,但是有人知道使用Python的方法吗


Tags: 模块the程序playmy音符moduleduration
1条回答
网友
1楼 · 发布于 2024-10-03 19:27:16

如果在windows上,可以使用内置的^{}

如果在Linux上,则需要直接写入/dev/audio,如建议的here

def beep(frequency, amplitude, duration):
    sample = 8000
    half_period = int(sample/frequency/2)
    beep = chr(amplitude)*half_period+chr(0)*half_period
    beep *= int(duration*frequency)
    audio = file('/dev/audio', 'wb')
    audio.write(beep)
    audio.close()

相关问题 更多 >