Audiobook

Turn a book into speech on this Mac. Resume when the lid closes. Listen before the whole file exists.

This is a Cursor and Claude skill I run locally. It does not send the book to a paid model. Cleanup and speech go through LM Studio on the same machine. The only cost is electricity.

Only use text you have the right to copy and narrate. Then send feedback if a clip sounds wrong or the progress page misbehaves.

What you get

How a run works

  1. The source is saved into the work folder as source/original.txt. It is not left only in chat.
  2. If the file is already readable prose, speech starts. A scan dump can be OCR-cleaned first with a local text model. That blocks speech, because Orpheus and the text model cannot both be loaded.
  3. Orpheus in LM Studio reads short clips (about 110 words). Default voice is Leo.
  4. Each finished clip is appended onto a growing wav. The progress page keeps playing while stats refresh.

Pronunciation

Orpheus has no SSML. Do not put <break>, IPA, or {goh} in the book. Names go in source/lexicon.tsv as English respelling, applied when speaking:

# written	say
Gogh	Go
van Gogh	van Go
Theo	Tee-oh

Longest phrase first. Chapter titles in the m4b stay in print form. Sidecar text is what was actually spoken, so a lexicon change only regenerates matching clips.

Chapters and pauses

A line that is only Book I, Chapter 12, or Letter 3 is spoken and becomes an m4b chapter. Extra structure uses lone lines that are never spoken:

:::chapter Book I
:::title June 1873–December 1881
:::mark Preface
:::pause 1.5
***

:::pause and a lone *** insert silence. Concat is gapless, so a rest has to be a silent wav. Extra blank lines are only paragraphs. OCR must not invent these markers or respell names.

Cover

If you put a square JPEG in source/cover.jpg, that is used. Otherwise the skill draws a Cool Grey title plate from the book title and author (folder name, or source/meta.json). It shows on the progress page and is embedded in the finished .m4b.

How I start it

In Cursor or Claude Code, with the work folder open, ask to make or resume an audiobook. The skill discovers whatever is already on disk, opens the progress page, and starts speech if it had stopped.

Canonical files live in ~/.claude/skills/audiobook/. The Cursor copy is a symlink.

Feedback