生成随机音频或播放不同偏移量的文件

时间:2018-03-15 22:42:10

标签: python python-2.7 audio

在Python 2.7上有一种方法可以生成音频文件或音频数据作为字符串,更具体地说是白噪声。

我正在使用

winsound.PlaySound(sound, flags)

然而,通过此功能,我无法控制音频何时开始播放,我需要Python播放随机白噪声信号(即使它来自同一个文件但在不同时间开始播放)。

换句话说,有人可以帮助我生成随机白噪声音频然后在后台异步播放吗?或者有人可以推荐我一个音频模块

1 个答案:

答案 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"