I have some FirstAlert OneLink smoke detectors; they network together at 433 MHz. Each gets a room type (selected from a fixed menu of a dozen: Kitchen, Utility Room, Master Bedroom...); the audio for speaking the names is in the ROM. If one goes off, they all go off and announce loudly - "Alert Alert Evacuate Immediately - Smoke in the Utility Room" (along with beeps). Runs on 2xAA. It's a good idea but...
Something more customizable would be good. Last week it woke us at 3am to let us know that the battery in one of the remote rooms needed replacing - same loud alarm and voice as a fire being announced throughout the house and waking everybody up. Also the selection of room names doesn't always fit - we have to remember that we called the office a "utillity room" during setup because they don't have all the room names to match our house. (I did at least write the names on the outside of the units so I can sort it out by getting close to each unit in turn, without going into config mode to have it repeat its own name).
It would be nice if the "outdoor voice" was reserved for real alarms, and battery warnings arrived by email, or in a softer voice and during the daytime only, or whatever. So a customizable and interfaceable [not real words but they should be] version of this system would be good.
I do not know how hard it would be to hack a conventional smoke alarm. For safety I would probably want to keep the direct alarm connected (no un-alarmed fires due to software bugs). But one could perhaps add the ability to also trigger the buzzer in firmware as suggested above (eg: for intrusion alarms, or to relay a smoke alarm as the OneLink does), and to pass on a locally detected alarm to the system (for relaying or for announcing in other ways).
Duplicating the OneLink functionality would also require a loud but tiny speaker in each unit, with locally stored voice announcements.