我想在Python中实现过程化音效,而不是将它们保存到文件中后再播放。我应该使用什么工具呢?我能否只使用内置模块,还是需要额外的库?
我可能还希望更改音调、音量等参数。
scikits.audiolab
一起使用应该可以解决问题。 audiolab
具有支持ALSA和Core Audio后端的play
函数。from __future__ import division
import numpy as np
def testsignal(hz,amplitude = .5,seconds=5.,sr=44100.):
'''
Create a sine wave at hz for n seconds
'''
# cycles per sample
cps = hz / sr
# total samples
ts = seconds * sr
return amplitude * np.sin(np.arange(0,ts*cps,cps) * (2*np.pi))
>>> from scikits.audiolab import play
>>> samples = testsignal(440)
>>> play(samples)
play
是一个阻塞调用。在声音播放完成之前,控制权不会返回到您的代码。