NodeMCU播放.wav或.mp3文件

我不确定应该如何让NodeMCU播放音频。我想使用一到两秒的.wav文件并驱动一个小扬声器。目标是听到人的声音,无需超高保真度。此外,我不想使用音频盾或sd卡。我的文件足够小,可以直接从芯片运行。没有必要记录样本,只需播放。我应该使用什么,是否有任何示例?似乎sigma-delta模块是一个不错的起点。

点赞
用户131929
用户131929

一旦https://github.com/nodemcu/nodemcu-firmware/pull/1255被合并到dev分支,你可以按照文档执行以下操作:

- ****************************************************************************
- 使用pcm模块播放文件。
-
- 在运行此脚本之前,将jump_8k.u8上传到spiffs。
-
- ****************************************************************************

function cb_drained(d)
  print("drained "..node.heap())

  file.seek("set", 0)
  -- uncomment the following line for continuous playback
  --d:play(pcm.RATE_8K)
end

function cb_stopped(d)
  print("playback stopped")
  file.seek("set", 0)
end

function cb_paused(d)
  print("playback paused")
end

file.open("jump_8k.u8", "r")

drv = pcm.new(pcm.SD, 1)

-- fetch data in chunks of LUA_BUFFERSIZE (1024) from file
drv:on("data", file.read)

-- get called back when all samples were read from the file
drv:on("drained", cb_drained)

drv:on("stopped", cb_stopped)
drv:on("paused", cb_paused)

-- start playback
drv:play(pcm.RATE_8K)

音频应该是以1 k至16 k样本每秒的采样率为单声道原始无符号8位流。常规WAV文件可通过Audacity或SoX等OSS工具进行转换。在进行转换前调整音量。

2016-04-21 07:05:40