Skip to content

Comparison

Edge TTS vs Local TTS on Mac: Which Should You Use

Edge TTS is free but online and unofficial. Compare it with local TTS on a Mac: privacy, offline use, voice cloning, licensing, and when each one wins.

Murmur11 min read

Free plan with Kokoro voices, scripts up to 1,500 characters · 3-day Pro trial, then $49 once

Direct answer: Edge TTS is a free, community-built Python client that sends your text to Microsoft Edge's online read-aloud service and returns an MP3 plus an SRT subtitle file from a large catalog of Microsoft neural voices. It needs an internet connection, sends your text to Microsoft, and is not a Microsoft product or a licensed API, so it can change or break without notice. Local text to speech on a Mac runs the model on your own machine, so there is no per-character fee, no upload, and no internet requirement, which changes the answer for private, offline, or heavily revised work. Edge TTS wins on setup speed and voice variety; a local studio wins on control, privacy, voice cloning, and long projects.

Disclosure: we make Murmur, a one-time Mac app that generates speech locally, so we compete with cloud text to speech in some workflows. Every Edge TTS detail below is tied to the project's own repository and PyPI page or to Microsoft's documentation, all listed in the sources. Because Edge TTS is an unofficial client, confirm its current behavior and Microsoft's terms yourself before you ship audio built with it.

What Edge TTS actually is

Edge TTS is the popular shorthand for the edge-tts project on GitHub, a Python module described on its own page as a way to use Microsoft Edge's online text-to-speech service from Python without needing Edge, Windows, or an API key. You install it with pip or pipx and then run either the edge-tts command or the module inside your own code. It requires Python 3.7 or later and runs on any operating system Python supports, macOS included. The important word in that description is online: the audio is generated on Microsoft's servers and streamed back to your Mac, so the library is a client for a cloud service, not an offline engine.

The whole workflow is a short command. A few examples from the project's own documentation:

  • edge-tts --list-voices prints every voice the service currently offers.
  • edge-tts --text "Hello, world!" --write-media hello.mp3 --write-subtitles hello.srt generates an MP3 and a matching subtitle file.
  • edge-tts --voice en-US-AriaNeural --rate=-10% --pitch=-5Hz reads with a chosen voice and adjusted rate or pitch.

The command-line surface is small on purpose: a voice flag, plus rate, volume, and pitch, plus options to write media, write subtitles, and list voices. That is enough to read text aloud or to script a batch, and it is a very low barrier to getting your first MP3 out of a Mac.

What Edge TTS does well

Edge TTS is genuinely useful, and a few of its advantages are hard to beat at the entry level. It is free, it needs no API key or Microsoft account, and it installs in one command on a Mac that already has Python. The voice list is large and covers many locales with Microsoft neural voices, so you can audition a dozen languages or accents in an afternoon without paying or signing in. Each run can produce both the audio and a timed subtitle file, which is convenient for captions or a quick preview. For personal listening, throwaway prototypes, or a script you only need once, that combination is hard to argue with.

  • Free, with no API key and no account, using an already-installed Python.
  • One command writes both an MP3 and an SRT subtitle file.
  • A large Microsoft neural voice catalog across many locales, listed by --list-voices.
  • Runs on macOS through any Python 3.7 or later environment.
  • A small, scriptable command surface that fits automation and batch reading.

Where Edge TTS runs into limits

The limits show up the moment the work stops being casual. Everything passes through Microsoft's servers, so your text leaves your Mac and you need a working connection every time you generate. The project's own README says custom SSML support was removed because the service only permits a single voice tag with a single prosody tag inside it, which means pronunciation overrides, multi-voice documents, and fine-grained markup are off the table. What remains is rate, volume, and pitch, applied to one voice at a time. There is also no voice cloning and no voice-design feature; you choose from the voices Microsoft already provides.

  • Cloud only: text is sent to Microsoft and an internet connection is required for every generation.
  • Unofficial: it is a community client of the Edge read-aloud service, with no SLA or support contract.
  • No custom SSML: only one voice tag with one prosody tag, so pronunciation and multi-voice scripts are constrained.
  • No voice cloning or voice design, only the voices Microsoft already offers.
  • Dependent on Python and a network call, which makes a large batch a scripting exercise rather than a button.
  • Fragile by design: if Microsoft changes the service, the client can stop working until the project catches up.

Two practical questions get overlooked. First, licensing: the edge-tts package is published on PyPI under the GNU Lesser General Public License v3, and the repository also ships a GPL text file, so read both the license and Microsoft's terms for the read-aloud service before you embed the library in a product or sell the output. Second, stability: because this is not a supported Microsoft API, there is no quota, no uptime commitment, and no one to call when a request fails. For a personal read-aloud that is fine. For client work with a deadline, it is a risk you are taking on yourself.

What local TTS on a Mac changes

A local engine inverts almost every one of those points. The model runs on your Apple Silicon Mac after a one-time setup, so generation needs no internet, your text never leaves the machine, and there is no per-character charge or monthly meter to hit. That makes revisions cheap: you can regenerate a paragraph ten times because a name is pronounced wrong and pay nothing extra. It also opens features a cloud read-aloud service simply does not offer, such as cloning a voice from a short sample, designing a voice from a description, and managing a multi-speaker project with a voice library and file export.

FactorEdge TTS (community client)Local TTS on a Mac
Where it runsMicrosoft cloudYour Apple Silicon Mac
InternetRequired for every generationNot required after setup
CostFree, no API keyOne-time purchase
Text privacyText is sent to MicrosoftText stays on the device
VoicesLarge Microsoft neural catalogModels you install, plus bundled voices
Voice cloningNot availableAvailable on cloning-capable models
Voice designNot availableAvailable on a voice-design model
ControlRate, volume, pitch, no custom SSMLModel settings and multi-speaker projects
PlatformsAny OS with Python 3.7 or latermacOS 15 or later, Apple Silicon
SupportCommunity project, no SLAVendor app

Cost deserves an honest note. Edge TTS is free, so if your only goal is the cheapest possible MP3 next week, it wins outright and this is not a price argument. The reason to run a local engine is not the sticker price; it is what you give up to get free cloud audio: offline access, privacy, a stable pipeline, cloning, and the freedom to iterate without a network call in the loop.

A worked example: a two hour narration you will revise

Say you are producing roughly two hours of narration for a video or a short audiobook, which is about 18,000 spoken words. With Edge TTS you write a small Python loop that splits the script into chunks, calls the library for each chunk, and concatenates the MP3s, then you keep the SRT files if you want captions. The run is free and the voice quality is solid. When a sentence changes, you regenerate that chunk through the network and stitch it back in. Nothing here is broken; it is just a network dependency and a script you maintain, and your text travels to Microsoft each time. The two hour YouTube narration cost breakdown walks through the same length from the cloud side.

With a local studio the same job is import, choose a voice, generate, revise, export. There is no per-character fee and no connection, so the tenth pass over chapter three is as cheap as the first, and the export is a WAV or M4A file you already own. The cost is setup effort and hardware: you install models, and the more capable ones need at least 16 GB of unified memory. If you do not want to touch Python at all, the no-Python local TTS on Mac guide covers the app route, and the best local TTS models of 2026 comparison is the place to match a model to your memory.

When Edge TTS is the right choice

Stay with Edge TTS when its strengths are the ones you actually need, and skip the local setup for now.

  • You want a free, fast read-aloud or MP3 with subtitles and you are comfortable with pip.
  • You only need a wide spread of Microsoft voice locales to audition or prototype.
  • The text is not sensitive, or you have already settled the data and licensing questions.
  • You do not need cloning, voice design, or multi-speaker project management.
  • You are fine depending on a community client and a live internet connection.

When a local Mac studio is the better fit

If you produce finished audio rather than test clips, and you own an Apple Silicon Mac, a local studio is usually the calmer tool. Murmur is a $49 one-time voice studio for Macs running macOS 15 or later, with a free plan and a 3-day Pro trial, and a 7-day refund policy. Because generation happens on your machine, there is no per-character fee and no upload, so retakes cost nothing and private scripts never leave the device. Murmur bundles Kokoro and can install others, including Chatterbox Turbo and Chatterbox Multilingual, Qwen3-TTS Base, Voice Design, SparkTTS, Breeze TTS 2, Fish Audio S2 Pro, and OmniVoice; several of those clone a voice from a short reference sample, and the app is built around a voice library, multi-speaker projects, and WAV or M4A export. The in-app model list is the source of truth for what your machine supports.

The trade is real and worth stating plainly. Murmur is Mac only, so it cannot replace Edge TTS or Azure on Windows, Linux, or a browser tool. It has no hosted API, it does not do speech to text, and it is not built for live or real-time streaming. If you need a voice from a server, a web page, or a real-time agent, a cloud service is the correct choice and a desktop app is the wrong one. For long-form narration on a Mac, though, the offline and retake-free model is the whole point; the offline text to speech for private documents guide and the why I stopped paying for cloud TTS write-up cover the reasoning from a creator's side.

A quick decision checklist

  1. Ask where the audio will be used: a personal read-aloud favors Edge TTS, a shipped product favors a tool you control.
  2. Decide whether the text is sensitive. If it must not leave your Mac, rule out any cloud path, including Edge TTS.
  3. Check offline needs. If you generate on a plane, on location, or on a flaky connection, choose local.
  4. List the features you need. Voice cloning, voice design, or multi-speaker projects mean a local model, not Edge TTS.
  5. Read the licenses. The edge-tts package and Microsoft's read-aloud terms both apply when you ship output, and a local app's own license applies instead.
  6. Count revisions. If you will regenerate often, the retake-free local workflow is simpler even when the cloud option is free.
  7. Confirm your hardware. Non-Kokoro local models want at least 16 GB of unified memory on an Apple Silicon Mac.

Frequently asked questions

Sources

Make long narration locally on your Mac

Murmur is a $49 one-time voice studio for Apple Silicon Macs running macOS 15 or later: local generation, a voice library, voice cloning from a short sample, Voice Design, multi-speaker projects, and WAV or M4A export. Free plan and 3-day Pro trial, a 7-day refund policy, and no per-character billing, so revisions cost nothing. Listen to the public samples before you buy.

macOS 15+ · Apple Silicon required · 7-day refund policy