I’ve done only a quick look at
https://github.com/espressif/esp8266_mp3_decoder
This is the most interesting part for me: How to implement a mp3 software decoder. As I know the sw codex is much RAM intensive, so I read:
The MP3 example is a very memory-sensitive piece of code: the MP3 decoder uses almost all the RAM and the needed buffers for input and output buffering take up the rest: when using no external SPI RAM, only a few bytes of memory are left. The SDK libs that come with this example are libraries that have been optimized for memory usage and are known to work.
and further:
Support all ESP2866 modules (512 Kbytes flash)
Free Flash (512 Kbytes): 200 Kbytes. Free Heap: 20 Kbytes.
MP3-decodec-out uses IRAM Buffer > 20 Kbytes (IRAM: 48k + 16k cache Flash):
The specs for the ESP8266 are:
[*]64KBytes of instruction RAM
[*]96KBytes of data RAM
So I doubt getting mp3-sw-decoding, pwm-out plus frontend (incl. hardware like display…) working on a medium-density device. It’s more a job for the high-density ones – and they have I2S on board, so no fooling around with PWM-delta-sigma audio would be necessary (I2S DAC’s costs about a few cent up to 2-3 USD).
So maybe using the PWM-delta-sigma code for something else than mp3 (or any other compressed audio format) like speaking alarm clocks,…? This should be possible!
Off topic:
A really impressing demo of what can be done with pwm-audio (using 2 pins) even on AVR’s is the outstanding mozzi library:
http://sensorium.github.io/Mozzi/