Can't find a loud enough small speaker

My humanoid robot needs a speaker loud enough for speech.

Weight is highly important.

The best I have found so far are large fist sized speakers, but something tells me I could find something just as loud but smaller. Our smartphones have fairly small yet loud speakers.

I ordered some tiny speakers but I could not hear a thing unless I put them up to my ears.

Where could I find something like this to help reduce the weight of my robot's speaker?

Something that doesn't need a complicated external amplifier connection.

LM386
What is wrong with an external amp like the above?

Weedpharma

There are lots of good options for small speakers now a days.

Here's a thread about a search for small speakers. The person who started the thread wasn't using an Arduino, but I think the information presented would be applicable to the Arduino. IMO, there's a lot of interesting information in the thread.

I've used Veho 360 speakers in several of my projects.

There are lots of less expensive options. I have a couple Veho 360 speakers but I also have several clones. The inexpensive clones seem to work fine.

Adafruit and SparkFun sell these things.

This "Raygun" tutorial shows how to connect the speaker to an Arduino.

It looks like they use this amplifier.

I don't think you'd use the same amp to drive the Veho 360. The Veho 360 has an amp built in. It normally plugs into a headphone jack. I don't know what sort of circuit you need to drive the Veho 360 with an Arduino.

That Veho 360 is perfect!

The speaker would be connected to a computer inside the robot via USB. I would use the Arduino but since I'm using a computer to handle the fast processing speeds I might as well just use it's USB ports.

Either way, a great recommendation. The size looks nice and compact. What I was using before was about 4x as big so this is defiantly a step up.