FAQ about SpeechKit
General questions about
Can I get logs of my operations in Yandex Cloud?
Yes, you can request information about operations with your resources from Yandex Cloud logs. Do it by contacting support.
Where can I view API request statistics?
You can view the statistics in the management console under SpeechKit → Monitoring.
As you use the service, your balance automatically decreases. Learn more about paying for resource in Yandex Cloud.
How do I increase quotas? / What should I do if the "429 Too Many Requests" error occurs?
The 429 Too Many Requests error indicates that the quotas set for your folder have been exceeded. The default quota values are specified in this table.
To increase the quotas, contact support. In your request, specify the folder ID and the required quotas in "Name — Value" format.
What is the purpose of the folder ID (folderId)?
SpeechKit uses folderId for authorization (access permission verification) and payments for resources.
When sending a request under a service account, you do not need to specify folderId: by default, the account's home folder ID is used. If you specify a different folder, the service will return an error.
If logged in under a user account, you must specify folderId.
Depending on the API used, you should include the folder ID in the request header or body. For more information about authentication in SpeechKit, see Authentication in the SpeechKit API.
What should I do if I get the "401 Unauthorized" error?
If the SpeechKit server returns the 401 Unauthorized error in response to a request, check if your account has the required roles. In addition, check your authorization method and the key or token you are using for authorization: you may have obtained it for a different account than the one you are using for your request.
If using a service account, do not specify folder ID in your requests: SpeechKit uses the service account's home folder.
Under what conditions can I use SpeechKit performance results?
- We do not impose any restrictions on the use of SpeechKit performance results. You can use them at your discretion under the Russian law.
- Feel free to use the demo stand. Please note that certain restrictions apply.
- You can work with SpeechKit via the API or Playground web interface.
For terms of use, see the Yandex SpeechKit Terms of Use.
Speech recognition (STT)
Incorrect stress and pronunciation
Create a support ticket and attach examples so that developers can fine-tune the speech synthesis model for future releases.
Poor speech recognition quality at 8kHz
If the issue is systematic (tens of percent of the total number of speech recognition requests), submit a support ticket and attach examples for analysis. The more examples you send, the more likely the developers will discover the bug.
Feedback form on speech recognition quality
If you have any persistent issues, contact support and provide files and description.
Two channels were recognized as one. How to recognize each channel separately
You can recognize multi-channel audio files only using asynchronous recognition.
Check the format of your recording:
- For LPCM, set the config.specification.audioChannelCount parameter to 2.
- You can skip this parameter for MP3 and OggOpus, since such a file contains information about the number of channels. The file will be automatically split into the set number of recordings.
The recognized text in the response is separated by the channelTag parameter.
Is it possible to recognize two or more voices separated by speaker?
You can recognize multi-channel audio files only using asynchronous recognition.
During speech recognition, text is not split by voice, but you can place the voices in different channels and separate the recognized text in the response with the channelTag parameter.
You can specify the number of channels in your request using the config.specification.audioChannelCount parameter.
The file does not exceed the limit, but an error occurs during recognition
If your file is multi-channel, take into account the total recording time of all channels. For the full list of limitations, see Quotas and limits in SpeechKit.
Internal Server Error
Make sure the format you specified in the request matches the actual file format. If the error persists, send us examples of your audio files you fail to recognize.
Where can I find an example of microphone speech recognition?
Example of streaming recognition of microphone-recorded speech.
Can I use POST for streaming recognition?
Stream recognition uses the gRPC remote procedure call mechanism and is not supported in the REST API, so you cannot use the POST method.
A streaming recognition session is broken/terminated
When using the API v2 for streaming recognition, the service awaits audio data. If it does not receive any data within 5 seconds, the session is terminated. You cannot change this parameter in the API v2.
Streaming recognition runs in real time. You can send "silence" for recognition so that the service does not terminate the connection.
We recommend using the API v3 for streaming recognition. The API v3 features a special message type to send "silence", so you will not have to simulate it in your audio.
How does the service figure out the end of an utterance and the duration of a recognition session?
The end of an utterance is detected automatically by the "silence" following the utterance. For more information, see Detecting the end of a phrase.
The maximum session duration for streaming recognition is 5 minutes.
What should I do if SpeechKit does not listen to a conversation to the end or, conversely, it takes too long to wait until it ends?
Interruptions or delays during streaming recognition may occur due to detecting the end of utterance (EOU). For recommendations on setting up EOU, see Detecting the end of a phrase.
OutOfRange desc = Exceeded maximum allowed stream duration error
This error means that the maximum allowed duration of a recognition session has been exceeded. In this case, you need to reopen the session.
For streaming recognition, the maximum session duration is 5 minutes. This is a technical limitation due to the Yandex Cloud architecture. You cannot change it.
Use SA for s3 file recognition error
The use SA for s3 file recognition error occurs when attempting to recognize audio files from Object Storage without using a service account.
Create an API key. The service will automatically create a service account with roles for SpeechKit and an API key for it. Next, add to the new service account the storage.uploader role for the bucket you upload your audio files for recognition to.
What goes into the usage cost?
For examples of calculating the usage cost, pricing rules, and effective prices, see the SpeechKit pricing policy.
Speech synthesis TTS
How can I voice long texts?
To voice a large text, break it into parts in any way convenient for you. The maximum size of speech synthesis requests is limited to 5,000 characters.
How do I configure stress and pronunciation?
To edit the pronunciation of individual words and the text in general, use the SSML or TTS markup.
How do I add a pause in text?
To add a pause to your text, use the TTS markup. Specify the pause duration in milliseconds in parentheses. A pause will be added where you place the tag. For example: Start sil<[3000]> continue in 3 seconds. The maximum value is 7,000.
Note that the indicated pause is treated as a recommendation. SpeechKit is designed for natural speech synthesis.
A cURL request does not work in Windows PowerShell
In the Windows PowerShell terminal, the curl command is an alias for the Invoke-WebRequest system call.
The Yandex Cloud guides provide examples of API calls using the Bash shell syntax. You can run them as is in the Linux console, macOS terminal, or WSL in Windows 10 or higher. To run the examples in Windows PowerShell, you will have to modify them yourself. For more information on Bash and PowerShell command equivalents, as well as tips, see Working with the Yandex Cloud CLI and API in Microsoft Windows.
What goes into the cost of synthesis?
For examples of calculating the usage cost, pricing rules, and effective prices, see the SpeechKit pricing policy.