When choosing a memory you may have several specifications.
- Type. Volatile/non-volatile.
- Size. How many bits.
- Speed. Eg: Writing RAM will be faster than an FLASH/EEPROM.
- Endurance. How many write cycles.
- Interface. How fast to read/write?
- Price. On large quantity with one-time write data ROM might be cheaper.
You want to store several MB of MP3, and you want to store it long term. Probably not changing it often.
Following above list, you'd want: large, fast read, few-times programmable non-volatile memory.
This excludes EEPROM, FRAM en (battery backed up) SRAM, since all of them are small memories that are designed to be able to write to often (high endurance). Any RAM is random-read-write, EEPROM is word or page erasable, takes some time, but is still flexible to use.
FLASH on the other hand has slow erase, since it involves entire pages, but is still reads fast and is cheap to make in large quantity (size). You can't indefinitely re-write FLASH, as you can with RAM or FRAM.
EEPROM is technically still FLASH, but then byte or word erasable.
You will need FLASH. To play an MP3 you will need some throughput. This is where the interface comes in. I2C will be the slowest, single SPI is faster, quad SPI is even better. And parallel flash will be the fastest you'd be able to get.
I think you can do what you want to do with a SPI FLASH chip. Like an eMMC or SD card. But you could also use an flash chip solution on the market. As long as you can interface it.