Excel text to speech: from Speak Cells to audio files
Excel can read cells aloud with Speak Cells, which is handy for checking a column of numbers by ear. It speaks with the system voice and never saves audio. When the spreadsheet is a list of lines to voice, such as product names, vocabulary, store announcements or game dialogue, you need files.
SuperClonica gives you natural voices in 31 languages, free to try online, and a free engine that turns every row of a sheet into its own MP3 on your computer. This guide covers both: Excel’s own reading tools, and the way from a sheet to a folder of audio files.
What Excel can read aloud
For checking data that is enough; for audio other people will hear, make files with a natural voice.
- Speak Cells reads a selected range aloud; add it and Stop Speaking to the Quick Access Toolbar from the list of all commands.
- Speak On Enter reads back each entry as you type, useful for checking data entry.
- In VBA, Application.Speech.Speak "Hello" speaks a text with the system voice.
- None of them saves an audio file, and the voice is whatever your system has installed.
Pick a voice free online
On the page of any voice, paste a line from your sheet, 30 to 100 characters, choose the language and press Voice it. Pick the voice before you voice the whole sheet.
From a sheet to audio files
Excel’s CSV UTF-8 starts with a byte-order mark; reading the file as utf-8-sig, as above, keeps the first column name clean, otherwise the script cannot find the id column.
- Put a file name in column A and the text in column B, with the header row id, text.
- Save the sheet as CSV UTF-8 (comma delimited).
- Install the free engine: python -m pip install superclonica-cpu.
- Voice every row into its own file: import csv; from superclonica import Superclonica; tts = Superclonica(); [tts.save(row['id'] + '.mp3', tts.synthesize(row['text'], 'F2', 'en', normalize=True)[0]) for row in csv.DictReader(open('lines.csv', encoding='utf-8-sig'))].
Numbers, prices and percent
Write numbers the way they should be read. A thousands separator confuses the engine: 1,250 is read as “one point two five”, so write 1250 or the number in words. Signs such as $ and % are skipped, so write “dollars” and “percent”. A formula column helps: ="Order " & A2 & " is ready" builds the sentence for each row, and you voice that column. Every file comes out at the same loudness, −18 LUFS.
Voices you can publish
For store announcements, course materials or product videos, use the ten stock voices of the model, M1 to M5 and F1 to F5, free under the OpenRAIL-M license, or your own voice trained in the SuperClonica studio. Fan-made character voices in the catalog are for fan projects, not for business audio.