如何在 Python 中用户定义的延迟后录制声音并播放?
Posted
技术标签:
【中文标题】如何在 Python 中用户定义的延迟后录制声音并播放?【英文标题】:How can I record a sound and play it back after a user-defined delay in Python? 【发布时间】:2016-08-17 14:03:43 【问题描述】:我正在寻找可以录制声音并在一定延迟(例如 10 秒)后播放的 Python 代码。换句话说,我想经常听到(在我的耳机上)外面发生的事情,但有一定的延迟。
我在 GitHub (https://gist.github.com/larsyencken/5641402) 上找到了一个 Python 脚本,它应该可以满足我的需求。但是,当我运行脚本时,播放会在 5 秒后开始(默认延迟),但它会记录周围的一切并实时播放(没有任何延迟)。
【问题讨论】:
在 Stack Overflow 上寻求建议是题外话。您可以在softwarerecs.stackexchange.com 上提问,但一定要provide enough information 谢谢@greg-449。我刚刚在这里编辑了我的问题。 【参考方案1】:这是一个使用 sounddevice
的示例,尽管您也可以使用其他 audio/sound
模块。
下面的示例根据变量 duration
为 #seconds
录制来自麦克风的音频,您可以根据自己的要求对其进行修改。
使用标准音频输出(扬声器)播放相同的内容。
更多关于这个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
>>>
【讨论】:
以上是关于如何在 Python 中用户定义的延迟后录制声音并播放?的主要内容,如果未能解决你的问题,请参考以下文章