It might be possible to add scripts to the stations so that they locally play sounds when trains approach. I know that jfe has implemented something similar in his WDW monorail stations. Perhaps you can also create a destination textures asset and have the station check which destination sign is approaching, then play the correct sound. Something similar can potentially be done for a train, where events cause sounds to play. For example, in the Metro-North railroad, given someone who knows how to script (not me), the following events can be encoded:
1) the train receives a message that it's entering a particular station and plays these sounds in sequence: dingdong, thisis, *station code*, dingdong, watchthegap
2) upon opening its doors, it plays these sounds in sequence: dingdong, thisis, *station code*, trainto, *destin code*, nextstop, *next stop code*
3) upon leaving the station, it plays these sounds in sequence: dingdong, trainto, *destin code*, nextstop, *next stop code*
4) if next stop code does not exist or station code is equal to destin code, train toggles sound play mode off after playing these sounds in sequence: dingdong, trainto, *station code*, terminate
5) upon starting a new route, train toggles sound play mode on and opens its doors, playing the appropriate sounds
The station codes would be encoded into another rule - a route codes rule - that sets a sequence of values. The values will correspond to sound files and route textures. I've already got the route textures in place; I may, however, need to update them for scrolling textures on the interior of train cars.