Tools to search a Proffie card by what the sound files actually say

I have about 40 fonts on my card and I could not tell you what is in most of them.

Somewhere in there is the line I want, sitting in a file called quote17.wav, and

the only way to find it is to play them one at a time until I hit it. Last month I

finally got sick of doing that, so I transcribed the whole card and made it

searchable by what the files actually say. The scripts are on GitHub under MIT. I

am putting them here in case anyone else wants them.

How it was made, and what I checked

I wrote this with an AI assistant. The guidelines here ask about that, and I would

rather say it in the second paragraph than have someone dig it out later.

What it means in practice is that nothing went in untested. Every tool ran against

my own card first: 1,212 files across 43 fonts, roughly 53 minutes of audio. The

saber those came off is assembled and running. Anything the batch tool wrote got

SHA256-checked against its source afterwards rather than assumed.

You do not have to believe any of that. There is a script in the repo that builds a

fake card in a temp folder and runs the whole toolchain against it, including a real

apply and rollback on disk:


python .claude/skills/run-lightsaber-toolkit/driver.py

18 checks, about half a minute, and it needs no saber and no model download. So you

can find out whether the thing works before pointing it at hardware you care about.

There are 33 tests as well. If either falls over on your machine I would rather hear

about it.

What it does

Font authors do not document their files, so most of this is about finding out what

you already own.


$ python tools/search.py "i am your father"

3.9s IWVader/quote17.wav

"I am your father."

play IWVader/quote17.wav

That last line pastes straight into the serial monitor if you want to hear it.

When I do not know what I am looking for, report.py dumps the whole card instead,

one table per font, every spoken file with its text:


## IWVader

| File | Sec | ? | Line |

|---|---:|:-:|---|

| `quote09.wav` | 0.8 | | Good. |

| `quote13.wav` | 7.7 | | Impressive. Most impressive. |

| `quote15.wav` | 4.4 | | If you only knew the power of the dark side. |

One warning if you try this. Whisper will hand you a confident, fluent sentence for

audio that contains no speech in it at all. Point it at a blade hum and it invents

something. So doubtful lines get marked rather than deleted, because genuinely odd

speech gets flagged the same way and I did not want to lose real lines on suspicion.

There is an optional second pass using CLAP, which scores a fixed list of labels

instead of generating text and therefore cannot make anything up. The two are wrong

in opposite directions. That is the only reason running both is worth the bother.

Changing files goes through a batch tool that previews first, keeps a .bak of

whatever it replaces, and rolls back. It flatly refuses to overwrite an existing

file if the batch did not ask for a backup, which in my experience means the batch

is stale or I already ran it once.

There is also a docs/ folder of hardware things that cost me an evening each. The

two USB ports where only one of them carries data. The driver that kept getting

silently reclaimed by a background service belonging to completely unrelated

hardware. Why presets.ini quietly overrides your config and survives a reflash. If

I am honest that folder is probably worth more than the code, since it needs no GPU

and nothing installed.

What it will not do

It reads whatever it likes off the saber and only ever writes to the SD card. It

never touches firmware. Flashing is already solved by people who know what they are

doing, and docs/flashing.md just points at them rather than competing.

Scope

Tested on exactly one saber: Proffieboard v2.2, single button, ProffieOS 7.15,

Windows 11. The card tools should be fine on any Proffie card. The PowerShell and

the driver instructions are Windows-only. Everything else I would guess works

elsewhere and I have not checked.

Credit

All of this sits on top of other people’s work. Proffieboard and ProffieOS are

Fredrik Hubinette’s. My saber is actually built with Fett263’s prop file and config

generator. NoSloppy’s SoundFontNamingConverter solves a different problem and is the

right tool when naming conversion is what you need.

The fonts are not mine and are not in the repo. .gitignore has kept audio out of

it since the first commit, because font licensing is murky and anything committed

once stays in history forever.

Happy to be told I have got something wrong.

1 Like

To be specific, the rules say that AI content needs to be verified by a human before posting it. That seems to have been the case for the utility, but I want to make clear that that goes for posts as well. The original post looked like it had been written by AI and was barely comprehensible. I think the edited post is quite a bit better.

Your comment above seems like AI stuff though; it talks about the rules, but shows now actual comprehension of the rules. Hopefully that should be rectified now.

1 Like