TranscriptionForm component provides a comprehensive UI for configuring all ElevenLabs Speech-to-Text API options, handling file uploads, and submitting transcription requests.
Component Props
string
required
ElevenLabs API key for authentication
File | null
required
Selected audio or video file for transcription
TranscriptOptions
required
Current transcription configuration options
boolean
required
Loading state indicating if transcription is in progress
string | null
required
Error message to display if transcription fails
(value: string) => void
required
Callback fired when API key input changes
(file: File | null) => void
required
Callback fired when a file is selected or cleared
(options: TranscriptOptions) => void
required
Callback fired when any transcription option changes
SubmitEventHandler<HTMLFormElement>
required
Form submit handler for initiating transcription
TypeScript Interface
Usage Example
Configuration Options
The form provides inputs for all ElevenLabs Speech-to-Text API parameters:Model Selection
Select between Scribe V1 and Scribe V2 models:Language Configuration
Optional language code input (e.g., “en”, “es”, “fr”):Timestamps Granularity
Control the level of timestamp detail:Speaker Detection (Diarization)
Number of Speakers
Optional input (1-32) for specifying speaker count:Temperature Control
Adjust model randomness (0.0-2.0):Seed for Reproducibility
Keyterms
Comma-separated list of important terms:Additional Options
- Tag Audio Events: Detect non-speech audio like music, applause
- Multi-channel Audio: Process multi-channel audio files
- Entity Detection: Detect entities (e.g., “pii”, “phi”, “all”)
- Diarization Threshold: Fine-tune speaker detection (0.0-1.0)
File Handling
The component uses a ref for the file input to enable programmatic clearing:Error Display
Errors are displayed in a prominent card:Submit Button States
The submit button reflects the current state:Dependencies
Source Location
/home/daytona/workspace/source/src/features/speech-to-text-playground/transcription-form.tsx