Skip to content

Tutorial

Text to Audio on Mac: Save It as a File

Save text as an audio file on a Mac with the built-in say command, convert formats with afconvert, and switch to a local AI voice for finished narration.

Murmur8 min read

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

Direct answer: to save text as an audio file on a Mac, use the built-in say command in Terminal. It writes an AIFF file by default, and it can also write WAVE or M4A, so you end up with a file you can keep, edit, or send. If a destination needs a different container or codec, convert that master with afconvert, which also ships with macOS. When the flat system voice is not good enough, generate the speech in a local text to speech app such as Murmur and export a WAV or M4A file instead.

The confusion most people hit is that macOS has two different things that both look like text to speech. One reads text aloud to you and stops when the sound ends. The other writes an audio file to disk. Saving text as audio on a Mac means using the second one, not trying to make the first one behave like it.

Reading aloud on a Mac does not create a file

Apple's guide to having your Mac speak text that is on the screen describes the Read and Speak controls. You turn on Speak selection in System Settings, then press the keyboard shortcut (Option Esc by default) to hear the selected text, and many apps also offer Edit > Speech > Start Speaking. That is playback. The onscreen controller Apple describes changes the speaking rate, moves forward or back, pauses, and stops, but it does not offer a save. If hearing a document is all you need, that route is enough, and the Mac text to speech shortcut guide covers it.

To keep the audio, you move to the command line tool or to an app. That is the point where the real question, how do I save text as an audio file, gets a real answer.

Save text to an audio file with the say command

say has shipped with macOS for years and needs no installation. The say manual page says the tool converts input text to audible speech and saves it to an AIFF file, and that later macOS versions can write other formats such as WAVE, caff, and m4af. The same page lists the options that matter for a saved file: --file-format, --data-format, --channels, and --bit-rate for AAC.

  1. Write the script into a plain text file, for example narration.txt, with a blank line between paragraphs.
  2. Open Terminal (Applications > Utilities > Terminal) and move to the folder that holds the file.
  3. Generate the default AIFF master: say -f narration.txt -o narration.aiff
  4. Or write a WAVE master that opens in almost any editor: say -f narration.txt -o narration.wav --file-format=WAVE
  5. Or write a smaller AAC file: say -f narration.txt -o narration.m4a --file-format=m4af --data-format=aac --bit-rate=128000
  6. Pick a voice with -v and a speed with -r (words per minute). Run say -v '?' to list the installed voices.
  7. Play the result with afplay narration.aiff and listen through the last sentence.

Two limits are worth knowing up front. say uses the voices installed in System Settings, and those voices read in a flat, synthetic style, so it is a draft voice rather than a performance. The voices themselves are the same set Apple documents under Read and Speak, including downloadable and adjustable voices, so a more natural system voice is possible but still a system voice. And say does not write MP3; for that you encode the master afterward with a separate MP3 encoder.

Pick a format that matches where the audio goes

RouteWhat you getVoiceGood for
say (built-in)AIFF, WAVE, or M4A fileSystem voicesDrafts, timing passes, personal listening
say plus afconvertThe container or data format an app demandsSystem voicesMatching a format a tool will accept
A local AI voice appWAV or M4A from a chosen or cloned voiceBundled and downloadable local modelsPublished narration, multi-speaker projects, client work
A cloud TTS serviceA file from a vendor voiceVendor voicesWindows or mobile users, live streaming, cloud collaboration

The generator and the format are separate decisions. Keep the uncompressed AIFF or WAVE as your master, because you can always make a smaller copy from it but you cannot rebuild detail you threw away. Use M4A or AAC when you need a smaller file for a phone or a web page. The WAV, M4A, and MP3 export guide explains when to keep a lossless master and when to deliver a compressed copy.

macOS also includes afconvert, the Audio File Convert tool, for changing container and data formats. A conversion from the AIFF master to AAC looks like this: afconvert -f m4af -d aac -b 128000 narration.aiff narration.m4a. Note what the macOS manual page for afconvert points out: macOS and afconvert do not include an MP3 encoder, so an MP3 still needs a separate encoder such as LAME. That is a documentation limit of the built-in tools, not a reason to avoid them.

When the built-in voice is not enough

If the file is only for you, a timing pass, or a quick listen, the built-in voice is enough. If the file is going out under your name, the system voice usually is not. It cannot clone a specific person, it cannot design a voice from a written description, and it cannot hold several distinct speakers across one project.

Murmur is a local voice studio for Apple Silicon Macs running macOS 15 or later. It bundles Kokoro for basic narration and can download additional local models for voice cloning, voice design, and more languages, all running on your machine rather than in the cloud. It organizes scripts, speakers, takes, and a batch queue, and it exports WAV and M4A. The website edition is $49 one-time with a free plan and a 3-day Pro trial, and a 7-day refund policy, so listen to the public samples before buying. The Mac narration workflow walks through preparing a script for a voice, and the Kokoro on Mac guide explains the bundled engine.

Murmur is not the right choice for everyone, and it is worth saying so. It is Mac only and Apple Silicon only, it is not a live or real time speech service, it has no Windows, browser, or mobile app, and it does not do speech to text. If you need any of those, this local, file based approach is the wrong shape and a different tool will serve you better.

Turn a folder of text files into audio files

When a project has many scripts, doing this by hand invites skipped steps and mismatched names. A short shell loop handles a whole folder at once: for f in scripts/*.txt; do say -f $f -o ${f%.txt}.aiff; done. The syntax strips the .txt extension so every AIFF shares the name of its source text.

That loop reads each text file and writes an AIFF beside it. Before you trust it, count the files in and out, and listen to the first, middle, and last clip. A loop that fails on one file can leave a folder that looks complete but is quietly missing a chapter. A local app with a real queue tracks completion state and retries better than a shell loop, so a restart or one failed clip does not mean starting over. The local TTS automation and batch guide covers those reliability details, such as output manifests and idempotent runs.

What stays on your Mac

Both the built-in say command and a local app generate the audio on your machine. say needs no network connection, and Murmur runs its models locally, so your script is not uploaded to a server and there is no per character fee. A cloud text to speech service is the opposite: you paste the text into a form and the service returns a file, which means the text left your Mac and now lives on someone else's machine. If the source is a private document, a contract, or a medical note, that difference is the whole decision. The offline text to speech guide explains what stays local and what can still touch the network.

When this is the wrong workflow

This workflow is Mac specific and it produces a finished file, so it is the wrong shape in three cases. If you are on Windows, none of the built-in commands here apply. If you need speech generated live, inside a call, a game, or an agent, a batch to file pipeline is the wrong tool. And if your team collaborates in the cloud on shared projects, a single Mac pipeline adds friction rather than removing it. The best text to speech apps for Mac review compares the file based tools, and the one time app versus subscription guide covers the pricing tradeoff if you are weighing a one time purchase against a monthly service.

Frequently asked questions

Sources

Save text as an audio file with Murmur

Murmur is a local voice studio for Apple Silicon Macs running macOS 15 or later. Generate narration on your own machine with the bundled voice or a downloaded local model, then export the WAV or M4A file. The website edition is $49 one-time, with a free plan and a 3-day Pro trial, and a 7-day refund policy. Listen to the public samples before you buy.

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