2016-03-31 21 views
1

Ich bin mir nicht sicher, welche Straße runter gehen soll, damit ein NodeMCU Audio abspielen kann. Ich würde gerne ein bis zwei Sekunden WAV-Dateien verwenden und einen winzigen Lautsprecher steuern. Das Ziel ist eine menschliche Stimme zu hören, nichts Super High Fidelity. Außerdem möchte ich keine Audio-Abschirmung oder SD-Karte verwenden. Meine Dateien werden klein genug sein, um alles direkt vom Chip aus zu starten. Es gibt keine Notwendigkeit, Samples aufzunehmen, nur die Wiedergabe. Was soll ich verwenden und gibt es Beispiele? Es scheint, dass das Sigma-Delta-Modul ein guter Ausgangspunkt ist.NodeMCU spielt .wav oder .mp3-Dateien

+0

Sie könnten in https://github.com/nodemcu/nodemcu-firmware/issues/1085 dann interessiert sein. –

Antwort

1

Sobald https://github.com/nodemcu/nodemcu-firmware/pull/1255 hat auf dev Zweig gelandet Sie die folgende as documented tun können:

-- **************************************************************************** 
-- 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) 

Audio wird als Mono roh unsigned 8-Bit-Strom bei Sampleraten erwartet zwischen 1 k und 16 k Proben pro zweite. Normale WAV-Dateien können mit OSS-Tools wie Audacity oder SoX konvertiert werden. Passen Sie vor der Konvertierung die Lautstärke an.

+0

Vielen Dank für Ihre Hilfe. Ich habe die Dokumentation, die du erwähnt hast, ausgecheckt und habe eine Firmware mit pcm darauf gebaut. Ich versuche, ein kleines Lautsprecher-Modul wie folgt zu starten: http://img.dxcdn.com/productimages/sku_138322_2.jpg Mein Problem ist, dass pcm.SD immer Null ist. Hast du eine Idee? –

+0

Ich habe es nie selbst versucht, aber enthält Ihre Firmware das Sigma-Delta-Modul? –

+0

Nein, ich glaube nicht, dass ich Sigma-Delta in meiner Firmware habe. Ich werde es hinzufügen und es erneut versuchen. –