News & release notes

Updates

What's new in NarrationOS: releases, fixes, and where the project is headed.

NarrationOS 1.1.0: pronunciations work with any character, and setup repairs itself

Pronunciations with accents and umlauts are spoken correctly

If you set a pronunciation containing any character outside A to Z, the narrator read the internal markup out loud instead of saying the word. A respelling like "Kompjutär", "naïve", or "Renée" would come out as "phoneme alphabet i p a" followed by the raw code.

This was never a language setting problem, and it was not limited to non-English books. Respelling an ordinary English loanword or a European name in an English book hit exactly the same thing. Pronunciations now work with any characters you type.

Two related surfaces were fixed by the same change:

  • The editor's pronunciation preview showed no highlight at all for those entries, so the preview and the rendered audio disagreed. The preview and the render are now driven by the same code and always match.
  • The per-name Preview button in the Names panel was affected too.

Existing renders are unaffected and do not need re-rendering. A pronunciation made only of ordinary A to Z letters produces byte-for-byte identical audio to 1.0.9, verified by comparing rendered output before and after the change.

Setup repairs itself instead of blaming your internet connection

If the app's runtime folder was ever damaged, by an interrupted uninstall, antivirus quarantine, or a half-finished copy, NarrationOS could refuse to start for good. It showed "Setup failed" and told you to check your internet connection, which was never the cause: NarrationOS sets itself up entirely offline. Retry could not fix it, and the only way out was deleting a folder the app never named.

Setup now checks the runtime on every launch and rebuilds it by itself when it finds it damaged, with no internet access and nothing for you to do except wait a few minutes. If it ever truly cannot repair itself, the message names the exact folder to delete and gives you an Open folder button, instead of pointing at your connection.

On AMD ROCm and Intel GPUs, the separate CPU runtime those cards need for CPU rendering was not always created, because the check only recognised an unversioned "rocm" tag and missed the versioned ones the detector actually reports. Without that runtime, switching to CPU could hang. It is now created correctly.

Top bar polish

  • Clicking into a text box or a dropdown drew a thick black border around it. That was the browser engine's own default focus indicator showing through, in near-black, on a dark theme. Focused controls now get a thin accent outline that follows the control's own rounded corners.
  • The window could not be dragged, minimised or closed while a setup, export or attribution screen was up, because those screens painted over the title bar. Those controls now stay available at all times.
  • The minimise, maximise and close buttons were cramped and brighter than the rest of the bar. They are now full height and muted, and the Discord, search and zoom icons sit on the same line as them.

NarrationOS 1.0.9: undo and redo in Rewrite mode

The Rewrite editor now has Undo and Redo, with their own toolbar buttons next to Save and Discard, plus the usual Ctrl+Z and Ctrl+Y (or Ctrl+Shift+Z) shortcuts.

Undo and redo cover typing as well as splitting, merging, inserting, deleting, and pasting paragraphs. A run of ordinary typing or backspacing coalesces into a single undo step, the way a word processor does, but a deliberate selection-and-delete, a Ctrl+A+Delete, or pasting in a chunk of text always gets its own step and is never merged into whatever you typed just before or after it, so one Ctrl+Z reverts exactly what you just did, not more. History is capped at 50 steps and always clears when you leave Rewrite mode, switch chapters, discard, or save, so it never grows unbounded across a long editing session.

Two things were caught and fixed before this shipped, both only visible through actually using the feature:

  • A paragraph box's height could stay stuck at its old size right after an undo or redo, even though the text itself was correctly restored, until something else, like an arrow key, forced the box to redraw. The box now always resizes to fit the restored text immediately.
  • A selection delete made shortly after typing could get folded into that earlier typing instead of standing on its own, so one undo would revert more than intended. Undo steps are now judged by what kind of edit actually happened, rather than guessed at afterward from the before-and-after text, so this can no longer happen.

Also in this release

  • The Undo and Redo buttons use small icons instead of text labels and sit closer together in the toolbar, for a tighter, more obviously-paired look next to Save and Discard.
  • A wording cleanup in the "Unsaved text edits" banner.

NarrationOS 1.0.8: record a clone sample without leaving the app

Record a voice sample directly in the app

The Clone a voice page now has a Record instead tab next to the file drop zone. Instead of recording in a separate app and then finding the file to upload, you can capture a reference sample right there: press record, speak for up to 15 seconds, and the clip is saved and probed automatically, just like an uploaded file.

The recorder uses your system's current default microphone and writes a WAV file at the sample rate the cloning pipeline expects. A live level meter is shown while recording, with the -6 to -3 dB target window marked on it, so you can see roughly where your peaks are landing as you talk. Tips are shown before and during recording: start talking immediately, vary your pitch and volume, and record somewhere without an echo.

If microphone access is denied or no microphone is available, the app shows a clear message, and the existing "Upload a file" option keeps working exactly as before.

The quality probe now checks peak level, background hum, and room echo

Clone a voice's "Probe quality" score already checked clipping, sample rate, background noise, and clip length. It now also checks:

  • Peak level. The target is -6 to -3 dB. Quieter or louder than that is flagged, with a heavier penalty once you're essentially maxed out.
  • Background noise floor. A steady hum or buzz, a fan, an AC unit, electrical mains hum, can sit at a level too quiet to trip the existing noise check but still loud enough to bleed into the clone. This new check flags a floor above roughly -50 dB even when your voice itself is loud and clear.
  • Room echo/reverb. A clip recorded in a small, hard-walled room now gets flagged the same way a noisy or clipped one already did.

All three checks apply to uploaded files too, not just recordings made in-app.

NarrationOS 1.0.7: voice presets, and a Rewrite-mode confirm dialog fix

Voice preset dropdown

Settings > Voice model now has a Voice preset picker above the sampler knobs: Dev's Choice (the app default), Boring & Monotone, Professional Presenter, Low Expressive Storyteller, High Expressive Storyteller, and Lunatic. Each preset applies a hand-tuned bundle of exaggeration, neutral exaggeration, temperature, CFG weight, and repetition penalty in one click instead of typing five numbers by hand. It takes effect on the next render with no restart, and hand-editing any field afterward correctly falls back to Custom in the dropdown. Only shown for English and Multilingual, since Turbo does not use these knobs.

Leaving the editor with unsaved Rewrite edits now asks first

Stepping out of the Narration Editor, for example with the Back button, used to silently discard prose edits made in Rewrite mode unless you had pressed Save first. Every way of leaving the page while a draft is unsaved (Back, the breadcrumb trail, the top navigation, the command palette, and browser back/forward) now prompts to confirm before discarding, the same way switching chapters or toggling out of Rewrite mode already did.

That existing chapter/mode prompt turned out to be silently broken too: it used the browser's native confirm dialog, which the app's webview does not support, and it failed instantly with an "unhandled promise rejection" error toast instead of ever showing a prompt. All three now use the app's own themed confirmation dialog, the same one already used for deleting a chapter or a book, which actually works.

NarrationOS 1.0.6: delete chapters, change covers, and a quieter uninstall

A faster way to update, starting now

Up to now, updating NarrationOS meant downloading the full install again, all roughly 27 GB of it, even for a release that only changed a handful of files. From this release on, every update also comes with a small update folder alongside the full download, containing only the files that actually changed, so if you are already on the previous version, you can update in a couple of minutes instead of redownloading everything.

Each update folder only bridges you from the one version right before it. For example, the 1.0.6 update folder only works if you are currently on 1.0.5. The main download is always kept at the latest version, so if you are more than one version behind, or installing for the first time, download the full version instead. There is no update folder for skipping straight from an older version to the latest. The itch.io page has the exact steps for using an update folder.

Delete a chapter

The Book page now has a Delete chapter option, alongside re-render and export, in the chapter's own menu. It removes the chapter itself, its rendered audio, and everything attached to it (sound effects, pronunciation overrides, attribution), and asks for confirmation first since this cannot be undone. If a render for that chapter is running or paused when you delete it, that render is cancelled and its checkpoint discarded first, so nothing is left half-finished.

Change a book's cover

The Library page can now change a book's cover image directly. Hover a book, choose Edit cover, and pick any image from your computer. The grid updates immediately, no refresh needed.

A quieter, safer uninstall

Uninstalling used to open a plain console window that printed its progress line by line. It now shows a proper Windows dialog box, with a live progress bar instead of scrolling text. It also survives a stubborn folder better: if File Explorer has your install folder open at the moment you uninstall, an empty leftover folder is now correctly treated as a success rather than a scary error message.

NarrationOS 1.0.5: export your book as a video

NarrationOS can now render a chapter as an MP4 video, not just audio. The narration text appears on screen and lights up in time with the voice, over a background image of your choosing. It is the same cinematic view you already read along with in the app, turned into a file you can upload, post, or send to someone who does not have NarrationOS. Until now every export was audio only.

Make it yours. There is a new Video page in the sidebar: pick the background image, the font, the colour of the spoken line and the faded ones around it, where the text sits on screen, and whether the paper grain shows through. A live preview updates as you change things, so you can see the result before you spend time rendering one.

What comes out. Full HD, 1920×1080 at 30 frames per second. A 20-minute chapter lands at roughly 123 MB. You get one video per chapter, and you can render a whole book in one go from Export all rendered chapters. The highlighting is driven by the same high-accuracy Sync pass the reader uses, so the words cannot drift out of time with the voice over a long chapter.

One thing to know about playback: the video uses the AV1 format, chosen because it is royalty-free and keeps small text sharp at a reasonable file size. It plays everywhere modern, including VLC, YouTube, Chrome, Edge, Firefox, Safari 17 and up, and any phone or TV from roughly 2020 onward. A pre-2020 iPhone or an older smart TV may not open it. Playback inside NarrationOS is unaffected.

Everything runs on your own machine, offline, like the rest of NarrationOS. Nothing is uploaded and nothing is downloaded to make it work.

Sync no longer waits for a render to finish

Pressing Sync while a chapter was rendering appeared to do nothing. The button showed a spinner and stayed there, because the sync was queued behind the render, sometimes for the better part of an hour on a long book. There was no way to tell that from a sync that was simply slow.

Sync now runs straight away, alongside the render, by using the processor while the graphics card is busy. When nothing is rendering it still uses the graphics card, which is about three times faster. The result is identical either way: across a test chapter both routes produced exactly the same timings, to the millisecond.

On AMD (ROCm) and Intel Arc (XPU) graphics cards this is not possible, for reasons outside our control. Rather than leave you watching a spinner that will never move, Sync now tells you plainly that it cannot run until the render finishes, and the button stays available so you can press it again afterwards.

The M4B export has been removed

MP3 is now the audiobook export. Nothing you actually used is lost: MP3 carries the same chapter marks, the same cover art and the same tags, and it opens in Apple Books, Plex, Audiobookshelf, BookPlayer, phones and cars. In practice that is a wider set of players than M4B ever reached. Files you exported as M4B in an earlier version still play normally.

Also in this release

  • Exports no longer overwrite each other. Re-exporting the same chapter adds (2), (3) and so on instead of silently replacing the earlier file.
  • Clearer export errors. A path that is too long, a missing folder, or a full disk now says so immediately, instead of failing after a long encode with a generic message.

NarrationOS 1.0.4: Playback speed + Skip-line Guard Fix

Speeding a chapter up used to raise the pitch along with it. At 1.5× your narrator sounded younger and thinner; at 2× they sounded like a cartoon. It made the faster speeds hard to actually listen to, which rather defeated the point of having them.

Speed and pitch are now separate. Every preset from 0.8× to 2× keeps the narrator's voice exactly as it was recorded, so a 2× re-listen sounds like the same person reading faster rather than a different person entirely. Slowing down works the same way: 0.8× no longer drops the voice into a lower register.

The text highlighting keeps up at every speed, including chapters where you have used Sync. Nothing to turn on: change speed as you always have, and it simply sounds right.

Lines are no longer quietly skipped

Some renders dropped a sentence. Not garbled it, not mispronounced it, but left it out entirely, with the audio moving straight to the next line as though the words were never there. Because the chapter still played smoothly, this was easy to miss until you were following along in the text.

There were two separate causes, and both are fixed.

Decorative dividers and unusual sound effects. A line of box-drawing characters, an ornament, or an invented sound effect sitting immediately before a paragraph could swallow the narration that followed it. The divider is now removed before recording, and a sound effect is attached to the line before it rather than the line after, so there is nothing left for it to swallow.

Occasional early stops. Independently of any symbol, a recording could sometimes stop early and pad the rest with silence, losing the last sentence or two of a paragraph. NarrationOS already had a safeguard for this, but it had been switched off because it was wrong far more often than it was right: it could not tell a genuinely missing sentence from a name its transcriber simply could not spell. Chapters full of invented names, which is most fantasy, tripped it constantly, and every false alarm meant a paragraph was re-recorded sentence-by-sentence, which flattened the delivery.

The safeguard now requires a second, independent signal before it acts. A misspelled name no longer looks like a missing sentence, so it is back on by default and considerably more accurate. On our test library it went from being right about 7% of the time to about 67%, while still catching every genuine drop we could find, and the delivery damage from false alarms disappeared entirely.

Also in this release

  • Non-Latin text is flagged in the editor. Hebrew, Japanese, Cyrillic and similar scripts cannot be pronounced by the English narrator and come out as gibberish. Rewrite mode now marks those paragraphs so you can find and reword them, instead of discovering the problem in the finished audio. Nothing is removed from your text.

One thing to expect after updating

Your existing recordings are kept exactly as they are. The improvements above apply to new recordings and to any chapter you choose to re-record. If you have a chapter where you noticed a missing line, re-recording it should now produce the complete text. If a chapter sounds fine, there is no need to touch it.

Nothing to do on your end. Your books, voices, pronunciation overrides, sound effects and settings all carry over, and you will not be asked to accept the licence again. Works the same on every supported setup: NVIDIA, AMD, Intel, and CPU-only.

NarrationOS 1.0.3: you can now edit the words themselves

Until now the editor let you change how a chapter was read (who speaks each line, how a name is pronounced, which sounds play) but never what it said. If the source text had a typo, an awkward sentence, or a paragraph break in the wrong place, you had to fix the original file and re-import the book.

The editor now has two modes, and you can switch between them at the top of the page:

  • Direct. Click a line to set who speaks it, how names are pronounced, and which sounds play. The words themselves are not changed.
  • Rewrite. Change the chapter's prose, and split, merge, add or delete paragraphs.

Rewrite works like a word processor. Type freely, press Enter to split a paragraph in two, backspace at the start of one to merge it into the one above, and paste in as much new text as you like. You can delete a whole run of paragraphs and drop in replacements. It does not have to be a small edit.

Your other work is preserved. Speaker assignments, pronunciation overrides, sound effects, italics and reader highlights follow the text as you move it around, rather than being wiped whenever you touch a paragraph. Where an edit genuinely removes the words an override was attached to, that override goes with them. Highlights are treated more forgivingly: they are your own annotations, so they are re-anchored rather than dropped even when a move is inexact.

Editing text changes what gets narrated, so any chapter you actually change will need re-recording. Chapters you leave alone are untouched, and if you edit a paragraph and then put it back exactly as it was, the existing recording is reused rather than redone.

Hear a paragraph before you commit to it

Rewrite mode has a play button on every paragraph. Press it and you hear just that paragraph, in the right voice, without rendering the chapter.

It is meant for exactly the moment you are unsure: you have reworded a sentence and want to know how it lands before spending time on a full render. The preview uses the same voice and settings the real render would, so what you hear is what you will get.

There is now a clear spinner and progress bar while it is working. Previously the loading indicator was almost invisible, and it disappeared entirely if you clicked away from the paragraph, which made it look like nothing was happening.

Finding the Sync button

Some of you told us the text highlighting drifted out of step with the audio. The highlighting was working as designed, but the button that makes it precise, Sync, was easy to miss entirely, so it looked like a bug rather than an option you had not turned on yet.

Opening the reader or cinematic view now shows a short prompt pointing at that button: "Highlight out of step?" Press Sync to align the text highlight to this chapter's audio.

It only appears when Sync can actually help. If a chapter is already synced, or Sync is not available for it, you will not be nagged. Close it and it stays gone until the next time you open the player; tick Don't show this again and it never comes back. Using Sync also retires it for good, since at that point you have clearly found it.

Also in this release

  • A stuck render no longer blocks Sync and previews. A paused render, often just a leftover row from an earlier restart with nothing actually running, would report "a render is in progress" and keep the button disabled, sometimes for days, until you cleared it by hand. Paused renders are now ignored. Renders that are genuinely running or waiting in the queue still take priority, since they need the graphics card.
  • The Single/Multi-cast switch has moved to the end of the book title row. It was crowded in among the editing tools, where it read as just another button despite changing how the whole chapter is narrated.
  • The mode switch no longer comes up blank on a freshly opened editor.

NarrationOS 1.0.2: numbers are now read properly

The narrator used to stumble on numbers. A year like 1847 could come out as a string of loose digits, prices and measurements were hit-and-miss, and longer numbers were the worst of all: the more digits, the more likely it was to come out wrong.

That is fixed. Numbers are now converted to words before they reach the narrator, the way a human reader would say them out loud:

  • "The year 1847" is read as "the year eighteen forty-seven".
  • "In 2019" is read as "in twenty nineteen".
  • "$5" is read as "five dollars", and "$3.14" as "three dollars and fourteen cents".
  • "1,234 sheep" is read as "one thousand two hundred thirty-four sheep".
  • "3:15" is read as "three fifteen", and "8:05" as "eight oh five".
  • "50%" is read as "fifty percent", and "the 21st" as "the twenty-first".
  • "2 ½ pies" (or "2 1/2") is read as "two and a half pies".
  • "5km" is read as "five kilometers".
  • "Agent 007" is read as "agent zero zero seven".

Your book still looks exactly the same. This only changes what the narrator says. The text on screen, your highlighting, and your exported files keep the original "1847", nothing in your library is rewritten.

Things that were already being read correctly are deliberately left alone, so 3D, MP3, H2O and 4K still sound the way they should.

The app version is easier to find

Settings now shows App Version 1.0.2 clearly at the top of the page. It used to be a small grey tag that was easy to mistake for the engine's internal version number underneath it. If you ever need to quote your version in a support message, that top number is the one.

Also in this release

  • Fewer unnecessary re-recordings. The quality checker compares the narration to what was actually spoken, and it used to get confused by sentences containing numbers and redo them for no reason. It no longer does.

NarrationOS 1.0.1: a proper uninstaller

A small quality pass on top of 1.0.0.

  • A proper uninstaller. The app installs several GB of AI runtime into your user folder, separate from wherever you extracted it. There is now an "Uninstall NarrationOS" app that cleans up the installation while asking before touching user content like books, renders and voices. It also removes the bundled writing model from Ollama's shared folder, while leaving models you downloaded yourself alone.
  • Free up space without uninstalling. Settings now shows where the data folder lives and how big it is, with one-click clearing of model caches that rebuild themselves on the next launch.
  • A better sample book. The included short story has been rewritten with longer, more flowing narration. The original had brief lines that the voice model tended to rush through.
  • Fixes. Removed a console window that flashed up during uninstall, moved the app version to the top of Settings, and addressed cases where the app could lose track of model files after a manual cleanup.

Your library, voices and existing renders are untouched by this update.

NarrationOS 1.0.0: the studio is open

NarrationOS 1.0.0 is on its way to itch.io. Drop in a book and get back a finished audiobook read by an AI narrator, rendered entirely on your own machine. Then shape every line in a real editor until it sounds right.

What's in the box

  • Universal ingest: EPUB, PDF, DOCX, RTF, TXT, Markdown, HTML, URLs, pasted text, and OCR for scanned pages.
  • Single-narrator render with word-level karaoke highlighting, and finished chapters play while the rest of the book renders.
  • The Narration Editor, the heart of the app: click any line to fix a pronunciation, audition it, or voice its sound effects, all previewed before you render.
  • Consent-gated voice cloning and export to tagged audio files.
  • Runs on NVIDIA (CUDA) and AMD (ROCm) GPUs on Windows, or plain CPU. Intel Arc (XPU) is experimental.
  • An experimental full-cast mode is in progress (speaker detection is still rough and needs hand-correcting, so single narrator is the recommended path for now).

Wishlist & join in

The itch.io page is live now. Follow it to be notified at launch, and hop into the Discord for early builds, showcases, and to help shape what ships next.

The community server is live

There's now a home for NarrationOS on Discord: a place for install help, usage questions, feature requests, and showcasing the audiobooks you make. Bug reports there get triaged and fixed fastest.

Come say hello →