首页 > 解决方案 > 有没有办法使用 python 将 mp3/音频文件输入到麦克风输入?

问题描述

我的主要目的是改变我的声音的音调,然后将其输入到语音室/语音通话中,例如缩放通话或视频群聊会议,而不向我播放。

我发现了 2 个关于类似主题的问题: 1.使用 python 通过麦克风播放 mp3 文件 2.如何将 MP3 文件播放到麦克风输入 jQuery

但是这些都没有恰当地回答这个问题。

与此类似的东西:https ://github.com/jremmons/pyfakewebcam/blob/master/pyfakewebcam/pyfakewebcam.py

但对于麦克风?

标签: pythonpython-3.xaudiopyaudio

解决方案


您可以使用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)

记录波


推荐阅读