<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0">
  <channel>
    <description>Rambling Rows</description>
    <image>
      <url>https://rrows.net/uploads/2026/rrows-icon-sq-144px.png</url>
      <title>Rambling Rows</title>
      <link>https://rrows.net/</link>
    </image>
    <title>macos on Rambling Rows</title>
    <link>https://rrows.net/categories/macos/</link>
    
    <language>en</language>
    
    <lastBuildDate>Sun, 28 Jun 2026 13:15:49 +1000</lastBuildDate>
    <item>
      <title>Free text-to-speech on your Mac that&#39;s actually good</title>
      <link>https://rrows.net/2026/06/28/free-texttospeech-on-your-mac.html?utm_source=rss&amp;utm_medium=feed&amp;utm_campaign=rrows</link>
      <pubDate>Sun, 28 Jun 2026 13:15:49 +1000</pubDate>
      
      <guid isPermaLink="false">http://rrows.micro.blog/2026/06/28/free-texttospeech-on-your-mac.html</guid>
      <description>&lt;p&gt;Text to speech (TTS) is a brilliant service for those who would otherwise be literally speechless. Lost Voice Guy on Britain&amp;rsquo;s Got Talent rather humorously demonstrated the challenge.&lt;/p&gt;
&lt;p&gt;&lt;lite-youtube videoid=&#34;xsqInns6LXQ&#34; playlabel=&#34;Play&#34;&gt;&lt;/lite-youtube&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=xsqInns6LXQ&#34;&gt;▶ Watch on YouTube&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But TTS has broad use. DIY personal podcasts. Read some text when on a walk or in the car. Share a personal update with someone who is more of a listener than a reader.&lt;/p&gt;
&lt;p&gt;The good news is you don&amp;rsquo;t need to pay for a service like ElevenLabs to get quite good TTS. At least not on a Mac. (Don&amp;rsquo;t ask me about Windows — that&amp;rsquo;s for someone else to untangle).&lt;/p&gt;
&lt;p&gt;Apple ships Premium Neural text-to-speech voices with every modern Mac. Almost nobody talks about them. Most people reaching for ElevenLabs don&amp;rsquo;t know they&amp;rsquo;re paying for something already sitting on their machine — running locally, no API key, no usage limit.&lt;/p&gt;
&lt;h2 id=&#34;what-apple-actually-ships&#34;&gt;What Apple actually ships&lt;/h2&gt;
&lt;p&gt;Modern Macs on Apple Silicon (macOS Ventura and above) include a tier called &lt;strong&gt;Premium voices&lt;/strong&gt; - Neural TTS built on the same engine Apple uses for Siri. These are not the robot voices from 2012.&lt;/p&gt;
&lt;p&gt;The non-American English voices worth knowing:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Lee (Premium)&lt;/strong&gt; - Australian male. &lt;strong&gt;Matilda (Premium)&lt;/strong&gt; - Australian female. &lt;strong&gt;Jamie (Premium)&lt;/strong&gt; - British male. &lt;strong&gt;Moira (Enhanced)&lt;/strong&gt; - Irish female. &lt;strong&gt;Tessa&lt;/strong&gt; - South African female.&lt;/p&gt;
&lt;p&gt;To download Premium voices: open System Settings, search &amp;ldquo;spoken&amp;rdquo;, open &lt;strong&gt;Read &amp;amp; Speak&lt;/strong&gt; and click &lt;strong&gt;System Voice&lt;/strong&gt;. The dropdown shows installed voices; clicking Customise reveals everything available to download. On Apple Silicon the Premium tier is available; on Intel Macs the ceiling is Enhanced, which is a noticeable step down.&lt;/p&gt;
&lt;h2 id=&#34;the-subscription-trap-this-replaces&#34;&gt;The subscription trap this replaces&lt;/h2&gt;
&lt;p&gt;ElevenLabs - the category leader - charges &lt;a href=&#34;https://elevenlabs.io/pricing&#34;&gt;$5/month for a Starter plan&lt;/a&gt; and $22/month for Creator. Both are designed for the moment you forget to cancel.&lt;/p&gt;
&lt;p&gt;The quality gap that justified those prices has closed for a specific use case: reading documents aloud. Apple&amp;rsquo;s Premium voices are genuinely competitive for narration, podcast-style reading and accessibility work. Not for voice cloning, not for expressive performance, not for hyper-realistic output in a specific accent you&amp;rsquo;ve trained. For turning a document into audio? The free version is fine.&lt;/p&gt;
&lt;h2 id=&#34;building-a-markdown-to-mp3-pipeline&#34;&gt;Building a Markdown-to-MP3 pipeline&lt;/h2&gt;
&lt;p&gt;The macOS speech engine alone is useful but limited. For document narration - turning a 2,000-word research note or blog post into an MP3 - you need to handle three things the basic approach ignores.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Strip the Markdown.&lt;/strong&gt; Bold markers, image syntax, link URLs and code blocks all get spoken verbatim otherwise. The right preprocessing step removes formatting tags, keeps the display text from links, drops images entirely and strips YAML frontmatter before the voice ever sees the text.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add structural pauses.&lt;/strong&gt; A sentence break inside a paragraph sounds different to the end of a section. I use 600ms of silence between paragraphs, 1000ms after H2 and H3 headers and 1500ms after H1 headers. These are configurable. Without them, the output sounds like a single unbroken stream regardless of how the document is structured.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Normalise the audio before concatenating.&lt;/strong&gt; Premium Neural voices output at a higher sample rate than the silence clips you generate. Skip the normalisation step and you get audible glitches at every segment join. Convert everything to a consistent format first, then concatenate.&lt;/p&gt;
&lt;p&gt;The pipeline is straightforward once those three things are solved. Split the document into segments at headers and blank lines. Generate speech for each segment. Insert silence between them. Combine everything and encode to MP3 using &lt;a href=&#34;https://ffmpeg.org&#34;&gt;ffmpeg&lt;/a&gt;, which is free and open source.&lt;/p&gt;
&lt;p&gt;The whole thing generates at roughly 12% of real-time - a 10-minute read takes about 70 seconds to produce.&lt;/p&gt;
&lt;h2 id=&#34;what-i-built-on-top-of-this&#34;&gt;What I built on top of this&lt;/h2&gt;
&lt;p&gt;I integrated this into my personal dashboard as a page that accepts pasted text or a dropped &lt;code&gt;.md&lt;/code&gt; file. Eight voices are listed with accent, tier (Premium / Enhanced / Standard) and a preview button per voice so you can hear the accent before committing to a 10-minute generation run.&lt;/p&gt;
&lt;p&gt;Total ongoing cost: zero.&lt;/p&gt;
&lt;p&gt;If you want to build the same thing, here&amp;rsquo;s the prompt to give Claude:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Build me a local web dashboard page for converting text and Markdown files to MP3 using macOS&amp;rsquo;s built-in text-to-speech. It should accept pasted text or a dropped .md or .txt file. Before speaking, strip all Markdown formatting - YAML frontmatter, code blocks, bold and italic markers, converting link text to plain text and dropping images entirely. Split the document at headers and paragraph breaks and insert silence between segments, with longer pauses after major headers than between paragraphs - make the durations adjustable. Show a voice panel listing non-American English macOS voices (Lee (Premium), Matilda (Premium), Jamie (Premium), Moira (Enhanced), Karen, Daniel, Moira, Tessa) with accent, tier and a per-voice preview button. Generate an MP3 and offer it for download. The backend is a Bun server that shells out to the macOS say command for speech and ffmpeg for audio normalisation, silence generation and MP3 encoding. POST /tts/generate accepts JSON with the text, voice name and pause durations and returns audio/mpeg. GET /tts/preview?voice=&amp;hellip; returns a short cached sample. Assume Apple Silicon Mac, Bun runtime, ffmpeg installed via Homebrew.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That prompt, pasted into Claude with a connected working folder, gets you a working version in one session.&lt;/p&gt;
&lt;h2 id=&#34;what-it-wont-do&#34;&gt;What it won&amp;rsquo;t do&lt;/h2&gt;
&lt;p&gt;Be clear-eyed about the limits. macOS Premium voices can&amp;rsquo;t clone a specific voice, can&amp;rsquo;t do expressive emotional ranges and can&amp;rsquo;t produce the hyper-realistic output ElevenLabs&#39; top tier achieves. If you need those things, pay for them.&lt;/p&gt;
&lt;p&gt;What you don&amp;rsquo;t need to pay for is basic high-quality narration of your own documents. That&amp;rsquo;s already on your machine. It&amp;rsquo;s been there for years. Set it up once, run it locally and stop subscribing to things you don&amp;rsquo;t need.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Sources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://elevenlabs.io/pricing&#34;&gt;ElevenLabs pricing&lt;/a&gt; - ElevenLabs&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://support.apple.com/en-au/guide/mac-help/mh27502/mac&#34;&gt;macOS Read &amp;amp; Speak — Apple Support&lt;/a&gt; - Apple Support&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://ffmpeg.org&#34;&gt;ffmpeg&lt;/a&gt; - FFmpeg Project&lt;/li&gt;
&lt;/ul&gt;</description>
    </item>
    
  </channel>
</rss>
