Getting my Fruit Jam Clock to Speak
The Idea
The Fruit Jam, with its built‑in audio, Wi‑Fi, HSTX display, SD card, generous memory, and other little goodies, is a fantastic platform for mixing creativity with a bit of technical magic. Add CircuitPython to the mix and you’ve got a wonderfully flexible development environment.
With one of my Fruit Jams, I built a display that shows an analog clock face, rotates through an album of photos of my grandkids as the background, and pulls weather data from Adafruit IO that I can scroll through using an IR remote.
With the built‑in TLV320 DAC, I also wanted it to sound like a clock — a really big clock. I wrote functions to synthesize polyphonic tones that mimic the classic Westminster Quarters every fifteen minutes, and at the top of each hour it plays a WAV file of a single church‑bell toll, repeated once for each hour. It turned into a great little project that let me explore different elements of CircuitPython and many parts of the Fruit Jam board.
It’s been running for months now and has become a charming addition to my office. And the best part is that I can keep extending it whenever a new idea strikes.
I Discovered Copilot Audio Expression
The other day, while playing with Copilot, I noticed a link to Labs at the top of the screen. Clicking through, I found Copilot Audio Expression, described as “an experimental tool designed for effortless audio creation using Copilot’s latest voice‑generation models.” You simply type a word or phrase, and it “speaks” it for you — then you can download the result as an MP3.
A few quick prompts and some experimenting with the different settings sparked an idea: Why not make my Fruit Jam clock talk?
Everything old is new again...
Stringing together audio samples to form phrases is nothing new — people have been doing it for decades, long before digital audio. One of my earliest Learn Guide projects, the Titano Weather Station, used prerecorded samples as alarms (“time for bed”). But once you go beyond a handful of words, the challenge grows quickly. A talking clock or calendar needs nearly a hundred different clips: dates, day names, months, ordinals, and more. Gathering, recording, editing, and normalizing all of that becomes a real chore.
That’s where this new AI tool shines. I can generate clean, consistent audio samples for every word or phrase I need in just a few minutes.
So let’s build a Fruit Jam clock that can announce the time and date.
Step by Step
This article focuses specifically on adding the talking capability to my existing Fruit Jam clock project. The display, weather integration, IR remote navigation, and Westminster chimes are all already in place — and I can cover those in a future article if there’s interest. For now, we’ll walk through the audio‑generation workflow that makes the clock speak.
The overall process breaks down into four main steps:
1. Generate all the required words and phrases using Copilot Audio Expression 2. Convert the MP3 files to WAV format using FFmpeg 3. Organize the files on the SD card and create logical CircuitPython lists 4. Write functions that assemble and play the spoken phrases
Generating the samples
For my project, I needed the Fruit Jam to be able to speak:
The time (hours, minutes, AM, PM, noon, midnight)
The date (day name, month name, ordinal date, year)
The quarter hours (“quarter past”, “half past”, “quarter til”)
And as a bonus: holidays, special days, and fun extras
Copilot Audio Expression made this surprisingly easy.
Before we dive in, note that Copilot Audio Expression is part of Copilot AI Labs and is marked as experimental. It may change or disappear at any time. The site I used is: Copilot Audio Expression Website.
Copilot Audio Expression Website