Radio internals update
Okay, so the radio now *tries* to sanitize titles of new songs and their artists/albums more, so that the host's text to speech can actually speak them. Names like "t.A.T.u." get internally translated to "Tatu" for the TTS, "ABBA" goes to "Abba", etc. Hopefully actual abbreviations just stay uppercase without punctuation -- I tested with "CCR" which just gives "CCR" as the name... the TTS can speak abbreviations if they're formatted that way.
In addition, it tries to strip "(whatever remix)" and similar stuff from the titles, should change "Original Motion Picture Soundtrack" to "Soundtrack", etc.
I'm using GPT-3 for this step so mileage will vary on whatever it feels like doing, but so far my tests have worked pretty well.
...
And, while not new, before it even does any of this, it has to translate the titles to English. The voice model can pronounce words formatted with ARPABET, and unfortunately other languages don't do well here -- for example, non-Latin characters just get skipped over entirely, and pronunciations in (for example) Spanish are all off. Supposedly this won't be as big of an issue with the next big update of xVASynth, but for now I need that step in place.
I've also put it all in a private (for now) GitHub repository so I can easily spin up new stations, only needing to clone the repo, swap out the speech data, and change ports/addresses.
So, in other news, I've wanted to create a good voice model of my own voice, but sitting here with a mic for hours sounds like a chore. Ancient archived recordings to the rescue!
Realized I could use positional VOIP data from a VR app, that was recorded in 2017 and 2018. I found the data on one of my old servers, where we experimented with recording company meetings in VR and 3D, that could be played back in the app. Needed to reverse engineer old code to get it working, because I didn't want to install said app and sit there with the audio recording on for hours. So eventually I managed to export all the clips of myself in wav format, all at once.
Fun fact: I spent *over two weeks* trying different versions of the code I'd made to export it properly, and nothing worked. Audio was always super choppy (it took so long that I even made a warbly voice model with the choppy data) Apparently the issue is because I was creating a new opus decoder for each frame. I didn't even *notice* I was doing it that way, and by defining it only once at the start the choppiness cleared up. And export was (obviously) faster.