Voice recording

  1. Create a project
  2. Add a task pool
  3. Upload tasks
  4. Start the pool and get the results

Run the project in the Sandbox first. This helps you avoid making mistakes and spending money on a task that isn't working right.

Voice recording tasks are most convenient to open in the mobile app for Android or iOS. Mobile apps can record audio directly in a task using the device's built-in voice recorder.

You may need additional projects for your task, such as dataset pre-check or checking performers' responses. Learn more about this in Decomposition of the task.

Let's say you need to collect audio recordings in which users read your text outloud. To do this, create a task in which the performer is given a text phrase and should attach an audio recording as a response.

Example of a prepared task

To run tasks and get responses:

Create a project

The project defines what the task will look like for a performer.

  1. Choose a template:

    1. Click + Create project.

    2. Select the Voice recording template.
  2. Provide general information:

    1. Enter a clear name and a short description for the project. Performers will see this in the task list.

    2. Optionally add a Private comment.

    3. Click Save.

  3. Edit the task interface:

    1. The task interface describes how the elements should be arranged in the task.

      You can use standard HTML tags and special expressions in double curly brackets for input and output data fields.

      <div class="text">
      <div class="record">
        {{field type="file" sources="RECORDER" fileType="AUDIO" name="audio_record" 
        label="Open the voice recorder to record audio"}}
      This notation describes the following task design:
      • Text from the phrase input field.
      • Button to start the audio recorder and record a file saved in the audio_record field.

      Leave the JavaScript block unchanged.

      Add styles to the CSS block for the correct display on mobile devices. Example for the simplest case:
      .task {
        display: block;
        margin-bottom: 20px;
        margin: 0;
        padding: 20px;
      .text {
        font-size: 18px;
        font-weight: bold;
        line-height: 23px;
      .record {
        margin-top: 5vh;
    2. Define which objects you are going to pass to the performers and receive from them in response. To do this, add input and output fields in the Data specification section.

      What are input and output data?

      Input data is types of objects that are passed to the performer for completing the task. For example, this could be a text, an image, or geographic coordinates.

      Output data is types of objects that you receive after the task is completed. For example, this could be one of several response options, typed text, or an uploaded file.

      Learn more about input and output data fields.

      In this case they are:

      • Input data field — The phrase string with the text to be voiced by the performer.
      • Output data field — The audio_record file, an audio recording that the performer should upload.
    3. Click to see the performer's view of the task.

      Note. The project preview shows one task with standard data. You can define the number of tasks to show on the page later.
    4. Save the changes.

  4. Write instructions for performers:

    1. Write short and clear guidelines (see the recommendations). Describe what needs to be done and give examples in them.

      You can prepare instructions in HTML format, then copy and paste into the editor. Click <> to switch to HTML mode.

    2. Click Finish.

Add a task pool

A pool is a set of paid tasks sent out for completion at the same time.

  1. Open the project and click Add pool.
  2. Give the pool any convenient name and description. The pool info is only available to you. Performers can view only the project name and description.
  3. Set the price per task suite (for instance, $0.02).
    What is a task suite?

    A task suite can contain one or several tasks that are shown on the same page. If the tasks are simple, you can add 10-20 tasks per suite. Don't make task suites too long because it slows down loading speed for performers.

    Performers get paid for completing the entire task suite.

    The number of tasks per suite is set when uploading tasks.

    What is a fair price for a task suite?

    The general rule of pricing is the more time the performer spends to complete the task, the higher the price is.

    You can register in Toloka as a performer and find out how much other requesters pay for tasks, or see examples of cost for different types of tasks.

  4. Set the Time allowed for completing a task suite. It should be long enough to read the guidelines and wait for task data to download (for example, 1200 seconds).
  5. Set the Overlap, which is the number of performers to complete the same task. The value depends on how many recordings of the same phrase you want to collect. If one is enough, put 1.
  6. If there is no adult content in the task in any form, turn off Adult content.
  7. Enable the Non-automatic acceptance option and enter the number of days for checking in the Review period field (for example, 7).
  8. Add Filters to choose performers.
  9. Save the pool.

Upload tasks

Download the sample upload file. You can find it on the pool page. At the top-left of the page, there are links to TSV files with regular, control, and training tasks. Use it to prepare your own file with tasks.

  1. Click Upload. In the window that opens, you can also download a sample TSV file by clicking Sample file for uploading tasks.
    What is TSV?
    A TSV file presents a table as a text file in which columns are separated by tabs.
    You can work with it both in a table editor and a text editor, and then save it to the desired format. Learn more about working with a TSV file. There is a CSV format that is similar to TSV, but you should use a TSV file for uploading.
    Note. Before uploading the file, make sure it is saved in UTF-8 encoding.
  2. Add input data in it. The header of the input data column contains the word INPUT. Put the text to read outloud in the INPUT:phrase column and remove the other columns.
  3. Load the tasks. Choose Set manually and set the number of tasks per page (for example, 5). This means that there are 5 phrases per page and the performer has to attach 5 audio files.

Start the pool and get the results

  1. Start the pool by clicking .
  2. Track the completion in the Pool statistics block.
  3. Start the review as soon as you get the first results. After the specified time period, all responses are automatically accepted, regardless of their quality.

    To check the tasks and download the attached files, open the pool and click Download results, and then Download attachments.
    Note. The files received from the Toloka app are in WAV 16KHz 16bit PCM format.


How do I make a voice recording of a text in a single audio file, but use about 1000 people to record it?

You need to break down your task for Toloka. If you have a 30-minute task intended for one person and containing all the phrases, the best approach is to divide it into individual phrases, which you can give to different performers. The template for voice recording tasks doesn't require that the user installs a separate voice recorder app.

Refer to our step-by-step guide for creating a voice recording task.

In the input data, you can pass the phrase for the performer to record ("enable navigation"), and the speech speed (normal speed). This is the data you need to save in the TSV file. See the Guide to learn about creating a TSV file and its structure.

The preview contains 4 tasks per suite by default. You can specify the number of tasks for your project when you upload the task file. Learn more about the preview.

For example, if you want one person to say the same phrase 10 times, create 10 tasks in a suite. The cost is specified per task suite. To define how many people should say a particular phrase, use the overlap in the pool. By the way, don't forget to set up filters in your pool. This way you can select only the performers who speak a certain language and use mobile devices: client = mobile Toloka.

You can delegate review of the voice recordings to other performers by creating a separate project. Find brief instructions on how to do this here.

How do I show two different versions of the text to performers?

If you pass texts to the input data, you can upload 2 different tasks to the pool: pass Text 1 in the INPUT: <input field name> field of Task 1. In Task 2, use this field to pass Text 2.

If the text is in the HTML block of the task template, then clone the project. To limit a performer to doing only one task in your project, use the Submitted responses rule. You can assign a skill or ban the performer after they submit one response.

My performers can't upload a file with the assignment

If none of the performers can submit the assignment, the most likely reason is JS validation. Run JS validation again.

Export your project to the sandbox and try to complete the task in the sandbox yourself.

How do I make an image expand to its maximum size on click?

To the component that inserts the image, add the parameters: real-size=true and screenshot=true.

I can't upload files from Yandex.Disk

If images, audio or video files from Yandex.Disk don't appear in the instructions or on the task suites, make sure you connected Yandex.Disk correctly and uploaded the files.

How to create a task where the performer has to view a video from Yandex.Disk

To create such a task, take the video markup template as a basis.

To host your videos on Yandex.Disk, connect Yandex.Disk and set up the project.

Why can't my task for selecting objects in an image display images from Yandex.Disk?
The problem is in your task template. Make sure that:
  • In the project, the input field where you pass the file link has the “string” type.
  • The component in the task template uses the "proxy" expression.
  • The format of relative links in the TSV file with tasks is correct: <unique name>/<file path and name>.
For detailed instructions and videos, see the page Using files from Yandex.Disk.
Frequent mistakes when connecting to Yandex.Disk and uploading files
  • The Input data field in the project settings has the link type. You should choose the string type.
  • The TSV file contains absolute references to the task files. You need to insert a link <unique name>/<path and file name>. For example: yadisk/image1.jpg or yadisk/photos/image1.png.
  • Photos from Yandex.Disk are used in the task instructions in the mobile app. To display the photos in the instructions, use only direct links.
  • Files are deleted or aren't located in the Yandex.Disk folder that the link leads to.
  • The OAuth token isn't active. Update the token on the External Services Integration page.
To display files from Yandex.Disk (images, audio files, videos) to the performer:
  1. Link Yandex.Disk in your profile.
  2. Set the string type for the input data field.
  3. Insert a file link using the proxy component.

Detailed instructions

Files load too slowly from Yandex.Disk. How do I speed up the loading process?

Try the recommendations on this page or contact Yandex.Disk support.