ElevenLabs Scribe v2 is a high-accuracy batch speech-to-text model with built-in speaker diarization, word-level timestamps, and multichannel audio support. It integrates with the portableDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/phpaisdk/elevenlabs/llms.txt
Use this file to discover all available pages before exploring further.
Generate::transcription() API using Content::audio() to supply the audio, while ElevenLabs-specific controls are passed through providerOptions('elevenlabs', [...]).
Installation
Basic Usage
Pass a local file path toContent::audio(), select the scribe_v2 model, and call .run(). The result exposes the transcript text and detected language directly on the output object.
Remote URL Transcription
WhenContent::audio() receives an HTTPS URL, the adapter automatically sends it as a source_url multipart field instead of uploading the file. No manual option is required.
enable_logging is sent as a URL query parameter (?enable_logging=false), not as a multipart form field. The adapter handles this routing automatically — simply include it in providerOptions like any other field.Provider Options
A BCP-47 language code hint (e.g.
en, fr, de-DE). Providing a hint speeds up transcription and can improve accuracy for accented speech. When omitted, Scribe v2 auto-detects the language.Enable speaker diarization. When
true, each word in $result->output->segments includes a speaker identifier string such as "speaker_0".An array of domain-specific words or phrases that Scribe should recognize with higher priority. Useful for product names, technical vocabulary, and proper nouns.
Enable multichannel transcription. Each channel is transcribed independently. Segments in the result carry a
speaker value equal to the channel index ("0", "1", etc.).When
false, ElevenLabs does not store the request in your history. Sent as a URL query parameter, not a multipart field.Word-Level Segments
Whendiarize is enabled, or when the API returns word-level timing, $result->output->segments contains one TranscriptSegment per word with its start time, end time, and speaker label.
TranscriptionResponse Output Shape
| Property | Type | Description |
|---|---|---|
$result->output->text | string | Full transcript as a single string |
$result->output->language | string|null | BCP-47 language code detected by Scribe |
$result->output->segments | TranscriptSegment[] | Word-level segments (empty when no word data is returned) |
TranscriptSegment exposes:
| Property | Type | Description |
|---|---|---|
text | string | The word or token text |
start | float | Start time in seconds |
end | float | End time in seconds |
speaker | string|null | Speaker ID (diarization) or channel index (multichannel) |
Multichannel Transcription
For recordings with separate audio channels — such as two-party call recordings — setuse_multi_channel to true. ElevenLabs transcribes each channel independently and returns the results in a transcripts array. The adapter merges them into the standard output shape, and each segment’s speaker value reflects the channel index.
