[Full Release] Speech-to-Text API


[Update] May 11, 2026


Hi Creators,

We’re excited to announce the full release of our Speech-to-Text API! Since our beta release, we have added Extended Services support to enable you to purchase more usage and API improvements for better reliability.

The AudioSpeechToText API unlocks new capabilities such as voice-controlled game mechanics, accessibility features, and dynamic conversations with NPCs. Learn more about how to use the Speech-to-Text API in our initial DevForum post, or check out our guide docs and API docs. on Creator Hub. We’re excited to see the creative ways you’ll use the Speech-to-Text API in your experiences!

Extended Services Support :new_button:

Extended Services is an option for those with unique needs to purchase additional services. With Extended Services now supporting Speech-to-Text, you can purchase additional audio length and request rate.. You can learn more about eligibility requirements and how to set this up in our docs. Specific pricing details can be found here.

As a reminder, you can view your API usage via our observability dashboards in Creator Hub.

API Improvements :red_exclamation_mark:

We’ve made two key improvements to the API for better stability and quality:

  • We resolved an issue that caused Speech-to-Text to behave inconsistently if the AudioSpeechToText instance was created via the Explorer window. Now, the API should work properly regardless of how AudioSpeechToText is created.
  • We’ve improved echo cancellation for the audio input system. This means the microphone is less likely to pick up audio from a user’s speaker, making speech recognition more accurate. There should be fewer issues with the API detecting a voice/speech where there is none and incorrectly attempting to transcribe it. This is already live on most platforms and will be available on Windows and iOS soon.
    • However, for the best user experience, we do still recommend that you implement push-to-talk mechanisms and/or encourage players to use headphones.

What’s Next :speech_balloon:

We’re continuously working to reduce latency to make the API faster and suitable for any use case. Additionally, we plan to support additional languages beyond English so that international players can better use this feature.

We’d love to hear about how you plan to use Speech-to-Text and see what you create! Please share your feedback and experiences in the comments below. Thank you!


FAQ :red_question_mark:

Read our FAQs:

Is there any cost, request rate or asset quota limitations?

  • The API baseline utilization will be free. However, we have rate limits in place to optimize for game dialogue that also prevents system abuse as follows:
    • Audio Length Limits: A maximum of 10 seconds of audio per request.
    • Request Rate Limits: We have enabled dynamic scaling based on your experience’s concurrent users using this formula: maximum requests per minute = 1 + (5 × number of concurrent users). This means that an experience with 10,000 concurrent users would be able to have 50,001 max requests per minute. We hope this supports your use cases and makes the feature easier to integrate in your experiences.
  • Speech-to-Text is integrated with extended services so that you can purchase additional service resources if needed.

What is the expected latency for this API?

  • From our testing, most text should take less than 500 milliseconds to generate once audio input is complete. However, it may take more time depending on the length of the audio and the speed of the user’s network connection. We are working on reducing the latency to make the API faster and suitable for any use case.

What data is used for voice training?

  • The Speech-to-Text API is trained on publicly available, open-source datasets to ensure high-quality text generation. We follow responsible data practices to align with our safety standards.

Will this work in all experience content ratings?

  • The Speech-to-Text API is available for experiences of all content maturity levels. However, users must be 13+ and verified to grant Roblox access to their microphone. Verification requirements vary by region—users in specific countries can use phone number verification, while others must use ID verification. You can learn more here about the full list of supported countries and verification requirements. If your use case involves capturing voice audio from users, keep in mind that the API will not work if the user hasn’t completed the required verification for their region.

How does the Speech-to-Text API work with Voice Chat?

  • Setting up your experience: To use Speech-to-Text to capture speech from players, you will need to enable the microphone for your experience (Studio > File > Game Settings > Communication > Enable Microphone). By default, this action will enable Voice Chat in your experience. If you’d like players to use Speech-to-Text without broadcasting their voice to other players, you can disconnect the player’s AudioDeviceInput from their AudioEmitter, or you can disable the EnableDefaultVoice property in VoiceChatService. The UseAudioApi property should still be enabled.
  • Player controls: In microphone-enabled experiences, players have a mic toggle in the top left corner of the screen. This icon controls their mute state for both Speech-to-Text and Voice Chat, if they are being used in the experience.
62 Likes

This topic was automatically opened after 10 minutes.

Thanks for this update Roblox! This is interesting and cool! How long did it take to make? I rate it a 9.7/10! This is interesting and cool! Good j*b, Roblox Corporation! I’ll finally convert text into voices!!

6 Likes

Can’t wait to see this being combined with LLMs. An example could be a player speaking out a wish, and an LLM picking it up and for example create a part or in-game effect.

However one concern with speech to text APIs is privacy. How will the players be protected from malicious experiences that may try to log what they say? What if a player speaks out private information?

3 Likes

I wish the rate limit had been buffed from the beta. I had a demo video set up during the beta based on a “legally distinct Sci-Fi roleplay game”, and that took a bunch of goes and cutting parts of the script because of the rate limit. One action per 12 seconds per player doesn’t sound too bad, until a player is talking to their friend and they blow past this limit just by having a conversation. It honestly makes me scared to consider paying for extended services when my monthly costs are correlated to how social are the players.

7 Likes

I’ve actually used this for my teams Developer Challenge submission and I’ll be honest, it’s a life saver for both being able to support better accessibility and for better immersion. Good job!

The game I’ve used this in: Anomaly Contact - Roblox

5 Likes

Does this mean self-addressed age or verified age? I would probably say more but my care for the platform is currently evaporating

1 Like

About this, push-to-talk doesn’t mute your microphone for Roblox meaning the AI can hear it and take action on me saying some not so friendly things.

Will push-to-talk prevent that from happening? That would help a lot based off of how many times I set off Auto-Mod.

1 Like

When are we going to get Extended Service for Audio uploads?

been asking this for 4 years

2 Likes

I use it in my game to immerse the players even more into the gameplay, acting like a real officer!

The only downside is that we can’t make the API recognize/biased toward specific keywords. In my game we have to manually change similar sounding words/detections to actual commands, for example:

Example
local function AdjustVoiceCommandInput(TranscribedText: string): string
    if StringUtils:StartsWithInsensitive(TranscribedText, "s.f.l") then
        TranscribedText = "SFL"
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "alt") then
        TranscribedText = "Halt"
    elseif
        StringUtils:StartsWithInsensitive(TranscribedText, "riddled")
        or StringUtils:StartsWithInsensitive(TranscribedText, "redoed")
        or StringUtils:StartsWithInsensitive(TranscribedText, "Re-Load")
    then
        TranscribedText = "Reload"
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "a row") then
        TranscribedText = "Arrow"
    elseif StringUtils:ContainsInsensitive(TranscribedText, "farm") then
        TranscribedText = string.gsub(TranscribedText, "farm", "Form")
    elseif StringUtils:ContainsInsensitive(TranscribedText, "from") then
        TranscribedText = string.gsub(TranscribedText, "from", "Form")
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "peace") or StringUtils:StartsWithInsensitive(TranscribedText, "please") then
        TranscribedText = "Face"
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "church") then
        TranscribedText = "Charge"
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "ceasefire") then
        TranscribedText = "Cease Fire"
    elseif StringUtils:StartsWithInsensitive(TranscribedText, "prepare a ripple") then
        TranscribedText = "Prepare ripple"
    end

    return TranscribedText
end

Being able to give the API weighted words would improve player’s usage of STT while reducing the load on your side since players won’t have to repeat over and over until its properly recognized

1 Like

I don’t think that phone verification has any way to verify age, so if you verify a phone number and are allegedly 13+ then i think you can use it, which is similar to voice chat requirements iirc

1 Like

I want to use Extended Services for this API but can’t due to Extended Services not being available in Canada, any chance this can be looked into :downcast_face_with_sweat:

3 Likes

am i crazy? i had a text to speech gamae using this like a month ago, it worked, it suddenly broke, thanks roblox

3 Likes

Thank you for censoring the word for empl*yment

5 Likes

LLMService Coming Soon To A Roblox Next To You…
I’ve been waiting for this for a while now, I can finally use voice to control my stuff rather than having to map it into 50 different keybinds, thanks!

2 Likes

7 Likes

xXProJohnyGamer9000Xx playing a game with speech to text functionality and having one of the greatest, clearest, most audible, most high quality microphone ever

1 Like

Is a microphone required for this to work? The documentation states that it needs “a physical hardware device like a microphone to capture the audio input.”

In Studio, it can also be connected to an AudioPlayer, and that setup works. However, when I test it in a live server, it doesn’t work anymore.

1 Like

well, this is speech to text, not speech synthesis (TTS).
however I agree there really shouldnt be a limit if they did this correctly.
Client Side → Basic Speech Recognition → Send Result
I’ve done this in unity for mods where I wanted voice activated things.

1 Like

Been experimenting with this in my new game The Diner! So far I’ve used speech-to-text in the onboarding tutorial, customer orders, an AI manager, and occasional voice lines that comment on player progression during gameplay. I’m exploring how voice can make the game feel more personal. :blush:

Game: The Diner | Play on Roblox

Let me know if you have any feedback.