如何在 ESP32 上使用 MicroPython 录制音频?

问题描述 投票:0回答:2

我是一名经验丰富的 Python 开发人员,但在电子领域却是个新手。

我有一个安装了 MicroPython 的 ESP32 板,并连接了一个麦克风。

我可以从麦克风中读取读数,如下所示:

MicroPython v1.9.4 on 2018-05-11; ESP32 module with ESP32
Type "help()" for more information.
>>> import machine
>>> a = machine.ADC(machine.Pin(32))
>>> a.read()
488
>>> a.read()
496
>>> a.read()
449

我的问题是:如何实际录制音频以便通过电子邮件发送?波形格式或任何其他格式。我想任何实现都只会在循环中对级别进行采样并构建一个数组,但是如果已经存在一个实现而不是我必须编写它,那就太好了。

audio microphone adc esp32 micropython
2个回答
0
投票

一个基本想法是以 CD 质量采样 [1] 并编码 [2]:16 位,44100 Hz。

import machine, time
a = machine.ADC(machine.Pin(32))
while True:
    sample = a.read() * 2**(16-10)  # we want 16 bits, a.read() returns 10 bits
    print(sample)
    time.sleep(1/44100)

您应该能够运行此代码并查看控制台每个示例打印的值。当您对着麦克风讲话时,它应该上下移动。

它非常接近 PCM 音频格式 (WAV):以每秒 44100 次的频率以 16 位编码的值序列。

更多信息:


0
投票

我还没有尝试过,但大多数麦克风(通常是 MEMS 麦克风)都遵循称为 I2S(或 iis)的通信协议。获取遵循此协议的麦克风可能会帮助您录制更清晰的音频

类似的东西 亚马逊上的示例(您可能需要自己焊接这个。您需要特殊设备来焊接)

© www.soinside.com 2019 - 2024. All rights reserved.