在Python 2.7上有一种方法可以生成音频文件或音频数据作为字符串,更具体地说是白噪声。
我正在使用
winsound.PlaySound(sound, flags)
然而,通过此功能,我无法控制音频何时开始播放,我需要Python播放随机白噪声信号(即使它来自同一个文件但在不同时间开始播放)。
换句话说,有人可以帮助我生成随机白噪声音频然后在后台异步播放吗?或者有人可以推荐我一个音频模块
答案 0 :(得分:1)
如果您对外部图书馆开放,我与pydub合作,提供其pydub.generators
模块的现成白噪声发生器。
有关pydub安装和其他功能的详细信息,请访问here。
在代码下导入所需的模块(如评论中所述),创建一个5秒的white_noise audio_segment,然后使用thread
在后台播放。
希望这有帮助。
from pydub import AudioSegment #to save whitenoise to audio_segment
from pydub.generators import WhiteNoise #to generate white noise
from pydub.playback import play #needed to play the audio segement
from threading import Thread #for async background
#whitenoise duration
duration = 5000 #duration in millisec
wn = WhiteNoise().to_audio_segment(duration=duration)
def play_white_noise(segment,duration):
""" play whitenoise for given duration """
play(segment)
#instantiate thread
white_noise = Thread(target=play_white_noise, args=(wn,duration))
#start the thread
white_noise.start()
#Thread is run in the background. Do your stuff
print " play noise in background"