BrightSign Extension

Neural text-to-speech,
entirely offline.

Add high-quality spoken audio to any BrightSign 5 or 6-series player. Send a UDP message, hear a voice. No cloud, no subscription, no latency.

🎙️
4 Neural Voices
US female, US male, British male, US female alt — all on-device
📡
UDP Triggered
One packet from BrightScript or any UDP client starts playback
📢
Broadcast Support
Announce to every player on your network simultaneously
🔒
Fully Offline
Runs entirely on the player — no API keys, no internet needed
300ms synthesis latency
~240MB LVM footprint
5–6s series BrightSign platform
22kHz audio output

A UDP packet is all it takes

Install the signed .bsfw extension via MicroSD card — the player handles everything automatically on first boot. Then send a single UDP message from BrightScript or any control system and the player speaks it aloud.

VOICE 1
lessac — US Female
American English, natural & warm
VOICE 2
ryan — US Male
American English, clear & natural
VOICE 3
alan — GB Male
British English, authoritative
VOICE 4
amy — US Female
American English, alternative style

UDP command format

Send UTF-8 text to port 7800 — receive status on port 7801

CommandDescription
VOICE:1 TEXT:Hello worldSpeak with voice 1
VOICE:2 RATE:1.3 TEXT:Please proceedVoice 2 at 30% slower speed
VOICE:1 LIC:abc123 TEXT:WelcomeLicensed mode — no audio notice prepended
PINGHealth check — daemon replies READY
STOPImmediately stop current speech
' BrightScript example — same player (127.0.0.1) sender = CreateObject("roDatagramSender") sender.SetDestination("127.0.0.1", 7800) sender.Send("VOICE:1 LIC:5569d469b6669cff TEXT:Welcome to the exhibit.") ' Python example — unicast import socket s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto(b'VOICE:1 LIC:5569d469b6669cff TEXT:The show begins in five minutes.', ('192.168.1.179', 7800)) ' Python example — broadcast to all players s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1) s.sendto(b'VOICE:1 TEXT:Attention, the store is now closing.', ('255.255.255.255', 7800))

Free to try, license to own

Download the signed extension file and install it with nothing more than a MicroSD card — no software tools required. Without a license code, the extension is fully functional in demo mode: it prepends a short audio notice before each utterance.

PiperTTS Extension — tts-piperspeech.bsfw
Signed BrightSign extension · 5-series & 6-series · BrightSign OS 9.0+
v1.0.0
Download .bsfw
Installation — no command line needed

Installation uses a MicroSD card or USB stick. No SSH, no terminal, no software tools required.

  1. Prepare a storage drive Format a MicroSD card or USB thumb drive as FAT32 or exFAT. Place the downloaded tts-piperspeech.bsfw file in the root directory of the drive — it should be the only .bsfw file present.
  2. Power down the player Shut down your BrightSign player completely before inserting the storage drive.
  3. Insert the drive and power on Insert the MicroSD card or USB stick into the player, then apply power. The player will automatically detect the .bsfw file, install the extension, remove the file from the drive, and reboot.
  4. Verify the installation Once the player has rebooted, open a browser and navigate to the player's IP address — http://<player-ip>. Go to Info → Extensions to confirm PiperTTS is listed and active.
Finding your player's serial number — the serial is printed on the label on the player unit (e.g. USF57S003918). You can also find it in the Diagnostic Web Server: open http://<player-ip> and go to Info → Device Info.

Per-player, one-time purchase

Each license code is tied to one player's serial number. No subscriptions, no renewals. Buy once, use indefinitely. Volume pricing applies automatically.

Single player
$59
per player · one-time

Enter serial numbers

Paste your BrightSign serial numbers below, one per line. Discount applies automatically when you enter 10 or more.

One serial per line · Find serials on the player label or via SSH: cat /var/volatile/etc/issue
Enter serial numbers above to see pricing
$0.00

Retrieve your license codes

Look up license codes for a previous purchase by email address or serial number.

— or —
Returns the license for that specific player