用于处理音频剪辑的基于生成器的工具。
audiogen的Python项目详细描述
audiogen包提供时域音频处理工具 使用python生成器。
这使得一些类型的音频样本生成和处理变得非常漂亮 简单:
# mix 440 Hz and 445 Hz tones to get 5 Hz beating beats = audiogen.mixer( (audiogen.tone(440), audiogen.tone(445)), [(constant(1), constant(1)),] )
实际的样本只有在 实际消耗量–例如,当它们被写入磁盘时 在wave文件中:
with open("output.wav", "wb") as f: audiogen.sampler.write_wav(f, beats)
生成器的消耗时间计算也允许创建 无限长的输出,例如流到扬声器而不是文件 磁盘:
audiogen.sampler.write_wav(sys.stdout, audiogen.tone(440))
或者只是:
audiogen.sampler.play(audiogen.tone(440))
您还可以使用标准的生成器工具(如itertools模块)来 处理音频数据:
beep_silence = itertools.chain(audiogen.beep(), audiogen.silence(0.5)) infinite_beeps = itertools.cycle(beep_silence) audiogen.sampler.write_wav(sys.stdout, infinite_beeps)
声卡输出
直接播放声卡输出的最简单方法是使用 audiogen.sampler.play函数,它将使用 pyaudio:
import audiogen import itertools import sys audiogen.sampler.play( itertools.cycle(itertools.chain(audiogen.beep(), audiogen.silence(0.5))) )
或者,您可以将wave数据写入stdout,例如myaudio.py:
import audiogen import itertools import sys audiogen.sampler.write_wav( sys.stdout, itertools.cycle(itertools.chain(audiogen.beep(), audiogen.silence(0.5))) )
然后通过管道连接到命令行音频播放器,如Sox:
python myaudio.py | play -t wav -
安装
安装时使用:
$ pip install audiogen $ pip install --allow-external PyAudio --allow-unverified PyAudio PyAudio
pyaudio是可选的。如果未安装,则通过声卡播放音频 audiogen.sampler.play()将不可用,但将生成wave文件- 包括到外部播放器的管道,比如sox-可以很好地工作。
请注意,要在Mac OS X上安装PyAudio,您需要首先安装Portaudio
$ brew install portaudio
版本历史记录
- 0.1.2-添加带通和带阻IIR滤波器;来自@jhobbs的自定义蜂鸣长度
- 0.1.1固定的多路复用错误导致在使用Mixor()时产生音高的增加 多个输出通道
- 0.1.0-中断更改:默认情况下将新参数设置为tone(),play()块