Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# CHANGELOG

## Version 0.4.0 (2026-01-14)

- feat: add support for STT orchestration

## Version 0.3.0 (2025-10-10)

- feat: add support for passing audio as a `{"audio": str | Path}` mapping
Expand Down
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,21 @@ diarization = client.retrieve(job_id)

Use `help(client.diarize)` to learn about options.

## STT orchestration

```python
# submit a diarization job with STT orchestration
job_id = client.diarize(
media_url,
transcription=True,
transcription_config={"model": "parakeet-tdt-0.6b-v3"})

# retrieve speaker-attributed transcription
orchestration = client.retrieve(job_id)
# orchestration['output']['turnLevelTranscription']
# orchestration['output']['wordLevelTranscription']
```

## Speaker identification

```python
Expand Down
11 changes: 11 additions & 0 deletions src/pyannoteai/sdk/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,8 @@ def diarize(
turn_level_confidence: bool = False,
exclusive: bool = False,
model: str = "precision-2",
transcription: bool = False,
transcription_config: dict | None = None,
**kwargs,
) -> str:
"""Initiate a diarization job on the pyannoteAI web API
Expand All @@ -394,6 +396,10 @@ def diarize(
Enable exclusive speaker diarization.
model : str, optional
Defaults to "precision-2"
transcription : bool, optional
Enable STT orchestration.
transcription_config : dict, optional
STT configuration parameters, including model selection.
**kwargs : optional
Extra arguments to send in the body of the request.

Expand All @@ -416,7 +422,12 @@ def diarize(
"confidence": confidence,
"turnLevelConfidence": turn_level_confidence,
"exclusive": exclusive,
"transcription": transcription,
}

if transcription_config is not None:
json["transcriptionConfig"] = transcription_config

# add extra arguments to the request body
json.update(kwargs)

Expand Down