# Choosing an Endpoint Reson8 offers three speech-to-text endpoints. Which one to use depends on where your audio comes from and what you want to do with the result. - **[Prerecorded](/documentation/speech-to-text/prerecorded/)** - Upload a complete audio file over REST and receive the full transcript in one response. - **[Realtime](/documentation/speech-to-text/realtime/)** - Stream live audio over WebSocket and receive transcripts as the speech is recognized. - **[Turns](/documentation/speech-to-text/turns/)** - Stream live audio over WebSocket and receive events when a speaker starts and stops talking, with the transcript of each turn. ## Common Use Cases | Use case | Endpoint | |----------------------------------------------------------------------|--------------| | Quickly transcribing a meeting or live stream after it has finished | Prerecorded | | Processing an audio archive | Prerecorded | | Showing live subtitles during a video call, webinar, or broadcast | Realtime | | Dictating notes or reports into your application, hands-free | Realtime | | Building a voice agent that responds the moment the user stops speaking | Turns | | Stopping a speaking voice agent when the user interrupts (barge-in) | Turns | ## How They Differ | | Prerecorded | Realtime | Turns | |---------------------|------------------------|--------------------------------|--------------------------------| | Protocol | REST (`POST`) | WebSocket | WebSocket | | Input | Complete audio file | Live audio stream | Live audio stream | | Output | Full transcript | Interim and final transcripts | Turn start/end events with transcripts | | [Diarization](/documentation/speech-to-text/diarization/) | Yes | Yes | No | | [Custom models](/documentation/speech-to-text/customization/custom-models/) | Yes | Yes | Yes |