Quotas and limits

This document lists the quotas and limits that apply to Speech-to-Text. For more information on quotas, see Virtual Private Cloud quotas.

A quota restricts how much of a shared Google Cloud resource your Google Cloud project can use, including hardware, software, and network components. Therefore, quotas are a part of a system that does the following:

  • Monitors your use or consumption of Google Cloud products and services.
  • Restricts your consumption of those resources, for reasons that include ensuring fairness and reducing spikes in usage.
  • Maintains configurations that automatically enforce prescribed restrictions.
  • Provides a means to request or make changes to the quota.

In most cases, when a quota is exceeded, the system immediately blocks access to the relevant Google resource, and the task that you're trying to perform fails. In most cases, quotas apply to each Google Cloud project and are shared across all applications and IP addresses that use that Google Cloud project.

To increase or decrease most quotas, use the Google Cloud console. For more information, see Request a higher quota.

There are also limits on Speech-to-Text resources. These limits are unrelated to the quota system. Limits cannot be changed unless otherwise stated.

This document contains the current API restrictions and usage limits for Cloud Speech-to-Text. This page will be updated to reflect any changes to these restrictions and usage limits. We reserve the right to change these limits.

Content Limits

Content to Speech-to-Text is provided as audio data, either directly within the content field of the request or referenced within a Google Cloud Storage URI in the uri field of the request. There is a limit of 10 MB on all single requests sent to the API using local files. In the case of the Recognize and LongRunningRecognize methods, this limit applies to the size of the request sent. In the case of the StreamingRecognize method, the 10 MB limit applies to both the initial StreamingRecognize request and the size of each individual message in the stream. Exceeding this limit will throw an error. There is no size limit on requests sent using audio data stored in a Google Cloud Storage bucket.

The API contains the following limits on the size of this content (and are subject to change).

Content Limit Audio Length
Synchronous Requests ~1 Minute
Asynchronous Requests ~480 Minutes*
Streaming Requests ~5 Minutes**

* Audio longer than ~1 minute must use the uri field to reference an audio file in Google Cloud Storage.
** If you need to stream content for more than 5 minutes, see the endless streaming tutorial.

For StreamingRecognize requests, audio must be sent at a rate that approximates real time.

Attempting to process content in excess of these content limits will produce an error. For more information, see Error messages and Troubleshooting.

Within any request, you may also supply a PhraseSet resource containing a list of phrases specific to the request. (A single word counts as a phrase in this context.) The following limits apply to such a context:

Speech Adaptation Limit Value
Phrases per request 5000
Total characters per request 100,000
Characters per phrase 100

Request Limits

The current API usage limits for Speech-to-Text are as follows (and are subject to change):

Type of Limit Usage Limit
Recognition Requests per 60 seconds* 900
Adaptation resource requests per 60 seconds* 10
Processing per day 480 hours of audio

* Each StreamingRecognize session is considered a single request even though it includes multiple frames of StreamingRecognizeRequest audio within the stream.

Requests and/or attempts at audio processing in excess of these limits will produce an error. For more information, see Error messages and Troubleshooting.

These limits apply to each Speech-to-Text developer project, and are shared across all applications and IP addresses using a given a developer project.