Roblox text to speech: voice lines for your NPCs
A voiced guide in a tutorial, a shopkeeper who greets players, a narrator in a story game: voices make a Roblox experience feel alive. Recording an actor for every line is slow, and Roblox only accepts audio you have the rights to.
The free SuperClonica engine voices lines offline on an ordinary processor, in 31 languages, with voices you can legally use. This guide shows how to make the files, upload them within Roblox’s limits and play them in your game, and when Roblox’s own text-to-speech is the better tool.
Two ways to give an NPC a voice
Use pre-voiced lines for the story and the characters, and run-time speech for text that changes, like player names.
- Pre-voiced audio assets: you voice each line, upload it once and play it by its asset ID. Same sound for every player, any of 31 languages.
- Roblox’s own AudioTextToSpeech: speaks text at run time with Roblox’s preset voices and request limits; check its current voices and languages in the Creator Hub.
- Uploaded audio must pass Roblox moderation, and you must have the legal rights to it.
- SuperClonica does not speak Chinese yet.
Pick a voice free online
On the page of any voice, type a line of your NPC, 30 to 100 characters, choose the language and press Voice it. In a few seconds you hear whether the voice fits the guard, the merchant or the narrator, with no account.
Make and upload the voice lines
Import the files in Studio’s Asset Manager or on the Creator Hub, and keep a table of line, file and asset ID.
- Install the engine on your computer: python -m pip install superclonica-cpu.
- Voice each line with one command: superclonica --text "Halt! Only knights may enter the castle." --voice M2 --lang en --normalize --output guard_01.mp3. --normalize keeps every line at the same loudness.
- Roblox accepts MP3, OGG, WAV and FLAC files under 20 MB and 7 minutes, with a sample rate up to 48 kHz; the engine writes 44.1 kHz.
- Per Roblox’s documentation, an ID-verified account can import 2,000 free audio assets per 30 days, an unverified one 100.
Play a line in your game
The classic Sound object plays an uploaded line: local s = Instance.new("Sound"); s.SoundId = "rbxassetid://YOUR_ID"; s.Parent = workspace; s:Play(). Parent the Sound to a part of the NPC instead of workspace, and players hear the line from where the character stands. Trigger it from a ProximityPrompt, a dialog choice or a quest step.
Voices you are allowed to upload
Roblox requires the legal rights to every audio asset you upload, so fan-made character voices from the catalog do not belong in a Roblox game. Use the ten stock voices of the model, M1 to M5 and F1 to F5, which are free under the model license, your own voice trained in the SuperClonica studio from a recording of a speaker who agreed, or a custom voice ordered on the exchange.