Skip to main content
The DeepL Voice API transcribes and translates spoken audio in real time over a WebSocket connection. Within a single streaming session, you can:
  • Send one audio stream
  • Receive transcripts in the source language
  • Receive translations in multiple target languages
  • closed beta Receive translated speech
Speech-to-text (real-time transcription and text translation) is available to all customers with a paid DeepL API subscription. Speech-to-speech (translated TTS output) is a separate capability in closed beta and not included in standard API subscriptions.The provisions applying to DeepL API Enterprise subscriptions also apply to Voice API speech-to-text, with additions to the Terms and Conditions, Service Specification, and Data Processing Agreement (new sub-processors have been added to serve specific languages).

Start here

Real-Time Voice Quickstart

Create a session, stream audio over WebSocket, and handle reconnections, with a complete Python example.

Understanding Voice Sessions

Understand the session flow, token lifecycle, and how audio and results are delivered.

Message Encoding

Choose between JSON and MessagePack for WebSocket messages.

Supported Languages, Formats, and Limits

Check language availability, supported audio codecs and containers, and session limits.

API reference

Full request, message, and response schemas for the Voice API endpoints.

Customization

Two optional features let you tailor transcription and translation to your domain:
  • beta Spoken terms: improve transcription of frequently used terms such as company-specific terminology, acronyms, product names, and team member names. Manage them in DeepL Home; management via API is coming soon.
  • Glossaries: enforce specific translations for terms in the target language. Manage them in DeepL Home or programmatically with the Glossaries API.

Code examples

A reference implementation in Python is available in the DeepL Python library repository. The official DeepL SDKs don’t integrate the Voice API yet, but you can use any WebSocket client library to interact with it.