NativePort

Turn recordings into transcripts your app can use

Make interviews and meetings searchable, or prepare audio for a summary. Compare transcription APIs with speaker labels and word timestamps.

Choose what your transcript needs to include

For search or a summary, the transcript text may be all you need. If you want to show who said what, request speaker labels. Word timestamps let your app jump from a line of text to the corresponding moment in the recording.

The ElevenLabs example below returns text and a word list, with speaker IDs when diarization is enabled. Fish Audio offers another transcription option. Test a recording that reflects your actual audio, including background noise and multiple speakers if those are common in your app.

Compare costs using the length and number of your recordings. NativePort bills ElevenLabs at a flat approximation per request and Fish Audio transcription per second. The example below estimates both, using rates you should check before running a batch.

An audio-capable model is also an option when you only need an answer about a recording. That requires a supported model and access to the relevant provider-native route.

Try it step by step

Try a request

Upload your recording in the multipart form field named file. This example also requests speaker labels.

curl
curl https://api.nativeport.ai/elevenlabs/v1/speech-to-text \
  -H "Authorization: Bearer $NATIVEPORT_API_KEY" \
  -F "[email protected]" \
  -F "model_id=scribe_v1" \
  -F "diarize=true"
example response
{
  "language_code": "en",
  "language_probability": 0.98,
  "text": "So the first thing we changed was the billing model.",
  "words": [
    {"text": "So", "start": 0.12, "end": 0.28, "speaker_id": "speaker_0"}
  ]
}

Compare providers

Compare starting prices and the tasks each provider supports. Features and usage affect the total cost. For measured results, see the benchmarks and how we test.

ProviderBest suited forStarting price
ElevenLabs Transcribe audio with speaker labels and word timestamps. $0.025 per call
Fish Audio Transcribe recordings with per-second billing. metered by Fish Audio
OpenAI Ask supported audio models about a recording. metered by OpenAI
Serper Search for transcription documentation and comparisons. $0.001 per call
Apify Collect source audio with an available Actor. metered by Apify

Build on an example

Set your NativePort API key and adapt an example to your own data. Outputs below illustrate the response format.

Estimate transcription costs for different recording lengths

A local estimate using the rates below. Check the provider pages for current prices; this script makes no API requests.
python
# ElevenLabs is billed here as a flat approximation per call; Fish Audio
# bills per second of audio. Where the lines cross depends on your files.
FLAT_PER_CALL = 0.025          # see /providers/elevenlabs/
PER_SECOND    = 0.0001        # see /providers/fishaudio/

for minutes in (0.5, 2, 10, 60):
    secs = minutes * 60
    flat, metered = FLAT_PER_CALL, secs * PER_SECOND
    winner = "flat (ElevenLabs)" if flat < metered else "per-second (Fish Audio)"
    print(f"{minutes:>5} min   flat ${flat:.4f}   metered ${metered:.4f}   → {winner}")
example output
$ python which_asr.py
  0.5 min   flat $0.0250   metered $0.0030   → per-second (Fish Audio)
    2 min   flat $0.0250   metered $0.0120   → per-second (Fish Audio)
   10 min   flat $0.0250   metered $0.0600   → flat (ElevenLabs)
   60 min   flat $0.0250   metered $0.3600   → flat (ElevenLabs)

More ways to use these APIs

Read your text aloud

Turn a transcript or generated answer into audio with Fish Audio or ElevenLabs. Send the text and choose the supported voice options. Check each provider’s billing units; generating speech and transcribing a recording use different rates.

Fish Audio · ElevenLabs · /fishaudio/v1/tts

Send audio to a multimodal model

If you only need an answer about a recording, an audio-capable model can process it directly. This example route uses OpenAI’s native API, which is enabled per account during the pilot. An account without that access receives a 404. Check the supported model and audio format before using it.

OpenAI · /openai/v1/chat/completions

Identify and label individual speakers

Request diarization with the ElevenLabs transcription call to get speaker IDs alongside the words. Group them into speaking turns for an interview or meeting transcript. The IDs distinguish voices; your app supplies names if it knows who is speaking.

ElevenLabs · /elevenlabs/v1/speech-to-text

Compare transcription options for your recordings

Try the same representative recording with ElevenLabs and Fish Audio, then compare the text, timing information, and cost. The provider catalog lists current entry prices. A web search can also help you research options outside NativePort.

Serper · /serper/search

Use it with NativePort

Try transcription providers with one NativePort key and a shared balance. Use the same account for a model that summarizes or analyzes the transcript.

Before you start

How do I include speaker labels?

In the ElevenLabs request, set diarize=true. The word list includes speaker IDs that you can group into speaking turns. These labels distinguish voices; they do not identify people by name.

Which option costs less?

Compare the flat request rate with the per-second rate multiplied by your audio duration. At the example rates, Fish Audio costs less for short clips and ElevenLabs for longer single requests. File limits or splitting a recording can change the total.

Do I need to specify the language?

The ElevenLabs example detects it and returns language_code with a confidence value. Review uncertain results against the recording, especially when audio is noisy or contains several languages.

Try it with $5 in credits