Models & featuresUniversal-3 Pro Streaming

Supported Languages

Supported languages

Universal-3 Pro Streaming supports 6 languages with native multilingual code switching. The model automatically detects and switches between languages mid-stream.

Englishen
Spanishes
Germande
Frenchfr
Portuguesept
Italianit
Need more than 6 languages?

If you need support beyond the 6 languages listed here, consider using the Whisper Streaming model (speech_model: "whisper-rt"), which supports 99 languages with automatic language detection. See the Whisper Streaming page for details.

Regional dialects and variants

Universal-3 Pro Streaming goes beyond standard language support with deep understanding of regional dialects and local variants. Whether your audio features Quebecois French, Mexican Spanish, or Brazilian Portuguese, the model accurately captures speech as it’s naturally spoken — including colloquial expressions, local vocabulary, and accent-specific pronunciation patterns.

Dialect support

You do not need to specify a dialect code to get accurate dialect transcription. Universal-3 Pro automatically recognizes regional speech patterns when using the base language code (e.g., fr for all French dialects, es for all Spanish dialects).

Dialect / VariantDescription
American EnglishStandard US English, including regional variants (Southern, Midwestern, Northeastern)
British EnglishUK English, including Received Pronunciation and regional accents
Australian EnglishAustralian English with local expressions and pronunciation
Dialect / VariantDescription
Castilian SpanishStandard Peninsular Spanish as spoken in central and northern Spain
Mexican SpanishMexican Spanish with local vocabulary and pronunciation
Argentine SpanishRioplatense Spanish with distinctive voseo and pronunciation
Colombian SpanishColombian Spanish with regional speech patterns
Chilean SpanishChilean Spanish with rapid speech patterns and local slang
Caribbean SpanishCuban, Dominican, and Puerto Rican Spanish dialects
SpanglishEnglish-Spanish code-mixing common in US bilingual communities
Dialect / VariantDescription
Metropolitan FrenchStandard Parisian French
Canadian French (Quebecois)Quebec French with distinctive vocabulary, pronunciation, and expressions
Belgian FrenchBelgian French with local vocabulary and pronunciation
Dialect / VariantDescription
Brazilian PortugueseBrazilian Portuguese with local vocabulary, pronunciation, and expressions
European PortugueseStandard Lisbon Portuguese with Iberian pronunciation
Dialect / VariantDescription
Standard ItalianStandard Italian based on Tuscan-influenced speech

Configuration

Prompting can be used to guide the model toward a specific language. However, prompts should be thoroughly tested before use in production. For example, pre-pending Transcribe Spanish to your prompt has shown to perform well on Spanish audio. See the Prompting guide for more details.

Quickstart

The following examples demonstrate how to stream audio to Universal-3 Pro Streaming.

1

Install the required libraries

$pip install "assemblyai>=1.0.0" pyaudio
2

Create a new file main.py and paste the code below. Replace <YOUR_API_KEY> with your API key.

3

Run with python main.py and speak into your microphone.

1import logging
2from typing import Type
3
4import assemblyai as aai
5from assemblyai.streaming.v3 import (
6 BeginEvent,
7 StreamingClient,
8 StreamingClientOptions,
9 StreamingError,
10 StreamingEvents,
11 StreamingParameters,
12 TurnEvent,
13 TerminationEvent,
14)
15
16api_key = "<YOUR_API_KEY>"
17
18logging.basicConfig(level=logging.INFO)
19logger = logging.getLogger(__name__)
20
21def on_begin(self: Type[StreamingClient], event: BeginEvent):
22 print(f"Session started: {event.id}")
23
24def on_turn(self: Type[StreamingClient], event: TurnEvent):
25 print(f"{event.transcript} ({event.end_of_turn})")
26
27def on_terminated(self: Type[StreamingClient], event: TerminationEvent):
28 print(
29 f"Session terminated: {event.audio_duration_seconds} seconds of audio processed"
30 )
31
32def on_error(self: Type[StreamingClient], error: StreamingError):
33 print(f"Error occurred: {error}")
34
35def main():
36 client = StreamingClient(
37 StreamingClientOptions(
38 api_key=api_key,
39 api_host="streaming.assemblyai.com",
40 )
41 )
42
43 client.on(StreamingEvents.Begin, on_begin)
44 client.on(StreamingEvents.Turn, on_turn)
45 client.on(StreamingEvents.Termination, on_terminated)
46 client.on(StreamingEvents.Error, on_error)
47
48 client.connect(
49 StreamingParameters(
50 sample_rate=16000,
51 speech_model="u3-rt-pro",
52 )
53 )
54
55 try:
56 client.stream(
57 aai.extras.MicrophoneStream(sample_rate=16000)
58 )
59 finally:
60 client.disconnect(terminate=True)
61
62if __name__ == "__main__":
63 main()