TrainSpeaker
Trains Media Server to recognize a speaker.
Running this action is equivalent to running the following actions in the following order:
- NewSpeaker
- AddSpeakerAudio
- AddSpeakerMetadata (optional)
- BuildSpeaker
- NullSpeakerAudioData (optional)
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. To strengthen security, Media Server can be configured to read files only from specified directories. For information about the directories that Media Server is permitted to read from, see the parameter AllowedInputDirectories. |
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.