Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
  • Blog
  • Pricing
  • Documentation
Yandex project
© 2025 Yandex.Cloud LLC
Tutorials
    • All tutorials
      • Recognizing text in image archives in Vision OCR
      • Developing a Telegram bot for text and audio recognition
      • Regular asynchronous recognition of audio files from Object Storage

In this article:

  • Getting started
  • Create a cloud function
  • Create a trigger
  • Test the function
  1. Machine learning and artificial intelligence
  2. Image, text, and speech recognition
  3. Regular asynchronous recognition of audio files from Object Storage

Regular recognition of audio files from Yandex Object Storage

Written by
Yandex Cloud
Updated at May 7, 2025
  • Getting started
  • Create a cloud function
  • Create a trigger
  • Test the function

The SpeechKit asynchronous recognition API is integrated with Yandex Object Storage. Therefore, you can set up automatic recognition of audio files of supported formats that are regularly uploaded to an Object Storage bucket. A cloud function in Yandex Cloud Functions regularly checks the bucket for audio files and sends them to the SpeechKit API for recognition. The recognition result and status are saved to the same Object Storage bucket.

To set up automatic recognition of audio files using SpeechKit:

  1. Create a cloud function to read files from your Object Storage bucket, send them to the API, and check the file recognition status.
  2. Create a trigger to regularly invoke your cloud function.
  3. Test the function.

Getting startedGetting started

  1. Create a service account named asr-batch-sa.

  2. Assign the storage.editor, functions.functionInvoker, and ai.speechkit-stt.user roles to the service account for the folder in which it was created.

  3. Create a static access key for the service account.

  4. Create an API key to access the service account.

  5. Create an Object Storage bucket named asr-batch-bucket in the service account folder.

  6. Open asr-batch-bucket, click Create folder, and specify input in the Folder name field.

  7. Upload the config.json file with the specified recognition language to the bucket's input folder. The file only contains one setting:

    {
      "lang": "<language_code>"
    }
    

    Note

    If there is no config.json file in the bucket, the recognition language will be Russian.

Create a cloud functionCreate a cloud function

  1. In the management console, navigate to the folder with the new service account.

  2. Select Cloud Functions.

  3. Click Create function and specify asr-batch-function as the function name.

  4. Click Create.

  5. Under Editor, select the Python 3.8 runtime environment and click Continue.

  6. Download a script file from the Yandex Cloud repository.

  7. Under Function code, clear the contents of the index.py file and paste the downloaded script.

  8. Under Function code, create a file named requirements.txt and add the following code to it:

    boto3
    botocore
    requests
    
  9. Specify the function run settings:

    • Entry point: index.handler
    • Timeout: 60
    • Service account: asr-batch-sa
  10. Add these environment variables:

    • S3_BUCKET: asr-batch-bucket
    • S3_PREFIX: input
    • S3_PREFIX_LOG: log
    • S3_PREFIX_OUT: out
    • S3_KEY: Static access key ID
    • S3_SECRET: Static access key secret
    • API_KEY: API key ID
    • API_SECRET: API key secret
  11. Click Save changes.

Create a triggerCreate a trigger

  1. In the management console, select Cloud Functions.
  2. Select Triggers.
  3. Click Create trigger.
  4. Specify the trigger settings:
    • Name: asr-batch-cron.
    • Type: Timer.
    • Launched resource: Function.
    • Cron expression: Every minute.
    • Function: asr-batch-function.
    • Function version tag: $latest.
    • Service account: asr-batch-sa.
  5. Click Create trigger.

The trigger you created will fire once a minute and invoke the cloud function.

Test the functionTest the function

  1. In the management console, select Object Storage and open asr-batch-bucket.
  2. Upload audio files of any supported format to the input folder.
  3. Wait a few minutes and make sure the bucket now contains the log and out folders.
  4. Check the recognition status in the log folder. The status of each audio file sent for recognition is saved to an auxiliary file named <audio_file_name>.json (e.g., audio.mp3.json). The "done": "false" parameter in the file indicates the recognition process is not completed.
  5. Check the recognition result in the out folder. The result is saved to a JSON file named <audio_file_name>.json (e.g., audio.mp3.json). To learn more about the recognition result format, see Asynchronous recognition API.

Note

You can monitor the progress of the script in the logs of asr-batch-function.

See alsoSee also

  • Asynchronous recognition API v2
  • Asynchronous recognition of LPCM audio files using the API v2
  • Asynchronous recognition of OggOpus audio files using the API v2

Was the article helpful?

Previous
Developing a Telegram bot for text and audio recognition
Next
Implementing an AI assistant with search capabilities for PDF files with complex formatting
Yandex project
© 2025 Yandex.Cloud LLC