Agent Skills: Azure AI Transcription SDK for Python

|

UncategorizedID: microsoft/agent-skills/azure-ai-transcription-py

Install this agent skill to your local

pnpm dlx add-skill https://github.com/microsoft/skills/tree/HEAD/.github/plugins/azure-sdk-python/skills/azure-ai-transcription-py

Skill Files

Browse the full folder contents for azure-ai-transcription-py.

Download Skill

Loading file tree…

.github/plugins/azure-sdk-python/skills/azure-ai-transcription-py/SKILL.md

Skill Metadata

Name
azure-ai-transcription-py
Description
|

Azure AI Transcription SDK for Python

Client library for Azure AI Transcription (speech-to-text) with real-time and batch transcription.

Installation

pip install azure-ai-transcription

Environment Variables

TRANSCRIPTION_ENDPOINT=https://<resource>.cognitiveservices.azure.com
TRANSCRIPTION_KEY=<your-key>

Authentication

Use subscription key authentication (DefaultAzureCredential is not supported for this client):

import os
from azure.ai.transcription import TranscriptionClient

with TranscriptionClient(
    endpoint=os.environ["TRANSCRIPTION_ENDPOINT"],
    credential=os.environ["TRANSCRIPTION_KEY"],
) as client:
    transcriptions = list(client.list_transcriptions())

Transcription (Batch)

import os
from azure.ai.transcription import TranscriptionClient

with TranscriptionClient(
    endpoint=os.environ["TRANSCRIPTION_ENDPOINT"],
    credential=os.environ["TRANSCRIPTION_KEY"],
) as client:
    job = client.begin_transcription(
        name="meeting-transcription",
        locale="en-US",
        content_urls=["https://<storage>/audio.wav"],
        diarization_enabled=True,
    )
    result = job.result()
    print(result.status)

Transcription (Real-time)

import os
from azure.ai.transcription import TranscriptionClient

with TranscriptionClient(
    endpoint=os.environ["TRANSCRIPTION_ENDPOINT"],
    credential=os.environ["TRANSCRIPTION_KEY"],
) as client:
    stream = client.begin_stream_transcription(locale="en-US")
    stream.send_audio_file("audio.wav")
    for event in stream:
        print(event.text)

Best Practices

  1. Pick sync OR async and stay consistent. Do not mix azure.xxx sync clients with azure.xxx.aio async clients in the same call path. Choose one mode per module.
  2. Always use context managers for clients and async credentials. Wrap every client in with Client(...) as client: (sync) or async with Client(...) as client: (async). For async DefaultAzureCredential from azure.identity.aio, also use async with credential: so tokens and transports are cleaned up.
  3. Enable diarization when multiple speakers are present
  4. Use batch transcription for long files stored in blob storage
  5. Capture timestamps for subtitle generation
  6. Specify language to improve recognition accuracy
  7. Handle streaming backpressure for real-time transcription
  8. Close transcription sessions when complete