We like to build it ourselves, right?
Problem is that this sort of application is really not suited to the Arduino. You need much more memory to store the samples and a proper 16 bit D/A to play them back. The arduino's hardware abstraction layer is based around bit I/O rather than port or byte I/O. Not that you can't do it is just that you soon run out of I/O because you don't get a good run of free ones. As you want better than 8 bit sampling you quickly run out of resources.
You need a controller that can be configured to use and external bus and attach some static ram to it. Something like the LPC2103 or maybe a more powerful one from that family. Problem is that those development environments are not so friendly as this one.