首页 文章

NodeMCU播放.wav或.mp3文件

提问于
浏览
1

我不确定哪条路可以让NodeMCU播放音频 . 我想使用一到两秒的wav文件并驱动一个小型扬声器 . 目标是听到人声,没有超高保真度 . 另外,我不想使用音频屏蔽或SD卡 . 我的文件足够小,可以直接从芯片上运行 . 无需录制样本,只需播放即可 . 我该怎么用,那里有什么例子吗?似乎sigma-delta模块是一个很好的起点 .

1 回答

  • 1

    一旦https://github.com/nodemcu/nodemcu-firmware/pull/1255登陆 dev 分支,您就可以执行以下操作as documented

    -- ****************************************************************************
    -- Play file with pcm module.
    --
    -- Upload jump_8k.u8 to spiffs before running this script.
    --
    -- ****************************************************************************
    
    
    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)
    

    音频预期为单声道原始无符号8位流,采样率介于1 k至16 k样本/秒之间 . 可以使用Audacity或SoX等OSS工具转换常规WAV文件 . 转换前调整音量 .

相关问题