Wow, thanks for all the replies! Its a lot to take in.... I'm still trying to get my head around the calculations in certain places.
I've done some testing with components that I have around the place. Unfortunately op-amps and chokes aren't really things I have around the place. Plus I really need to know what to order first!
First up I did a simple test directly driving the speaker via a transistor. This actually worked really well, all be it with relatively poor quality compared to my PC, plus it had the odd crackle or pop (most likely down to my s/w coding at this stage)... I'm guessing this isn't a good idea though. I didn't notice any difference to driving the speaker directly using the transistor compared to putting the input in to an LM386, similar volume resulted and no detectable audio quality change.
So given I've got a few basic parts around the place, I tried a 100nF capacitor and 330R resister in an RC configuraton connected in to the input of an LM386. This worked too well and trimmed all but the very low frequencies out. The formula I used was:
1/(6.283
* Capacitor * Hz)=3DResistor
This was based on a 4800Hz cut off.. I stuck with that as there will be sound effects in there, and it matched the componets I had to hand. I tried dropping the capacitor value down to 4.4nF which gave me my sound back, but i'm not sure if it actually did any useful filtering or not (I've not got a scope unfortunately), there was no audible difference.
The choke idea could be good, however I've read some stuff about that giving off a fair bit of RF.... and there is a chance I may have to implement radio within this device at a later date so I want to minimise RF where possible (sorry forgot to mention that). This of course rules out having no filtering!
The op-amp method looks good - but I've no idea which part to use and difference they have on the circuit. My ideal unit has:
- No need for funny voltages, i.e. no need for an external inverter - Lowish power consumption - If possible a shutdown signal (but can always use the transistor on the power line to the audio circuit).
Having had a quick look around Farnell for example, the KA358A looks good. Its cheap (=A30.30) and looks suitable.. but I don't know if it'd do the job... and I can't work out how I'd calculate everything... I mean I've got a good example circuit diagram here, but I don't know if the values would be different for different op-amps. The op-amp used in the diagram costs a lot more than this one and requires an inverter to supply the negative side (which costs more than the op-amp!).
As far as the physical side of it, this is to go in to an existing case design, so I have no control over the physical design or the speaker size. The currently used model is an 8 Ohm 2.5" speaker. Effectively I'm trying to design a replacement of an old design. The old design is excellent but is now about 20 years old and some components are becoming harder to source (one was dropped over 2 years ago and now is almost impossible to obtain). One of the objectives is to reduce the component count where possible but also to implement new features as well. I did look at using the ISD chips which are good, but cost too much and are difficult to alter the contents of without a programmer - this method allows me to use a normal serial flash rom which I can also alter while its in-place if needed.
On the topic of "can the PIC handle it".... well at 20Mhz it can handle driving the audio at over 8Khz sample rate using ADPCM calculations. It can do little else at the same time.... it has 15us delay between each sample that it could use. I'll most likely end up designing it with a higher maximum clock speed, but it only enters that speed when it needs to - the new PICs are good with the variable clock speed so I can minimise power usage that way.
Again - thanks for all the help!
Mike