Posts Tagged Seddit

Seddit 1.5 supports multilingual Reddit listening. Also, Joey sang my half-baked PSOLA song!


A while ago I added the possibility to configure Seddit (my text-to-speech-focused hands-free Reddit client for macOS and iOS) with multiple voices so that each user’s content could be read in a different voice. Of course, iOS and macOS come with voices that speak a huge variety of different languages, so you could theoretically select, say, a Japanese voice, a French voice, and three English voices, and download Reddit posts and comments in all of those languages. However, until now, Seddit would randomly assign a voice to each user, without regard for the language that user had written in, so if you did that, you could end up with English posts pronounced as if they were French, Japanese character names read out in English, and so on.

In the latest version, if you select voices that speak multiple languages in the Voices tab of the Settings screen, when Seddit encounters a post or comment by a user it hasn’t chosen a voice for yet, it will detect which of those languages the post or comment is probably in, and choose a voice that knows how to pronounce that language.

Of course, this isn’t perfect — it still always uses the same voice for each user, so if a user sometimes posts in French, and sometimes in English, or if they write in multiple languages within a single post because it’s a language-learning subreddit, then some of that is going to be spoken using an inappropriate voice. Also, if someone only writes in English but the first comment that Seddit encounters of theirs is an image meme and the text ‘c’est la vie!’ Seddit might determine that the user speaks French, and then hilariously mispronounce the rest of their posts. Note, if there is not enough text in the user’s first post for Seddit to even guess the language, it will not definitively choose a voice for that user until it encounters another post by them. I have yet to find either of these situations in practice, even while looking for them, so I hope it’s a rare issue.

The Voices tab on the new Settings screen in Seddit for iOS, showing some US English voices and a Canadian French voice selected.

Nonetheless, all of these situations are better than Seddit just randomly picking a voice for each user, regardless of which language they happen to be writing in. You should try it out, especially if you want to listen to Reddit content in various languages!

I also redesigned the Settings screen on iOS and iPadOS so it’s fullscreen and has a close button in the top right, as per Apple’s human interface guidelines, instead of a ‘Done’ button taking up a lot of space at the bottom and making the tabs look weird.

Note, while writing this post, I tested the regular ‘Start Speaking’ menu command on macOS and the ‘Speak’ command on iOS and found that it will sometimes switch to appropriate voices if I select multilingual text, even if my System Speech Language est réglé sur えい語。 Okay, it doesn’t work well for the French/English parts of that sentence. Maybe it’s only good with switching between languages if I switch scripts, e.g. בַּרְוָזָן утконос カモノハシ. Yep, that works, although if I select any other text along with πλατύπους, it’ll read it as ‘Greek small letter pi’ etc. I guess Greek letters are used too often in English for the speech engine to assume we actually switched to Greek. There were certainly plenty of Greek letters in the Princeton Companion to Mathematics.

Anyhow, I’m thinking I could improve Seddit further by giving each user a voice in each language you’ve selected voices for, and detecting the language for each post/comment, or for each sentence. Though macOS doesn’t do that unless you switch scripts… when I tried adding ‘J’imagine qu’il choisit une nouvelle langue pour chaque phrase.’ as a separate sentence and selected it along with a few English sentences, it read the whole thing in a French voice.

On the subject of interesting text-to-speech behaviour, and interesting behaviour in general, remember my half-written Lola parody about Pitch Synchronous Overlap and Add? Well, the lovely Joey Marianer had an appointment in town a while ago, and sneakily recorded the song in a parking building as a surprise, because I’m usually home so there’s little chance to record things at home without my hearing. I was duly surprised and delighted. Even the disclaimer about the missing bridge sounds like it scans as a bridge! Now you can also be surprised, delighted, and probably confused as to why this half-baked song was considered worth singing.

, , , , , , , , , ,

Leave a comment

James Webb Space Telescope (now actually sung) and Seddit 1.4


In my last post I gave lyrics to a parody of an Arrogant Worms song about the James Webb Space Telescope, and an update to my text-to-speech focussed Reddit client Seddit. I also said two things that turned out to be false:

  • Joey and I will probably sing this parody, but it will take more mixing and video editing than our usual songs.
  • This completes all the major features I have planned the app — I have other ideas for improvement, but I don’t think they’re essential. I’m hoping that the next update will be simply to remove the text saying I’m looking for a job.

Well, the other night Joey asked if I wanted to sing the song, and I said, “Okay! I should change into a more space-related shirt first” and then Joey produced two James Webb Space Telescope T-shirts out of nowhere, having secretly ordered them previously. So we changed into the shirts, and then we sang it, directly into a camera together, with no warmup or practice, and Joey trimmed the ends and put the video on YouTube. I had thought we’d sing our separate parts, get them perfect, then mix them, and make a video with some relevant educational images. Instead, here’s an imperfect but pretty good recording already!

I know where I made a mistake, but I’m not going to hang a lampshade on it so you’ll notice.

As for Seddit, well, not only did I not get the job I was hoping for when I wrote that, I also decided to update the app to use the new Liquid Glass design language that came out with iOS and macOS 26. I found and fixed a few other issues along the way. Here are the changes in Seddit 1.4:

  • Features
    • Added support for liquid glass appearance in iOS/macOS 26
    • Moved playback controls to a liquid glass overlay so you can see more content around the edges
  • Bug fixes
    • Made sure compliments purchased on the Support Seddit screen are always shown in the same order
    • Made the Voices Settings screen on macOS show which voices are Enhanced or Premium (I also filed bug FB20362911 with Apple about this, because there’s some system behaviour that’s inconsistent between iOS and macOS)
    • Fixed an issue introduced in Seddit 1.2 whereby posts whose comments are not all read would be shown as read instead of partly read

You can get the latest version for Mac, iPhone, or iPad on the relevant App Store.

On the subject of songs and liquid glass, check out this song by James Dempsey about liquid glass:

Thanks to Seattle Xcoders, I was lucky enough to have seen the live debut of this, and another performance of it, which I recorded but don’t have permission to share yet.

I haven’t actually had any legibility issues with liquid glass though — and if I did, I know I could always turn on Reduce Transparency.

, , , , , , , , , , , ,

Leave a comment

James Webb Space Telescope (Arrogant Worms parody lyrics) and yet another Seddit update


This is to be sung to the tune of Big Fat Road Manager, by The Arrogant Worms:

Giant rocket to the sky
Not many people really know why
It’s gotta stay cool as the stars parade
It’s got a gold coat and some doped ass-shades

It’s the James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope!

It beat a hurricane and lots of delays
(James Webb Space Telescope)
Refused to fail in three hundred ways
(James Webb Space Telescope)
It had a long time and a lot to do
(James Webb Space Telescope)
On its way to Lagrange point two

It’s the James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope

It found a new moon and some old black holes
(James Webb Space Telescope)
A planet circling a mate of Sol’s
(James Webb Space Telescope)
Its pictures show 8-pointed stars
(James Webb Space Telescope)
That’s how you can tell they are

From the James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope

You may wonder why the space telescope’s so far
That way it can block the heat from our Earth and Moon and Star

It sees through clouds in infrared
(James Webb Space Telescope)
Back through time as the wavelengths spread
(James Webb Space Telescope)
So far back that now it sees
(James Webb Space Telescope)
Light from earliest galaxies
As our James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope

It’s still our James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope
James Webb Space Telescope

Recently I remembered that I’d started writing this parody back when the James Webb Space Telescope launched. So I filled in some of the gaps, and then watched this excellent documentary about the telescope to fill in some more:

I found out about that documentary from NASA’s Curious Universe podcast, which I found out about from NASA’s Houston We Have a Podcast podcast. I recommend both, but especially the latter.

I considered saying it had ‘huge-ass shades’ as a reference to the ‘big fat ass’ in the original lyrics, but then I discovered that the sunshades were coated with doped silicon, and I couldn’t resist making a reference to the phrase ‘dope-ass’ while also doing the xkcd 37 thing. They are ‘ass shades’ in a sense, because they’re behind the telescope, i.e. on the side it’s not looking towards.

I’ve put links in the lyrics to some of the things where I could find a specific-enough link. The hurricane referred to is Hurricane Harvey, which hit Texas while the JWST was undergoing testing in a cryogenic vacuum chamber. As you’ll see in the documentary, it was a nail-biting time! The next line refers to the 344 potential single-point failures during launch and deployment which there wouldn’t have been a way to recover from. Really there were a lot of nail-biting times. But it all went well!

I linked to NASA’s explanation of Webb’s diffraction spikes, but I think this diagram from wikipedia also shows it very well.

Joey and I will probably sing this parody, but it will take more mixing and video editing than our usual songs. On the other hand, I can hear Joey singing it in the other room as I type this, so it might be ready fairly soon.

In other news, I’ve released version 1.3 of my text-to-speech-focussed reddit client for macOS and iOS, Seddit. Here’s what I changed:

  • Added ‘Go to currently speaking item’ button in the toolbar, so you can quickly find the post or comment that’s currently being spoken, e.g. to open links or open the post in a browser to respond
  • Enabled the ‘Settings…’ menu item and standard Settings window style on macOS
  • Added headings and other changes for improved navigation of posts and comments using VoiceOver or Switch Control.

This completes all the major features I have planned the app — I have other ideas for improvement, but I don’t think they’re essential. I’m hoping that the next update will be simply to remove the text saying I’m looking for a job. 🤞🏻

, , , , , , , , , , ,

1 Comment

So I leave my bags behind (Galilee Song parody, now actually sung!) and another new version of Seddit


Hey look, Joey Marianer sang the parody song lyrics from my last post! Check there for the lyrics and the aviation incidents referenced.

There are some more song parody lyrics, but first, a word from my sponsor: me. Just like last time, I’ve released a new version of Seddit, my text-to-speech-focussed Reddit client for macOS and iOS. This has a feature I’ve wanted to add for a while — the possibility to select multiple voices, and read each user’s posts and comments in a different one. The variety makes it easier to keep paying attention when listening for a long time, and having each user consistently use the same voice should make it easier to follow conversations.

I made some other changes in this version too. Here’s a full list of them:

Features

  • Added the possibility to have each user’s posts and comments spoken in a different voice
  • Added settings for whether to read out the subreddit name, and date and time for each post.
  • Added the option to load no comments — this was for Joey, who wanted to try listening to short story subreddits while obeying the “don’t read the comments” rule of the internet.

Bug fixes

  • Fixed a bug whereby turning off the ‘Say “Link” instead of reading out URLs’ setting would not work
  • Fixed a bug where comments that weren’t loaded would be read as “comment by unknown user” Comments that aren’t loaded due to the comment depth settings are also no longer displayed.
  • Fixed a potential crash when opening the app if posts had been deleted on another device

On the subject of text-to-speech, nine or ten years ago I read a book and a bunch of papers on speech synthesis in order to write a term paper for my Web Development for Linguistics degree. The term paper was longer than the text of my thesis, because my thesis also included source code for a web site and a Mac app. Anyway, from this book I learnt about PSOLA (Pitch Synchronous Overlap and Add) which is used to change the pitch and duration of sounds for text-to-speech, as one might do to change prosody, or create a robot choir.

Newer voices don’t use PSOLA so much, as (to put it simply) they have more samples of actual speech in different situations, so they don’t need to modify samples for the sake of prosody. Note, this is ‘newer voices’ as of a decade or two ago; I don’t know whether the latest crop of ML-based voices do things the same way. Anyway, I assume this is why the newer macOS voices don’t support the TUNE format I used for my robot choir.

At the time, I wrote an utterly silly partial parody of Lola, by The Kinks, about PSOLA. I thought maybe I’d finish it or maybe even make it less silly[why?], but I never did, and now I don’t remember enough about how PSOLA works to fully understand what I originally wrote. So here is that draft. It really doesn’t scan, but I hope it doesn’t scan in amusing ways:

I was trying to synthesise some prosody,
but my source and filter were mixed up just like granola
G-R-A-N-O-L-A, granola.

So I found a new way to make it sound rad
It’s called pitch-synchronous overlap and add, that is PSOLA
P-S-O-L-A PSOLA. Pso-pso-pso-P-SOLA.

Well I didn’t want to sound like a smallpox blight
So I really took care with my to get my epochs right
for PSOLA. Pso-pso-pso-P-SOLA.

If you’re not dumb then you’ll soon understand
How I speak like a woman then sound like a man
It’s P-SOLA. Pso-pso-pso-P-SOLA. Pso-pso-pso-P-SOLA.

[It doesn’t look like I wrote anything for the bridge (is that a bridge?) of the song, so just pretend it keeps going roughly like before]

It was used to make synthesized speech sound natural
But now there’s some super-sized features that fill that role-uh
R-O-L-E hyphen U-H role-uh

So that’s my guess if you’re wondering why r-
ecent voices don’t sing in my robot choir:
No PSOLA.

, , , , , , , , ,

1 Comment

So I leave my bags behind (Galilee Song parody lyrics) and a new version of Seddit


Whoever else you believe is in the sky looking after you, you can be sure that the crew of any airliner you fly in are there to keep you safe. So here’s a parody of the hymn ‘The Galilee Song’ about surviving an emergency water landing. It’s based on the stories of Pan Am Flight 526A, Ethiopian Airlines Flight 961, and US Airways Flight 1549:

Both the right wing engines glitched, when a plane had barely climbed,
So the pilots deftly ditched; soon a rescue crew arrived.
Panicked flyers feared the sharks in the sea where they came down,
So instead of boarding rafts, some stayed in the plane to drown.

So I leave my bags behind
Leave through unfamiliar doors
Set my raft upon the deep
Pull my life vest inflate cord

Once some halfwits stormed a flight, made impossible demands,
So the captain who was bright, steered them stealthily toward land.
They came down just off a coast; those with life vests could be saved.
Some inflated theirs too soon, trapped inside that sinking plane.

So I leave my bags behind
Leave through unfamiliar doors
Only after I am free
Pull my life vest inflate cord

One plane struck a flock of birds; there was nought to do but glide.
Skiles and Sully, undeterred, ditched the plane and no-one died.
Though ’twas not an ocean flight, there were crucial vests and slides.
A stroke of luck that now we cite in the transport safety guides.

So I leave my bags behind
Leave through unfamiliar doors
Set my raft upon the deep
Pull my life vest inflate cord

So I leave my bags behind
Leave through unfamiliar doors
Only after I am free
Pull my life vest inflate cord

After I posted the chorus of this along with my last aviation-themed parody, Joey made noises about potentially singing it if I wrote the rest, so that’s what I did. The chorus is very catchy, so I hope it reminds people what to do if they need it.

The original song has a strong enough tune that you barely notice that it has basically no rhymes, only a little assonance in the chorus. I couldn’t help putting in a bunch of rhymes though. Where’s the challenge, otherwise? The chorus still pretty much rhymes with the lines of the original chorus rather than with itself, though, which doesn’t make sense for anyone who doesn’t know the original, but is so very tempting for those who do, because the chorus is catchy enough to inspire faith… to the non-rhyme scheme.

So I add a bunch of rhymes
Fix the song’s familiar flaws
To absolve it of its [bleep]
Wait, that word was not untoward!

Sounds Settings screen on iOS showing 'Sci-fi up' selected for comment reply level increase, 'Sci-fi down' for 'Comment reply level decrease' and 'Woosh' selected for Next Post.
The new ‘Sounds’ Settings screen

As I mentioned in my last post, I’m including a song parody each time I post about a minor update in an app I release. Well, I’ve released a new version of Seddit, my text-to-speech-focussed Reddit client for iOS and macOS. The new version has three new features, so it’s not such a minor update, really. Here’s what’s new:

Features

  • Settings for sounds to play between posts and comments — now you have two options for the sounds to play when going up or down levels when reading comments. You can also choose to turn off the sounds played between posts or when going up or down comment levels.
  • ‘Random from previous’ option when autoloading more posts, so it will automatically load posts from any of the subreddits you have previously loaded posts from, instead of just a specific one
  • Option to say ‘Link’ instead of reading out URLs in posts and comments

Bug fixes

  • Fix to a potential hang when autoloading posts

You can get the latest version of Seddit from the app store!

, , , ,

1 Comment