Hi Creators,
At our recent Roblox Developers Conference (RDC), we showcased demos of new text and voice features that help creators harness the power of natural language to speak, respond and connect with users, while always applying the highest safety standards. We’ve released a series of natural-language APIs to help creators innovate and reach new levels of immersion and storytelling.
Today, we’re excited to launch the Speech-to-Text API Beta with new observability dashboards to enable you to convert voice and other types of audio into text and monitor its use. With our Speech-to-Text API, you can:
- Implement voice-controlled game mechanics — Enable players to use voice commands to control gameplay such as casting spells to deal damage.
- Build accessibility features for your experience — Add subtitles to spoken audio you might have playing in your experience.
- Enable dynamic conversations with NPCs — Allow players to talk back and forth with NPCs using voice. When combined with the Text Generation and Text-to-Speech APIs, you can create fully voice-driven NPC interactions with dynamically generated responses.
We can’t wait to see how you use the Speech-to-Text API to start building more engaging, immersive experiences!
How to use the Speech-to-Text API
The Speech-to-Text API is called AudioSpeechToText. You can access the full API documentation in Creator Hub here.
To get started:
- Enable microphone usage in your experience by opening it in Studio and going to File > Game Settings > Communication > Enable Microphone.
- By default, enabling the microphone will enable Voice Chat for 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
AudioDeviceInputfrom theirAudioEmitter, or you can disable theEnableDefaultVoiceproperty inVoiceChatService. - Make sure that the
UseAudioApiis enabled inVoiceChatService.
- By default, enabling the microphone will enable Voice Chat for 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
- For optimal accuracy, we recommend users wear headphones. In this initial release, the microphone may pick up audio from speakers, which can affect speech recognition. Reducing background audio in your experience can improve speech recognition accuracy. (Note: Echo cancellation improvements are planned for a future release)
- Integrate the API into your script and pass in audio captured from the microphone (or any other type of audio). You can view some code samples in our tutorial.
- The API will return a text transcript of the audio.
For more information, visit our Speech-to-Text API guide.
Note: Even if you’ve enabled Speech-to-Text in your experience, only users that have allowed mic access will be able to use this feature.
We thought it would be helpful to create an example to show how everything could work together. The demo below shows a simple experience where you can see how to call the Speech-to-Text API — the user is saying commands, and the command is triggering attacks against the monster NPC.
Observability Dashboards
We’ve added Speech-to-Text observability dashboards on Creator Hub so that you can monitor API usage, troubleshoot issues faster, and make informed decisions about scaling. You can find this by opening your experience on Creator Hub and going to Monitoring > Speech-to-Text in the navigation menu on the left.
The first dashboard will show you how many requests your experience is sending. The top line shows the max number of requests you can send based on the number of concurrent users in your experience.
The second dashboard will show you the response and error rates of Speech-to-Text API calls, broken down by response status code.
Note: You can adjust the date range and time intervals for the data at the top of the page.
Built-in Safety
We provide Speech-to-Text language capabilities with safety at the forefront. All generated text is passed through text filters to check for compliance with our Community Standards. Our safety tools help surface policy violations quickly and help determine what is safe and appropriate to publish in an experience.
What’s Next
This Speech-to-Text Beta launch is just the beginning! We’re working on:
- Better echo cancellation so Speech-to-Text works well even if players are not using headphones.
- Support for additional languages beyond English.
- Integrating with Roblox Extended Services, so that you can pay for more usage if the free limit isn’t enough for your experience.
- Reducing latency to make the API faster and suitable for any use case.
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.
FAQ
Is there any cost, request rate or asset quota limitations?
- The API baseline utilization will be free at the beta launch. 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.
- These limits help ensure system stability and fair usage across all users. In the future, rate limits may be further adjusted based on system performance and user feedback. Additionally, we plan to integrate Speech-to-Text with our extended services system next year so that you can purchase additional service usage 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 labels. 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
AudioDeviceInputfrom theirAudioEmitter, or you can disable theEnableDefaultVoiceproperty inVoiceChatService. TheUseAudioApiproperty 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.
Can I implement any voice command in my experience using Speech-to-Text?
- Yes. Currently, there are no restrictions on which keywords you can use to trigger voice commands, as long as they comply with Roblox’s Community Standards. In the future, if Roblox introduces voice assistant features with reserved wake words (like “Hey Roblox”), we’ll notify developers in advance to avoid conflicts.

