TrainSpeaker

Trains Media Server to recognize a speaker.

Running this action is equivalent to running the following actions in the following order:

Type: asynchronous

Parameter Description Required
audiodata The audio data to use for training. Send files to Media Server using a multipart/form-data HTTP POST request. Set this or audiopath
audiopath The path of the audio file to use for training. The path must be absolute, or relative to the Media Server executable file. Set this or audiodata
database The name of the database to add the speaker to. The database must already exist. Yes
identifier A unique identifier for the speaker (maximum 254 bytes). If you do not set this parameter, Media Server generates an identifier automatically. No
metadata A comma-separated list of metadata key-value pairs to add to the speaker. Separate keys from values using a colon (:). To include a comma or colon in a key name or value, you must enclose the key name or value in quotation marks (") and escape any quotation marks that occur within the string with a backslash (\). No
nullaudiodata A Boolean value (default false) that specifies whether to discard the audio data when training is complete, rather than storing it in the database. No
numparallel

The maximum number of threads to use to complete the training (default 1), subject to the limit specified by MaxNumParallel.

No

Example

The following example trains Media Server by sending the path of an audio file:

curl http://localhost:14000/action=TrainSpeaker
                            -F database=news
                            -F identifier=newsreader
                            -F audiopath=newsreader.wav

Alternatively, you can train Media Server by sending the audio data, for example:

curl http://localhost:14000/action=TrainSpeaker
                            -F database=news
                            -F identifier=newsreader2
                            -F audiodata=@newsreader2.wav

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 your request.

<autnresponse>
  <action>QUEUEINFO</action>
  <response>SUCCESS</response>
  <responsedata>
    <actions>
      <action>
        <status>Finished</status>
        <queued_time>2024-Apr-25 14:20:30</queued_time>
        <time_in_queue>8</time_in_queue>
        <process_start_time>2024-Apr-25 14:20:38</process_start_time>
        <time_processing>371</time_processing>
        <process_end_time>2024-Apr-25 14:26:49</process_end_time>
        <build>
          <audio>
            <index>1</index>
            <label>256f1729b84a8350f0185d5d67c8cace</label>
            <status>trained</status>
          </audio>
        </build>
        <database>news</database>
        <identifier>newsreader</identifier>
        <numaudio>1</numaudio>
        <numtrained>1</numtrained>
        <token>...</token>
      </action>
    </actions>
  </responsedata>
</autnresponse>

The identifier element contains the identifier that was assigned to the new speaker.