Working with an AI for writing continuity scripts.

There is considerable legwork involved in making pre-recorded spoken continuity for television channels. I’ve worked in the broadcast television industry since 1993. It seems to me that the talent and effort devoted to generating – daily, relentlessly and in bulk – those 20 second navigational announcements could be better invested elsewhere.

The spoken continuity pipeline is fiddly, costly, and highly manual. It is also a fixative that prevents or adds cost to a channel’s ability to flex its schedules: you could swap out the peak-time movie but you’ve pre-recorded all the announcements and the voice artist has gone on holiday.

I believe we can use modern artificial intelligence tools to reduce the cost and complexity of this workflow, and improve its flexibility. I have built a workflow engine that supports a new AI based workflow from end to end. That is – from the extraction of raw data from EPG feeds and other sources, through to the rendering and transcoding of video clips ready for TX. The Backbeat factory does all that, it is live right now and this is the first in a series of background blog posts all about it.

A machine to take over the production of spoken continuity needs to learn the key skills of script-writer and voiceover artist. This blog post is about script-writing.

I worked with the Open AI tool Chat GPT 3.5. It’s easy to use and virtually free. I used it out-of-the-box, by which I mean I did not feed it any continuity scripts to help it learn. I am not (or at least, I was not) a Prompt Engineer so after reading around the subject – there is a LOT of information out there about how to get the best out of generative AI – I started with a basic prompt for a “coming next” announcement on a real service in the UK:

Your job is to persuade people to keep watching a TV channel. The channel is all about drama, mystery and intrigue.

The next programme on the channel is described as follows: “New. Blood Is Thicker: Mycroft asks his brother to return with him to London, and Sherlock looks into the murder of a young woman with a curious link to a billionaire CEO.(n)”

Write a script to persuade people to watch this programme. The script must not exceed 30 words. The script must not include any explicitly promotional or marketing language. The script must not include the name of the programme. The script must not include the name of the channel. The script must be ready for voiceover, with no stage directions. Sentences must be short, avoiding subordinate clauses. The script must reflect the nature of the channel. The script should be aimed at a reading age of 12 years old. The script should mimic the phrasing and style of a movie trailer, using unusual language and sentence structure to surprise the audience.

I wanted this prompt to be adaptable by a computer later in the process, so I designed it so that the sections in bold underline could be replaced depending on the channel and upcoming programme. In particular the long programme summary in the second paragraph is extracted verbatim from an EPG feed.

The results were pretty good but I wouldn’t quite let them on air on my channel:

“Dark secrets surface. Brothers reunite. A young woman’s murder ties to a powerful CEO. London calls. Brace for mystery, blood bonds, and a detective’s relentless pursuit. Unravel the enigma.”

“Intrigue unfolds: Brothers clash, London beckons. A young woman’s murder, a billionaire’s secret. Detective genius at work. Get ready for twists, turns, and the unexpected. Next, immerse yourself.”

“Brothers unite. London calls. A young woman’s fate intertwines with a billionaire’s mystery. Sherlock dives deep. Expect twists, suspense, and family bonds. Unravel the puzzle. Coming up next.”

On the plus side, these feel like the first awkward attempts of a recent hire into the promo department, rather than the mechanical word-burps of a mysterious engine. They seem a bit try-hard and they don’t hit the basic requirements of navigating the viewer. Only the last one truly points at the next programme slot. The right voice artist could probably make them sound better than they read but I’d reject these before the VO session. Try again…

Your job is to persuade people to keep watching a TV channel. The channel is all about drama, mystery and intrigue.

The next programme on the channel is called “Elementary” and it is described as follows: “New. Blood Is Thicker: Mycroft asks his brother to return with him to London, and Sherlock looks into the murder of a young woman with a curious link to a billionaire CEO.(n)”

Write a script to persuade people to watch this programme. The script must not exceed 30 words. The script must end with the phrase “Next, here on [channel].”

The script must not include any explicitly promotional or marketing language. The script should mention the name of the programme if space allows. The script must be ready for voiceover, with no stage directions. Sentences must be short, avoiding subordinate clauses. The script must reflect the nature of the channel. The script should be aimed at a reading age of 12 years old. The script should mimic the phrasing and style of a movie trailer, using unusual language and sentence structure to surprise the audience.

For the next prompt I wanted the AI to be a bit more connected to the channel, so I gave it the name of the show and told it explicitly to include a next-up tag. The outputs were a clear improvement:

“Family ties tested. London’s calling. Sherlock unravels a deadly puzzle involving a young woman and a powerful CEO. Drama intensifies. Next, here on [channel].”

“Intrigue deepens. Brothers reunite. A young woman’s fate tied to a billionaire’s secrets. London calls. Detective genius at work. Uncover the mystery. Elementary. Next, here on [channel].”

“London’s mysteries beckon. Brothers entangled. A young woman’s fate ties to a billionaire’s secrets. Sherlock unravels the enigma. Drama, suspense, and intrigue. Next, here on [channel].”

With these scripts I think we’re definitely in the zone of acceptability. Maybe the style is not to everyone’s taste but I would say these are usable. Remember – writing these was free, and the AI can turn them out 24/7 for pennies. But how about we try to improve the style. The AI’s staccato approach might come from the last sentence of the prompt, so how about we try to encourage the machine to use some old fashioned speechwriting tricks? Replace it with:

The script should be conversational in style, using standard rhetorical techniques to hold attention.

I’m hoping for some alliteration, rule of three and so on. Here’s the output:

“Tonight on [channel]: ‘Elementary.’ Sherlock unravels a murder with ties to a billionaire CEO. Family bonds tested. Secrets revealed. Intrigue unfolds. Blood is thicker. Next, here on [channel].”

“Tonight on [channel]: ‘Elementary.’ Sherlock faces family ties and probes a murder linked to a billionaire. Intrigue unfolds. Blood is thicker. Next, here on [channel].”

“Get ready for a riveting ride as Sherlock delves into a murder with ties to a billionaire CEO. Family bonds tested, mysteries unveiled. “Elementary.” Next, here on [channel].”

The first two are no good. Something weird about them. Doubling up on the channel name is a clear no-no. Only the last one is usable but it feels like the short sentence requirement in the prompt is a problem for the AI. Let’s remove it and see what happens. So the whole prompt is now:

Your job is to persuade people to keep watching a TV channel. The channel is all about drama, mystery and intrigue.

The next programme on the channel is called “Elementary” and it is described as follows: “New. Blood Is Thicker: Mycroft asks his brother to return with him to London, and Sherlock looks into the murder of a young woman with a curious link to a billionaire CEO.(n)”

Write a script to persuade people to watch this programme. The script must not exceed 30 words. The script must end with the phrase “Next, here on [channel].”

The script must not include any explicitly promotional or marketing language. The script should mention the name of the programme if space allows. The script must be ready for voiceover, with no stage directions. The script must reflect the nature of the channel. The script should be aimed at a reading age of 12 years old. The script should be conversational in style, using standard rhetorical techniques to hold attention.

And the results are:

Join the suspense as Sherlock unravels a murder tied to a billionaire CEO. Family bonds strained, secrets exposed. “Elementary.” Stay tuned for more intrigue. Next, here on [channel].

Unlock intrigue as Sherlock faces family ties and a billionaire’s secrets. “Elementary” unravels mysteries in London. Stay tuned for suspense. Next, here on [channel].

Unlock the secrets of “Elementary.” Join Sherlock in a web of family ties and a murder mystery linked to a billionaire CEO. Intrigue awaits. Next, here on [channel].

I would say that these are all good enough to use. Certainly not on a top-tier channel, but if I owned a FAST channel and wanted to add spoken continuity without creating a costly and fiddly production pipeline, a machine that could generate acceptable scripts like that would for sure be on my shopping list.

I would want that machine built into a workflow engine that could generate the scripts and allow human review and approval. AI can hallucinate and there must be a human in the loop to pick up any potential regulatory problems. Ofcom expects channel owners to run tight ships and it might not be the best idea to admit that an AI is writing continuity links and they’re going straight to air with no opportunity for manual intervention.

Let’s try the same prompt skeleton on other genres of content: kids and sport. Here are the prompts. First Kids:

Your job is to persuade people to keep watching a TV channel.

The next programme on the channel is called “Space Chickens In Space” and it is described as follows: “Players Gotta Play: The chicken-helmed \”school play\” about Glargg’s battle days starts an intergalactic war with The Beige.”

Write a script to persuade people to watch this programme. The script must not exceed 30 words. The script must end with the phrase “Next, here on [channel].”

The script must not include any explicitly promotional or marketing language. The script should mention the name of the programme if space allows. The script must be ready for voiceover, with no stage directions. The script must be fun, snappy, bold and irreverent. The script should be aimed at a reading age of 12 years old. The script should be conversational in style, using standard rhetorical techniques to hold attention.

Note that I’ve also moved the bit about channel tone into the final paragraph (bold underline). I thought it was asking a bit much of the AI to describe the channel tone of voice, and then to say the script must reflect that. Much better to specify the tone for the script. Outputs were:

Get ready for cosmic chaos! “Space Chickens In Space” launches a feathered frenzy. School play gone wild sparks an intergalactic war. Buckle up, laugh out loud. Next, here on [channel].

Get ready for a cosmic clash in “Space Chickens In Space.” Chickens, school plays, and intergalactic wars—seriously. It’s eggstraordinary chaos. Next, here on [channel].

Get ready for cosmic chaos! “Space Chickens In Space” takes school plays to a whole new galaxy. Chickens, battles, and intergalactic drama. Buckle up, laugh out loud. Next, here on [channel].

Please note that the AI has, on its own, made up the word “eggstraordinary”. These are all perfectly usable in my opinion. Now for some sport; here’s the prompt, based off the same skeleton with key details swapped out:

Your job is to persuade people to keep watching a TV channel.

The next programme on the channel is called “UFC Fight Night” and it is described as follows: “Action from UFC Fight Night in Las Vegas and the light heavyweight showdown between Magomed Ankalaev and Johnny Walker.(n)”

Write a script to persuade people to watch this programme. The script must not exceed 30 words. The script must end with the phrase “Next, here on [channel].”

The script must not include any explicitly promotional or marketing language. The script should mention the name of the programme if space allows. The script must be ready for voiceover, with no stage directions. The script must be exciting, intriguing, powerful and show expertise about sport. The script should be aimed at a reading age of 25 years old. The script should be conversational in style, using standard rhetorical techniques to hold attention.

And the outputs:

Get ready for heart-pounding action at UFC Fight Night! Witness the epic light heavyweight clash between Magomed Ankalaev and Johnny Walker. Unleash the power. Next, here on [channel].

Get set for a jaw-dropping UFC showdown! Las Vegas lights up with Magomed Ankalaev facing off against Johnny Walker in a heavyweight clash. Brace for impact. Next, here on [channel].

Get set for a clash of titans! UFC Fight Night brings you Ankalaev vs. Walker, a light heavyweight showdown in Vegas. Thrills, spills, and fierce action. Next, here on [channel].

Again, perfectly usable.

Reading back through all these, what’s missing is a sense of any wider engagement between the channel and the viewer. Each script stands alone based on the EPG synopsis and some contextual data about the channel. There is no sense that this programme is part of the life of the channel and the viewer has bought into it. Particularly in sport, there might be drama about this fight or that race which is more of a reason to watch it than any shouty announcement. As an experiment I decided to add some (fictional) context to this UFC programme, and give the AI a few more words to play with. Here’s the prompt:

Your job is to persuade people to keep watching a TV channel.

The next programme on the channel is called “UFC Fight Night” and it is described as follows: “Action from UFC Fight Night in Las Vegas and the light heavyweight showdown between Magomed Ankalaev and Johnny Walker.(n)”

The context for this programme is: Ankalaev and Walker fought previously one year ago in Dubai, where Walker was declared the winner in a controversial split decision and Ankalaev was accused of foul play.

Write a script to persuade people to watch this programme. The script must not exceed 45 words. The script must end with the phrase “Next, here on [channel].”

The script must not include any explicitly promotional or marketing language. The script should mention the name of the programme if space allows. The script must be ready for voiceover, with no stage directions. The script must be exciting, intriguing, powerful and show expertise about sport. The script should be aimed at a reading age of 25 years old. The script should be conversational in style, using standard rhetorical techniques to hold attention.

And here are the outputs:

Get ready for redemption! UFC Fight Night presents Ankalaev vs. Walker, a light heavyweight rematch in Las Vegas. Last time, controversy ruled. Foul play accusations linger. Sparks will fly. Next, here on [channel].

Gear up for redemption! UFC Fight Night presents the rematch we’ve all been waiting for. Magomed Ankalaev seeks vengeance against Johnny Walker after their controversial clash in Dubai. Explosive showdown, high stakes. Next, here on [channel].

Get ready for redemption! UFC Fight Night brings back Ankalaev vs. Walker, a grudge match after last year’s controversy in Dubai. Will justice be served? Thrilling light heavyweight showdown. Next, here on [channel].

Nailed it – what do you think? There’s a risk of the AI hallucinating more beef between the fighters than actually exists. But who’s to say that a junior continuity producer wouldn’t make a similar exaggeration and have it picked up by their boss?

So now I have a skeleton prompt that I can fill out with channel and programme specific text, and it’ll generate perfectly acceptable spoken continuity scripts, ready for review before heading to the VO booth. The workflow engine to control and manage all this needs to marshal the following eight data points:

Data pointExampleSource
Programme nameUFC Fight NightEPG feed
EPG synopsisAction from UFC Fight Night in Las Vegas and the light heavyweight showdown between Magomed Ankalaev and Johnny Walker.(nEPG feed
Programme context (optional)Ankalaev and Walker fought previously one year ago in Dubai, where Walker was declared the winner in a controversial split decision and Ankalaev was accused of foul play.Traffic system or manual entry against each programme
Word count45Manual entry into a template
Channel tagNext, here on [channel]Manual entry into a template
Script toneexciting, intriguing, powerful and show expertise about sportManual entry into a template
Viewer reading age25Manual entry into a template
Script format & structureScript must be conversational in style, using standard rhetorical techniques to hold attention

Sentences must be short, avoiding subordinate clauses.

The script should mimic the phrasing and style of a movie trailer, using unusual language and sentence structure to surprise the audience.
Manual entry into a template. Perhaps selectable from an options list?

In the Backbeat factory there are template and job documents to hold all that. The templates carry the prompt information described here, and also the graphics project, output format and all the info needed to mass produce TX ready clips.

The factory scrapes data from an EPG, and produces a Job document for each continuity announcement. The Job holds a bespoke prompt text generated from the skeleton, as well as providing a way to upload still images if that’s what the graphics require.

The UI and the workflow can be easily customised to user requirements

In the next post I will experiment with a speech synthesis engine to convert these scripts into voiceover clips ready for transmission.