PC [app] - Tsw Passenger Announcements

Discussion in 'TSW General Discussion' started by bart#2410, Nov 23, 2025.

  1. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    Hey everyone,

    I wanted to share a project here I’ve been working on to add announcements to routes before TSW 6 was released. This app connects to the API and runs in the background and automatically plays pre-generated text-to-speech announcements based on the route and (timetable) service you're currently running.

    This means the app requires TSW 6 to be run with the `-HTTPAPI` option enabled.

    This is still very much a work in progress!

    Some features:
    • arrival and departure announcements, such as next stop, transfers, etc.
    • arrival uses estimated time of arrival (ETA)
    • specific phrasing per service (such as shorter announcements for services like S-bahn)
    • announcing delays on some routes (DB, Metrolink) when you're late (3 minutes or more)
    • random flavor announcements (for example on London Overground/Underground)
    • Driver Advisory Systems as in use in the Netherlands (TimTim) and Germany (EBuLa) - you can move them to another monitor and press F to go fullscreen, ESC to go back to windowed mode.
    Supported routes:
    Screenshots:
    [​IMG]

    Videos (English):

    Videos (Dutch):


    I wanted to start this thread for the alpha because I need feedback, but more importantly, I need local knowledge to add and improve phrasing and scripts. Any reference material is welcome!

    Download Link: [here] Github profile: [here]

    Feel free to "buy me a coffee" via my Github profile!
     
    Last edited: Dec 11, 2025 at 1:18 AM
    • Like Like x 13
  2. Train Sim Society

    Train Sim Society Well-Known Member

    Joined:
    Aug 22, 2021
    Messages:
    642
    Likes Received:
    1,384
    Welcome, Bart!

    Absolutely amazing job so far. Thank you for being so receptive to our feedback and for continuing to evolve the tool. Great work. I've got so much to send regarding MBTA and Amtrak, so that'll be coming your way within the week!

    Cheers! :)

    edit: Notes for 0.4.6
    • For Metrolink, the Spanish section after all announcements is great!
    • The chime doesn't play, even though it's there on the soundboard in debug mode.
    • In the Metrolink announcements, handholds should be "handles."
    • The final stop variations show in debug on the soundboard as well, but sadly don't play while in the sim. Screenshot 2025-11-23 235454.png
    • On this Spanish announcement here, she reads it as Pomona Amtrak (even though it doesn't show the text here.) That is inaccurate, as this station (Pomona (north) is not an Amtrak station. Pomona, IS though but that is another station not on the SB Line.

    Screenshot 2025-11-24 025715.png
     
    Last edited: Nov 24, 2025
    • Like Like x 3
  3. BeenTrain

    BeenTrain Active Member

    Joined:
    Dec 10, 2016
    Messages:
    194
    Likes Received:
    168
    Interesting!
    How did you manage to read the route/scenario and active timetable with the API?
     
  4. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    Thanks! The app uses both API and a tailored dataset of timetables.

    It starts with /get/Timetable.VehicleID and /get/DriverAid.PlayerInfo to determine the current active route and service. /get/Player.Function.GetTrackData is then used to look ahead for so-called markers, which includes platforms. Then /get/TimeOfDay.Data and /get/CurrentDrivableActor.Function.HUD_GetSpeed is used to calculate ETA and delays. I'm currently parsing timetables from the DLC I currently have to generate sufficient context for each stop, in order to match the markers returned from the API with the stop in the timetable (which is basically the station's name, door side, arrival and departure time). Additionally, I use this data to generate a script with phrasings typical for that route or even a specific service, which is then synthesized using a relatively inexpensive text-to-speech service. This is done before I distribute the app, so the download contains all audio files needed - on your machine this is then processed through a chain of audio effects, such as compression, equalization, reverb, etc.
     
    • Like Like x 4
  5. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    Amazing how this simple API has helped to bring TSW to a new level (at least for us PC players), with Apps like this one. Really looking forward to trying it out as soon as I can…

    Thanks for the creation and sharing this with us:)
     
  6. Emmy_MAN

    Emmy_MAN Well-Known Member

    Joined:
    Apr 9, 2022
    Messages:
    330
    Likes Received:
    597
    Hi bart#2410

    I already wrote to you on the Train Sim Community page.

    And I'm writing it here again.
    What you have achieved with your app in such a short time is simply brilliant!

    It is clear that you have invested countless hours in your app, and it is getting better every day.

    I hope you will also add announcements for the other German routes, and I would be delighted if you could also add announcements for the Lucerne–Sursee route.

    And please include a donation link in your first post!
    I would very much like to make a donation from time to time, as I do for Winzarten's Live Weather app.
     
    • Like Like x 2
  7. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    Thanks! I've tried addressing the issues. Sometimes, the text-to-speech models will add a twist, I've resynthesized everything with slightly cheaper models, it should help, and should also add the missing parts.

    Also added my version of Boston - Providence.
     
  8. Es4t

    Es4t Well-Known Member

    Joined:
    Jul 21, 2021
    Messages:
    778
    Likes Received:
    1,447
    Does this app conflict with other announcement mods?
     
  9. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    It's a stand-alone app, so you can decide if you want to run it. For example, if you drive the S-bahn in the TSW6 route, you can disable the ones built-in and use this app to have shorter announcements. Point is, you can choose on the fly.
     
    • Like Like x 2
  10. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    Was now able to do my first two test runs on Frankfurt S Bahn. This was really missing, especially after the new announcements system for TSW6. So, thanks again for this wonderful addition to TSW!

    One problem I am facing seem to be the arrival announcements. I was driving two S-Bahn services (two short ones) and only on the very first stop of the first service I did I heard an arrival announcement. Departure announcements were alsways playing just fine, though... Is there something I am missing?
     
  11. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    Ah, no it should play fine, especially with the departure announcement playing fine. I will check it out!

    Do you by chance remember the service that had issues?
     
    Last edited: Nov 28, 2025
  12. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    Yes, I believe it was S8 (36816) @09:06 ex Frankfurt and the second service must have been S7 (35743) @13:48 also ex Fra Hbf.

    Everything else worked fine, like the ETA at the next station, etc. As said, I have heard the arrival announcement only once with the very first station and service I have used the App on (it was the S9).
     
  13. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    It was perhaps some missing audio parts due to a misconfiguration on S-bahn specific announcements. I uploaded a new version that I tested on the S8 you mentioned, so it should be good on the other S-Bahn services now too!
     
    • Like Like x 3
  14. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    Did another Service, this time ICE811 on the same DLC as above. I love that these announcements are slightly adapted to the S Bahn announcements:cool:

    Similar issue, though. I had the feeling it played the departure and arrival back to back (one straight after the other). After a penalty braking, when I started to move again it played the very same departure and arrival announcements again, this time it added a message about the current delay, which I absolutely loved:D.

    Just a thought, could it have to do with the fact that I start closing the doors ahead of the actual departure time? Not assuming it has anything to do with it but it would be the only thing I could think of that may be out of the ordinary...

    Another thing I noticed, in the App there is an arrival time given at 05:58, however, the service leaves Frankfurt Airport at 07:27 and has no arrival tme specified in TSW.
    upload_2025-11-28_14-7-33.png upload_2025-11-28_14-8-58.png
     
  15. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    Indeed, just tried another S Bahn service, this time a longer one to Hochheim and it worked absolutely flawless. Thanks for the quick fix!

    I did play around a bit with closing doors early and leaving early. It doesnt like the leaving early bit, however, as you are not supposed to be doing that I would not consider this as a problem. If you do leave early, though, it plays upcomming stations randomly, however, approaching the next station it always plyed the right announcments:D
     
    Last edited: Nov 28, 2025
    • Like Like x 1
    • Helpful Helpful x 1
  16. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    I am sorry, I dont want to spam your thread too much:) But as you have asked for some feedback I thought I can add this quickly as well... even though I can (and want to) only really give input to German content.

    In regards to S Bahn in Frankfurt area. There is actually a YT Video with some original reference material. I do believe that certain recordings were edited together afterwards, however, it will give you quite a good reference and feel what kind of announcements are made and what voices are used.
    [S-Bahn Rhein-Main] S5 Ansagen | Frankfurt Süd - Friedrichsdorf | [4K Audio] (Originale Version) - YouTube

    There are a couple of things that you could think about adding, like english translations at certain stations, or adding phrases about connections etc. Obviously those would need to be added on a "station by station" basis, as these would be only valid for certain stops. Not sure if this is something that you want to do, though. Maybe it would be an idea to make the library somehow more open for the community to support with certain aspects of the development (thinking on the annotations app by Winzarten and the ability for the community to add annotation files to it).

    One thing that could proabably be added on a more automatic basis would be a dedicated announcements for the last stop of this service.

    As for the long distance trains, these do not have automatic announcements, in Germany (at least for the trains we have in TSW). One could think about making the voices used more random (ie woman / men / old / young...). Also, maybe it would be possible to use different phrases, used on a random basis.

    The variety can actually be heard quite nicely here:
    Ansagen aus dem Fernverkehr #2 (Deutsch, Englisch, Französisch, Niederländisch)

    Obviously this kind of variety will never be possible, however, maybe one or two of those phrases can be taken over. In my eyes the difficulty will be to make the voice actually sound like a real person, rather then an automatic voice. I am not sure what is possible, in this regard.

    BTW, both videos have auto subtitles and especially the second one has a really terrible translation into english, however, it will be good enough to undesrstand what is going on, I believe. Nevertheless, both give a good impression of the vibes that those announcments bring on the real trains. Hope this helps in any way... The more I am using this wonderful app, the more concrete ideas I will have what could be added to it:D
     
    • Like Like x 1
  17. Emmy_MAN

    Emmy_MAN Well-Known Member

    Joined:
    Apr 9, 2022
    Messages:
    330
    Likes Received:
    597
    Unfortunately, you can't pay for coffee there with PayPal, which is a shame.
     
  18. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    ko-fi.com should support PayPal, but it's okay, don't worry about it! It will be quite a long way before I feel confident investing in better voice models, for example. And the routes/DLC, well, here's me hoping DTG might throw me a bone at some point :D

    Don't worry about it! I tried addressing some issues like the arrival time on the last stop (which is unknown in the game because it's a few hours earlier in the game data - so I'm hoping I either guess a better value or consider dropping the value - as there's no expected ETA in this case.

    The main issues with randomization or extending the app with data not found in the game data, is that it be relatively even harder to guarantee quality when processing new phrases. I think you also already have run into this because there's could be unintended duplication (or even straight up mistakes) with text-to-speech, even though these models are supposedly production-ready!

    But great feedback, keep it coming! I'm slowly building out a base set of phrases for most routes I currently have in my library, and continuing to refine based on reference materials - depending on operators, services and even the individual trains. Hopefully at some point also better approximating the actual voicings, but I do want to stay clear of it a little bit, so there's no issues with copyright or other legal trouble.
     

    Attached Files:

    • Like Like x 6
  19. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    It's added, give it a try! Maybe I'm missing some add-ons, but it looks like a fairly straight forward route with one type of of train and only the S1 service?
     
    • Like Like x 2
  20. tom#2834

    tom#2834 Well-Known Member

    Joined:
    Oct 5, 2025
    Messages:
    508
    Likes Received:
    974
    Good luck with that!!!!
     
    • Like Like x 1
  21. bart#2410

    bart#2410 Member

    Joined:
    Oct 22, 2025
    Messages:
    12
    Likes Received:
    37
    New version 0.5.0, available here. I added some more routes (German, mostly), and a fun experimental feature that works well on a few routes: Driver Advisory Systems (DAS), specifically EBuLa (Germany) and TimTim (the Netherlands).

    [​IMG] [​IMG]
     
    • Like Like x 7
  22. Double Yellow

    Double Yellow Well-Known Member

    Joined:
    Jan 24, 2021
    Messages:
    1,862
    Likes Received:
    2,790
    bart#2410 Since DTG have no interest in updating older routes with the announcement system, you could be our golden ticket to making this a reality.
    As long as they pay you for your work of course.
     
    • Like Like x 1
  23. OpenMinded

    OpenMinded Well-Known Member

    Joined:
    Feb 10, 2021
    Messages:
    1,396
    Likes Received:
    2,404
    This is really impressive! How do you make the connection between the mileage of the route to the individual line site assets on the EBuLa? I believe that ghe mile posts are not actually part of the route structure but are purely visual, no?! I am assuming it’s a manual process?

    looking firmware to see what is still possible with this. I am already a big fan of this app but it’s getting better and better :D
     

Share This Page