The LM358 is just an op-amp and doesn't have enough output drive for a speaker. LM358 is not meant to drive a speaker directly.Try an LM386 instead. It's designed for that purpose. Build a circuit around LM386 if you want to drive a speaker.
**broken link removed**
About operational amplifiers,
**broken link removed**