Skip to content

Admin - Speaker Embedding Models

Administer concrete embedding model configurations and manage embedding model aliases. User-facing alias discovery endpoints are documented in Embedding Models.

Admin base path: /api/v1/speaker-services/admin

Method Endpoint Description
GET /api/v1/speaker-services/admin/speaker-embeddings/models Admin List Embedding Models
POST /api/v1/speaker-services/admin/speaker-embeddings/models Register Embedding Model
PUT /api/v1/speaker-services/admin/speaker-embeddings/models/{name} Update Embedding Model
PATCH /api/v1/speaker-services/admin/speaker-embeddings/models/{name}/status Update Embedding Model Status
DELETE /api/v1/speaker-services/admin/speaker-embeddings/models/{name} Delete Embedding Model
GET /api/v1/speaker-services/admin/speaker-embeddings/model-aliases Admin List Embedding Model Aliases
PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias} Create or Update Embedding Model Alias
PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/resolve Update Embedding Model Alias Resolution
PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/deprecate Deprecate Embedding Model Alias
PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/undeprecate Undeprecate Embedding Model Alias
DELETE /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias} Delete Embedding Model Alias

Admin Model Management

Admin List Embedding Models

GET /api/v1/speaker-services/admin/speaker-embeddings/models

Requires Authentication - Scopes: admin:speaker-embedding-models:write

Returns concrete embedding model configurations for the tenant.

Response: AdminSpeakerEmbeddingModelResponse[]

Register Embedding Model

POST /api/v1/speaker-services/admin/speaker-embeddings/models

Requires Authentication - Scopes: admin:speaker-embedding-models:write

Registers a concrete embedding model configuration. The name is immutable after creation and remains the concrete model identifier used by aliases and retained voice prints.

SpeakerEmbeddingModelAdminRequest
Field Type Required Description
name string Yes Concrete model identifier.
displayName string Yes Human-readable name.
description string No Optional description.
status SpeakerEmbeddingModelStatus No Initial model status. After creation, update status only through PATCH /models/{name}/status.
supportedLocales string[] No Locales validated for this model.
grpc SpeakerEmbeddingGrpcClientConfig Yes gRPC client settings for the inference server.
thresholdDefaults ModelThresholdDefaults No Per-mode threshold defaults for this model. When omitted or null, global service defaults apply.
SpeakerEmbeddingModelAdminRequest
{
  "name": "spk-embed-he-v3",
  "displayName": "Hebrew Speaker Embedding v3",
  "status": "AVAILABLE",
  "supportedLocales": ["he-IL", "en-US"],
  "grpc": {
    "target": "dns:///speaker-embedding-prod:443",
    "tlsMode": "SYSTEM_TRUST",
    "authority": "speaker-embedding-prod",
    "deadlineMs": 30000,
    "maxInboundMessageBytes": 4194304,
    "metadata": {
      "x-client": "speaker-services"
    }
  }
}

Response: AdminSpeakerEmbeddingModelResponse

Update Embedding Model

PUT /api/v1/speaker-services/admin/speaker-embeddings/models/{name}

Requires Authentication - Scopes: admin:speaker-embedding-models:write

Replaces editable configuration for an existing concrete embedding model. Required fields must be supplied. Nullable fields may be supplied, omitted, or set to null; omitted nullable fields are cleared.

This endpoint is for configuration updates such as display text, locale coverage, timeout values, and inference server connection settings. It does not change which concrete model an alias resolves to and does not rebuild existing voice prints.

name is immutable and is not accepted in the request body. status is updated only through PATCH /models/{name}/status.

Path Parameters
Parameter Type Required Description
name string Yes Concrete embedding model identifier.
UpdateSpeakerEmbeddingModelRequest
Field Type Required Nullable Description
displayName string Yes No Human-readable name.
description string No Yes Optional description. Omit or set to null to clear.
supportedLocales string[] No Yes Locales validated for this model. Omit or set to null to clear.
grpc UpdateSpeakerEmbeddingGrpcClientConfig Yes No gRPC client settings for the inference server.
thresholdDefaults ModelThresholdDefaults No Yes Per-mode threshold defaults. Omit or set to null to clear (revert to global service defaults).
UpdateSpeakerEmbeddingModelRequest
{
  "displayName": "Hebrew Speaker Embedding v3.1",
  "description": "Production Hebrew speaker embedding model",
  "supportedLocales": ["he-IL"],
  "grpc": {
    "target": "dns:///speaker-embedding-prod-v3:443",
    "tlsMode": "SYSTEM_TRUST",
    "authority": "speaker-embedding-prod",
    "deadlineMs": 45000
  }
}
Clear optional fields by omission
{
  "displayName": "Hebrew Speaker Embedding v3.1",
  "grpc": {
    "target": "dns:///speaker-embedding-prod-v3:443",
    "tlsMode": "SYSTEM_TRUST",
    "deadlineMs": 45000
  }
}
Status Description
200 OK Model configuration updated. Returns AdminSpeakerEmbeddingModelResponse.
400 Bad Request Request body is invalid or omits a required field.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Model not found.

Update Embedding Model Status

PATCH /api/v1/speaker-services/admin/speaker-embeddings/models/{name}/status

Requires Authentication - Scopes: admin:speaker-embedding-models:write

Updates a concrete model status. DEPRECATED means the model is still usable for existing voice prints during migration. When a concrete model becomes INACTIVE, voice-print retention starts for voice prints produced by that resolved model.

Path Parameters
Parameter Type Required Description
name string Yes Concrete embedding model identifier.
UpdateSpeakerEmbeddingModelStatusRequest
Field Type Required Nullable Description
status SpeakerEmbeddingModelStatus Yes No New model status.
statusMessage string No Yes Optional operator-facing reason for the status change.
UpdateSpeakerEmbeddingModelStatusRequest
{
  "status": "MAINTENANCE",
  "statusMessage": "Inference server maintenance"
}
Status Description
200 OK Model status updated. Returns AdminSpeakerEmbeddingModelResponse.
400 Bad Request Request body is invalid.
401 Unauthorized Missing or invalid authentication.
403 Forbidden Insufficient scope.
404 Not Found Model not found.

Delete Embedding Model

DELETE /api/v1/speaker-services/admin/speaker-embeddings/models/{name}

Requires Authentication - Scopes: admin:speaker-embedding-models:delete

Deletes a concrete model only when no aliases or retained voice prints reference it.


Admin Alias Management

Admin List Embedding Model Aliases

GET /api/v1/speaker-services/admin/speaker-embeddings/model-aliases

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:write

Returns all embedding model aliases for the tenant.

Create or Update Embedding Model Alias

PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:write

Creates or updates an alias. Exactly one alias per tenant can be marked as default.

SpeakerEmbeddingModelAliasAdminRequest
Field Type Required Description
type string Yes Alias type: FAMILY, PINNED, or CONCRETE.
displayName string Yes Human-readable alias name.
description string No Optional alias description.
resolvedModel string Yes Concrete model identifier.
isDefault boolean No Whether this is the tenant default alias.
deprecated boolean No Whether the alias is deprecated.
deprecationDate string (date) No Date deprecation started.
sunsetDate string (date) No Date after which public requests should reject the alias.
deprecationMessage string No User-facing deprecation message.
minHierarchyOrder integer No Minimum user hierarchy level allowed to see this alias.

Update Embedding Model Alias Resolution

PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/resolve

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:write

Changes the concrete model an alias resolves to. Existing voice prints keep their previous resolved model metadata; clients create replacement voice prints through the user-facing voice-print creation endpoint.

Deprecate Embedding Model Alias

PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/deprecate

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:write

Marks an alias as deprecated and optionally sets a sunset date.

Undeprecate Embedding Model Alias

PUT /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}/undeprecate

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:write

Removes the deprecated status from an embedding model alias, clearing the deprecation date, sunset date, and deprecation message. The alias becomes fully active again.

Path Parameters
Parameter Type Required Description
alias string Yes Alias identifier.

Delete Embedding Model Alias

DELETE /api/v1/speaker-services/admin/speaker-embeddings/model-aliases/{alias}

Requires Authentication - Scopes: admin:speaker-embedding-model-aliases:delete

Deletes an alias. Existing voice prints keep their requested alias and resolved model metadata.

Data Types

AdminSpeakerEmbeddingModelResponse

Field Type Nullable Description
name string No Unique model identifier.
displayName string No Human-readable display name.
description string Yes Optional model description.
status SpeakerEmbeddingModelStatus No Current model status.
statusMessage string Yes Optional human-readable status message.
deprecatedAt string (ISO 8601) Yes Timestamp when the model was marked as DEPRECATED.
inactiveAt string (ISO 8601) Yes Timestamp when the model was marked as INACTIVE.
supportedLocales string[] Yes Supported BCP-47 speaker locales.
grpc SpeakerEmbeddingGrpcClientConfig No gRPC client settings for the inference server.
createdAt string (ISO 8601) No Creation timestamp.
updatedAt string (ISO 8601) No Last update timestamp.
thresholdDefaults ModelThresholdDefaults Yes Per-mode threshold defaults. Null fields use global service defaults.
activeVoicePrintCount long No Number of active, non-deleted voice prints using this concrete model.
defaultVoicePrintSpeakerCount long No Number of speakers whose default voice print uses this concrete model.

SpeakerEmbeddingGrpcClientConfig

Embedding inference calls use round-robin load balancing. Targets may be a single host:port, a DNS target such as dns:///embedding-headless:443, an unprefixed list such as server-a:2222,server-b:2222, or the preferred explicit form static:///server-a:2222,server-b:2222. Static lists have fixed membership; use DNS for dynamic membership. DNS targets are refreshed periodically even while another endpoint remains healthy. TLS endpoints must share a certificate identity or use the authority override.

Field Type Nullable Description
target string No Single, DNS, or explicit static gRPC target.
tlsMode GrpcTlsMode No TLS mode for the gRPC connection.
authority string Yes Optional gRPC authority override.
deadlineMs integer No Request deadline/timeout in milliseconds.
maxInboundMessageBytes integer Yes Optional maximum inbound message size.
metadata object Yes Metadata sent with inference requests.

UpdateSpeakerEmbeddingGrpcClientConfig

Field Type Required Nullable Description
target string Yes No Single, DNS, or explicit static gRPC target.
tlsMode GrpcTlsMode Yes No TLS mode for the gRPC connection.
authority string No Yes Optional gRPC authority override. Omit or set to null to clear.
deadlineMs integer Yes No Request deadline/timeout in milliseconds. Must be positive.
maxInboundMessageBytes integer No Yes Optional maximum inbound message size. Omit or set to null to clear.
metadata object No Yes Metadata sent with inference requests. Omit or set to null to clear.

ModelThresholdDefaults

Per-mode threshold defaults for a concrete model. All fields are optional and nullable. A null field means "use the global service default" for that mode. Thresholds are floating-point values in the range [0.0, 1.0].

Field Type Nullable Description
strictAcceptThreshold number Yes Accept threshold for STRICT mode. Scores ≥ this value are accepted.
strictReviewThreshold number Yes Review threshold for STRICT mode. Scores in [reviewThreshold, acceptThreshold) are flagged for review.
balancedAcceptThreshold number Yes Accept threshold for BALANCED mode (the default mode).
balancedReviewThreshold number Yes Review threshold for BALANCED mode.
lenientAcceptThreshold number Yes Accept threshold for LENIENT mode.
lenientReviewThreshold number Yes Review threshold for LENIENT mode.
ModelThresholdDefaults - example
{
  "strictAcceptThreshold": 0.88,
  "strictReviewThreshold": 0.78,
  "balancedAcceptThreshold": 0.72,
  "balancedReviewThreshold": 0.58,
  "lenientAcceptThreshold": 0.58,
  "lenientReviewThreshold": 0.42
}

GrpcTlsMode

Value Description
PLAINTEXT Connect without TLS. Use only for trusted private networks.
SYSTEM_TRUST Use TLS with the system trust store.
MTLS Use mutual TLS when configured for the deployment.

SpeakerEmbeddingModelStatus

Value Description
AVAILABLE Model can process embedding inference requests.
DEPRECATED Model remains usable for existing voice prints during migration.
MAINTENANCE Model is temporarily unavailable.
INACTIVE Model cannot process embedding inference requests.