Bachmann OO LMS 1F Tank... a popular modern model that can take a Zimo MX648 decoder and SugarCube7 speaker despite its' tiny size,
just about squeezing decoder and speaker in the boiler, with hard-wiring and a minor chassis modification.
Remove the 6pin DCC socket board and the resistors across the motor (resistors left in for this example, but better to remove them).
Grind the nugget of metal flat at the very front of the chassis (this is where the speaker will sit)
Drill open the base of the chimney so there is somewhere prominent for sound to escape.
The speaker goes enclosure down, which removes any chance of a short-circuit with the chassis.
The MX648 sits on top of it in the boiler. Connect red+black pickup wires and orange+grey motor wires.
Our example here shows a standard 9mm SugarCube, but an easier fit would be the SugarCube7.
Photos courtesy of Richard Allen.