如何在用户定义的Python延迟后录制声音并播放?

时间:2016-08-17 14:03:44

标签: python audio wav wave pyaudio

我正在寻找一个Python的代码,它可以录制声音并在一定延迟(例如10秒)后播放。换句话说,我想经常听到(在我的耳机上)外面发生了什么,但是有一定的延迟。

我在GitHub上发现了一个Python脚本(https://gist.github.com/larsyencken/5641402),该脚本应该是我正在寻找的。但是,当我运行脚本时,播放在5秒后开始(默认延迟),但它会记录所有内容并实时播放(没有任何延迟)。

1 个答案:

答案 0 :(得分:0)

以下是使用sounddevice的示例,但您也可以使用其他audio/sound模块执行此操作。

下面的示例根据变量#seconds记录来自duration的麦克风的音频,您可以根据自己的要求进行修改。 使用标准音频输出(扬声器)播放相同的内容。 有关此here

的更多信息

工作代码

import sounddevice as sd
import numpy as np
import scipy.io.wavfile as wav

fs=44100
duration = 10  # seconds
myrecording = sd.rec(duration * fs, samplerate=fs, channels=2, dtype='float64')
print "Recording Audio for %s seconds" %(duration)
sd.wait()
print "Audio recording complete , Playing recorded Audio"
sd.play(myrecording, fs)
sd.wait()
print "Play Audio Complete"

<强>输出

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
Recording Audio for 10 seconds
Audio recording complete , Playing recorded Audio
Play Audio Complete
>>>