# EstimateAllSpeakerThresholds

Calculates the thresholds that are necessary to distinguish between known and unknown speakers.

NOTE: You only need to run this action if the audio you want to process contains unknown speakers.

Before running this action:

- Add and train all of your known speakers. Add a speaker with the action NewSpeaker. Add audio samples for the speaker by running the action AddSpeakerAudio with the parameter `training=true`. Then train the speaker with the action BuildSpeaker, or train all speakers with the action BuildAllSpeakers.
- Add audio samples for estimating thresholds to every known speaker (using the action AddSpeakerAudio with the parameter `training=false`).
- Add audio samples representing unknown speakers (using the action AddUnknownSpeakerAudio).

For more information about training speaker identification, refer to the Media Server Administration Guide.

New speaker thresholds do not take effect until Media Server has synchronized with the training database. This happens automatically at regular intervals, and when you start the `process` action. If you have disabled automatic synchronization, run the action SyncSpeakers.

Type: asynchronous

Parameter | Description | Required
--- | --- | ---
`bias` | The bias to use when calculating thresholds, as a number from `0` to `1`. The default value is `0.3` and this is suitable in most cases. Using a higher value increases the calculated thresholds, which can result in fewer false positives. Using a lower value decreases the thresholds, which can result in fewer missed results (better recall). Calculating threshold values using this action uses the same bias for every speaker. If you want to use a different bias for a speaker, use the action EstimateSpeakerThreshold. | No
`database` | The speaker database to estimate thresholds for. If you omit this parameter, Media Server calculates thresholds for all speakers in all databases. | No

## Example

    /action=EstimateAllSpeakerThresholds&database=news

## Response

This action is asynchronous, so Media Server always returns success accompanied by a token. You can use this token with the QueueInfo action to retrieve the status of the action:

    <autnresponse>
      <action>QUEUEINFO</action>
      <response>SUCCESS</response>
      <responsedata>
        <actions>
          <action>
            <status>Finished</status>
            <queued_time>2018-May-22 04:11:51</queued_time>
            <time_in_queue>1</time_in_queue>
            <process_start_time>2018-May-22 04:11:52</process_start_time>
            <time_processing>1258</time_processing>
            <process_end_time>2018-May-22 04:32:50</process_end_time>
            <numDatabases>1</numDatabases>
            <numSpeakers>3</numSpeakers>
            <numSpeakersDone>3</numSpeakersDone>
            <speaker>
              <bias>0.3</bias>
              <database>news</database>
              <identifier>newsreader</identifier>
              <numFiles>7</numFiles>
              <numFilesDone>7</numFilesDone>
              <precision>98.6</precision>
              <recall>100.0</recall>
              <score>99.3</score>
              <status>Finished</status>
              <threshold>34</threshold>
            </speaker>
            ...
            <token>...</token>
          </action>
        </actions>
      </responsedata>
    </autnresponse>

There is a `speaker` element for each speaker and the `threshold` element contains the calculated threshold.

_FT_HTML5_bannerTitle.htm