I'd suggest an Arduino Uno and a Wave Shield:https://www.adafruit.com/products/94
This is not the easiest thing to build and program...however, it's extensively hackable to do what you want. I'm specifically thinking about the LED in the mouth flashing in sync with the dialogue.
I'd start with the example code...get it playing back a series of WAV files, or picking one randomly when a button is pressed (or a tilt ball switch or vibration switch is activated). Then start working on the mouth part...
The reason I'd suggest the Wave Shield (rather than the more sophisticated Music Maker MP3 Shield) is specifically because the code has to "manually" transfer data from the SD card to the audio chip...that affords the opportunity to process the data as its passing through...gauging the audio amplitude, for instance, so you can change the brightness of the mouth in sync.
There are a few guides in the Adafruit Learning System that do this with input from a microphone (LED Ampli-Tie
, VU Meter Baseball Hat
and Wave Shield Voice Changer
(specifically the 'face' code). With a little work, a similar principle could be applied to create WAV-to-brightness code.
It's a bit hairy, so I wouldn't recommend it as a First Arduino Project, but it should be approachable if you take it in stages (e.g. maybe the mouth doesn't flash in sync at first, but you just get it playing back WAV samples).
The Wave Shield can drive a small (1/4W 4 Ohm) speaker. This is sufficient for "up close and personal" use in an otherwise quiet setting...but if you anticipate carrying this to other cons and stuff, a separate amplifier is recommended (an example is shown in the voice changer tutorial, or you can simply use a portable MP3 speaker). Cons are big and noisy!