AudioHelper – Quick Text-to-Speech

AudioHelper is a small, easy-to-use module that provides the easiest way to make your Roblox parts or characters talk in-game using AudioTextToSpeech


Get AudioHelper

Features

  • Super simple to start – create a speech object in one line
  • Full control – change voice, speed, pitch, volume, playback speed, looping, and max distance
  • Audio effects – add Reverb, Echo, Chorus, Distortion, and more
  • Text bubbles – display a chat bubble above your parts or characters
  • Events – get notified when speech ends or loops
  • Getters – check what’s currently playing, the text, or the audio settings

Quick Start

local AudioHelper = require(game.ReplicatedStorage.AudioHelper)
local tts = AudioHelper:TextToSpeech("AudioDeviceOutput", workspace.Part)

tts:SetText("Hello")
tts:SetVoice(3)
tts:Play()
  • "AudioEmitter" plays audio in the 3D world.
  • "AudioDeviceOutput" plays directly on the player’s device.
  • Source (optional) is the object the audio attaches to

AudioHelper Functions

1. Creating a TextToSpeech object

local tts = AudioHelper:TextToSpeech("AudioDeviceOutput", workspace.Part)
  • TextToSpeech(Type, Source): creates a new speech object.

    • Type: "AudioEmitter" or "AudioDeviceOutput"
    • Source: object the audio is attached to (optional)

2. Playback

tts:Play()    -- start speaking
tts:Pause()   -- pause
tts:Stop()    -- stop

3. Text & Voice Settings

tts:SetText("Hello!")
tts:SetVoice(3)
tts:SetSpeed(1.2)
tts:SetPitch(0.9)
tts:SetVolume(0.8)
tts:SetPlaybackSpeed(1.1)
tts:SetLooping(true)
tts:SetMaxDistance(150)
  • SetText – set what will be spoken
  • SetVoice – choose voice 1–10
  • SetSpeed – adjust speech speed
  • SetPitch – change pitch
  • SetVolume – adjust volume
  • SetPlaybackSpeed – speed up/slow down playback
  • SetLooping – repeat the audio
  • SetMaxDistance – max distance sound can be heard (for AudioEmitter)

4. Audio Effects

tts:ApplyEffect("AudioReverb")
tts:ClearEffect()
  • ApplyEffect – add an effect like Reverb, Echo, Chorus
  • ClearEffect – remove the effect

5. Display Bubble

tts:DisplayBubble("Hello!", workspace.NPC)
  • Shows a chat-style bubble above the object.
  • Lets players see what’s being said visually.

6. Events

tts:Ended(function() print("Done!") end)
tts:Looped(function() print("Looped!") end)
  • Ended – runs when speech finishes
  • Looped – runs when looping speech repeats

7. Getters

tts:IsPlaying()
tts:GetText()
tts:GetVoice()
tts:GetVolume()
tts:GetPitch()
tts:GetPlaybackSpeed()
tts:GetSpeed()
tts:GetTimePosition()
tts:GetTimeLength()

6 Likes