New AssemblyAI-TTS-1: Text-to-speech for voice agents. Learn more
Solutions

Voice agents for legal transcription and proceedings

Build voice-powered legal tools that transcribe depositions, hearings, and client consultations with speaker-labeled, timestamped, court-grade accuracy — and redact privileged information automatically.

Deposition transcript

Live

Williams v. Meridian Corp. · Case No. 2026-CV-04471

Counsel (Ms. Reeves)

10:14:32

"Can you describe what happened on the morning of March 12th?"

Witness (Mr. Dalton)

10:14:41

"I arrived at the facility around 7 AM. I spoke with [REDACTED] about the shipment."

Counsel (Ms. Reeves)

10:14:58

"And who authorized the change to the delivery schedule?"

Court reporter

10:15:03

[Speaker 4 identified · diarization active]

Metaview
Dovetail
Granola
Apollo.io
Ashby
Siro
Calabrio
Cluely
Genio
Commure
Retell
CallRail
LiveKit
EliseAI
ClickUp
HeyGen
Metaview
Dovetail
Granola
Apollo.io
Ashby
Siro
Calabrio
Cluely
Genio
Commure
Retell
CallRail
LiveKit
EliseAI
ClickUp
HeyGen
Metaview
Dovetail
Granola
Apollo.io
Ashby
Siro
Calabrio
Cluely
Genio
Commure
Retell
CallRail
LiveKit
EliseAI
ClickUp
HeyGen
Metaview
Dovetail
Granola
Apollo.io
Ashby
Siro
Calabrio
Cluely
Genio
Commure
Retell
CallRail
LiveKit
EliseAI
ClickUp
HeyGen
The problem

Legal transcription is expensive, slow, and inconsistent

Court reporting runs $4–6 per page with 24–48 hour turnaround, and paralegal review of depositions for privilege and PII is brutally manual. Voice agents could automate intake, scheduling, and transcription — but legal demands word-level accuracy, speaker attribution, timestamp precision, and privilege detection that consumer ASR can't deliver. AssemblyAI is purpose-built for the audio reality of depositions, hearings, and consultations.

Built for the audio realities of legal work

Latency 307 ms

Median time to final transcript on Universal-3.6 Pro Realtime (Pipecat open benchmark).

Languages 32

Native code switching across 32 languages on Universal-3.6 Pro Realtime.

Keyterms 100

Domain-specific legal terms boosted per session — statutes, case law, party names.

Compliance SOC 2

Type 2 certified, plus PCI DSS v4.0 and ISO 27001:2022 for regulated legal workloads.

Two ways to build

Pick the API that fits your legal stack

Run a voice-driven intake agent on the full AssemblyAI voice stack, or drop court-grade streaming STT into the case management software you already run.

Recommended

Full AssemblyAI voice stack

Universal-3.6 Pro Realtime listens, LLM Gateway reasons, and the Text-to-Speech API speaks. Run a legal intake or scheduling agent that captures caller info, books consultations, and pushes to your case management system.

Best for

  • Legal intake calls, scheduling, and client consultations
  • Tool calls for Clio, MyCase, Practice Panther write-back
  • Built-in keyterm prompting for matter vocabulary
  • Natural voices that get names and dates right
$0.45/hr — STT, plus Text-to-Speech at $15 per 1M characters
Get started for free

Free tier available · No credit card required

Bring Your Own Stack

Universal-3.6 Pro Realtime STT API

The court-grade transcription layer for your discovery and case management workflow. Speaker labels, word-level timestamps, and inline PII redaction baked in.

Best for

  • Deposition, hearing, and consultation transcription
  • Native speaker diarization for counsel, witness, judge
  • Accurate capture of case numbers and citations
  • Inline PII redaction for SSNs, DOBs, and addresses
  • SOC 2 Type 2, PCI DSS v4.0, ISO 27001:2022 certified
$0.45/hr — transcription only, unlimited streams
View integration docs

No concurrency caps · Autoscaling included

One pipeline turns proceedings into structured legal records

Capture deposition or hearing audio

Stream audio from court-reporter mics, video-conferencing platforms, or recorded depositions into the API. Multi-party rooms work natively.

Transcribe with speaker labels and timestamps

Universal-3.6 Pro Realtime attributes each turn to a speaker label (counsel, witness, judge) with word-level timestamps — exactly the structure paralegals need for review.

Redact privileged info and PII inline

Streaming PII redaction masks SSNs, dates of birth, account numbers, and addresses before finalized turns ever leave the API. Configurable policies per matter.

Export to case management or discovery

Push structured transcripts (speakers, timestamps, redaction markers) into Clio, MyCase, Practice Panther, LexisNexis, Westlaw, or your custom discovery workflow.

gavel

Legal transcription pipeline

Capture deposition or hearing audio

↓

Transcribe with speaker labels + timestamps

↓

Redact privileged info + PII inline

↓

Export to case management or discovery

Quickstart

Build a voice-powered legal tool in minutes

Universal-3.6 Pro Realtime — live deposition transcript with PII redaction

# Universal-3.6 Pro Realtime: live deposition transcript
import asyncio, json, websockets
from urllib.parse import urlencode

API_KEY = "YOUR_API_KEY"

params = urlencode({
    "sample_rate": 16000,
    "speech_model": "universal-3-6-pro",
    "keyterms_prompt": json.dumps([
        "Williams v. Meridian Corp", "Case No. 2026-CV-04471",
        "Exhibit A", "deposition", "subpoena duces tecum",
        "motion to compel",
    ]),
    "speaker_labels": "true",                  # counsel vs. witness vs. judge
    "redact_pii": "true",                      # mask privileged PII inline
    "redact_pii_policies": json.dumps([
        "us_social_security_number", "date_of_birth",
        "phone_number", "email_address", "person_name",
        "credit_card_number", "location",
    ]),
    "redact_pii_sub": "entity_name",           # e.g. [PERSON_NAME]
})

async def transcribe_deposition(audio_iter, export_to_case_mgmt):
    url = f"wss://streaming.assemblyai.com/v3/ws?{params}"
    async with websockets.connect(
        url, additional_headers={"Authorization": API_KEY},
    ) as ws:
        async def send_audio():
            async for chunk in audio_iter:
                await ws.send(chunk)
        asyncio.create_task(send_audio())
        async for raw in ws:
            evt = json.loads(raw)
            if evt.get("type") == "Turn" and evt.get("end_of_turn"):
                # finalized turn with speaker_label + PII-redacted transcript
                export_to_case_mgmt({
                    "speaker": evt.get("speaker_label"),
                    "transcript": evt["transcript"],
                    "words": evt.get("words", []),  # word-level timestamps
                })

Speaker diarization for multi-party proceedings

Universal-3.6 Pro Realtime attributes each turn to a speaker label out of the box — counsel, witness, judge, court reporter — so depositions and hearings transcribe with the structure paralegals need without manual cleanup.

Inline PII redaction for privileged content

Mask SSNs, dates of birth, account numbers, addresses, and 10+ other PII categories on finalized turns. Configurable per matter and per redaction policy — no privileged information ever reaches your case management system unredacted.

Entity accuracy for case numbers and citations

Universal-3.6 Pro Realtime captures alphanumeric sequences cleanly — critical for case numbers (2026-CV-04471), exhibit IDs, statute references, and citations cleanly the first time.

Frequently asked questions