BC AI

What happens when a neural net tries to write rhyming lyrics?

Apparently, an ode to defunct Swiss chemical company Alusuisse.

The fine rhyming work of @mark_riedl's Weird A.I. program
https://t.co/TAOIWBr7RI

Rhyming is super hard, especially in English where threw rhymes with through but not dough, and the emphasis patterns are all over the place.

There's lots of AI poetry but there's a reason it doesn't tend to rhyme
.@mark_riedl's algorithm has a part that chooses rhyming words, scoring them according to their similarity to the song's theme.

Here, "Uzbekistan" was the closest rhyme it could think of for "saucepan" given cakes as a topic.

Good job, AI
There's a subalgorithm that has to come up with lines of a given number of syllables.

Occasionally it gives up and returns a line that's way too short. Another subalgorithm chooses from several candidate lines & often prefers the short lines.

So you get

au-u-u-u-u-u-u-gust
The subalgorithm that has to generate the rhyming lines often gets desperate, especially when the subalgorithm that chose the rhyme handed it something like "welp" or "alusuisse".

It will sometimes resort to making up words entirely
You can generate your own weird alternate rhymes for free and yes I absolutely want to read how they came out

Also

total karaoke power move: ignoring the words onscreen and singing an AI version instead

https://t.co/h1PuWOTIzu
Here's a karaoke algorithm by @botnikstudios that, instead of generating lines from scratch, picks them from an existing corpus (like X-files scripts)

Result doesn't rhyme or even make sense but DANG am I impressed how @jamieabrew can sing them on the fly
https://t.co/GjYECF0jPj

You May Also Like

A brief analysis and comparison of the CSS for Twitter's PWA vs Twitter's legacy desktop website. The difference is dramatic and I'll touch on some reasons why.

Legacy site *downloads* ~630 KB CSS per theme and writing direction.

6,769 rules
9,252 selectors
16.7k declarations
3,370 unique declarations
44 media queries
36 unique colors
50 unique background colors
46 unique font sizes
39 unique z-indices

https://t.co/qyl4Bt1i5x


PWA *incrementally generates* ~30 KB CSS that handles all themes and writing directions.

735 rules
740 selectors
757 declarations
730 unique declarations
0 media queries
11 unique colors
32 unique background colors
15 unique font sizes
7 unique z-indices

https://t.co/w7oNG5KUkJ


The legacy site's CSS is what happens when hundreds of people directly write CSS over many years. Specificity wars, redundancy, a house of cards that can't be fixed. The result is extremely inefficient and error-prone styling that punishes users and developers.

The PWA's CSS is generated on-demand by a JS framework that manages styles and outputs "atomic CSS". The framework can enforce strict constraints and perform optimisations, which is why the CSS is so much smaller and safer. Style conflicts and unbounded CSS growth are avoided.