python - 有没有办法使用 python 将 mp3/音频文件输入到麦克风输入?
问题描述
我的主要目的是改变我的声音的音调,然后将其输入到语音室/语音通话中,例如缩放通话或视频群聊会议,而不向我播放。
我发现了 2 个关于类似主题的问题: 1.使用 python 通过麦克风播放 mp3 文件 2.如何将 MP3 文件播放到麦克风输入 jQuery
但是这些都没有恰当地回答这个问题。
与此类似的东西:https ://github.com/jremmons/pyfakewebcam/blob/master/pyfakewebcam/pyfakewebcam.py
但对于麦克风?
解决方案
您可以使用sounddevice,刚刚在 Windows 10 上测试过
您可以创建一个流并在记录时读取数据,自然会有与您读取的块大小成正比的延迟。
此示例以 16kHz 录制 6.4 秒的音频。完成后,您调用方法停止。此示例中的每个块有 1024 个样本,对应于 64 毫秒。
micStream = sd.InputStream(samplerate=16000, blocksize=1024, channels=1, dtype='float32')
micStream.start();
CHUNK_SIZE = 1024
NCHUNKS = 100
wavData = np.zeros(CHUNK_SIZE*NCHUNKS)
for i in range(0, NCHUNKS):
chunkData, overflowed = micStream.read(CHUNK_SIZE);
wavData[i*chunk:(i+1)*chunk] = np.mean(chunkData, axis=1) # ensure to be mono
micStream.stop()
plt.plot(wavData)
推荐阅读
- apache-spark - 处理较大的数据集时 Spark 作业失败
- c# - 通过 PutAsync 请求发送“流”
- python - 如何为 python 包模块启用自动完成(IntelliSense)?
- typescript - 在打字稿上抛出带有内部错误的错误
- c# - 贝塞尔曲线弧长参数化
- python - 带有枚举的 for 循环迭代 4 次,但只有 1 个数据帧被写入 Excel,而不是 4 个数据帧
- python - 尝试将 google OAuth2 与 Docker 一起使用时没有名为“请求”的模块
- java - 无法通过 Selenium 提交网站表单
- android - 闹钟与我的时区不同 8 小时
- windows - 如何在当前目录中打开命令提示符作为快捷方式