Chirp 3 vs Seed ASR
Which one, when
Both bill per audio minute and both diarize; seed-asr-bigmodel is 8x cheaper at $0.002 against $0.016 and takes far longer files - up to 5 hours and 512MB in its async mode, against an hour for chirp-3's batch mode - with sentence and word timestamps. chirp-3 answers with breadth instead: 29 GA plus 82 preview locales, against a default set of Mandarin, English, Cantonese and Chinese dialects on seed-asr-bigmodel with 39 language keys pinnable explicitly. Pick on recording length and locale, not on price.
Pricing
Rates from the live catalogue at build time; each model page carries the current rate card.
Where they sit · price per audio minute across all 12 speech-to-text models on this billing unit (log scale)
Capabilities
Specs
| Chirp 3 | Seed ASR | |
|---|---|---|
| Input modalities | audio | audio |
| Output modalities | text | text |
| Released | 2025-10-13 | 2025-12-05 |
| Limits | Auto-detected audio decoding sync Recognize <1 min, BatchRecognize 1 min - 1 hr (<=20 min with word timestamps), StreamingRecognize for real-time speaker diarization in BatchRecognize and Recognize (14 languages) utterance-level timestamps (StreamingRecognize only), word-level timestamps listed as unsupported language-agnostic transcription 29 GA + 82 preview locales | Async audio-file mode: <512MB, <5 hours, OPUS/WAV/MP3/SPX/OGG/AMR/AAC/M4A (raw PCM also accepted), results returned within 3 hours and retained 7 days speaker diarization via enable_speaker_info (audio-file API only, best with <=10 speakers, no diarization on the streaming API) sentence + word segmentation with start_time/end_time via show_utterances language identification via enable_lid hotwords/context up to 800 tokens and 20 rounds per-call billing |
| Languages | 29 GA + 82 Preview locales (111 total) across StreamingRecognize, Recognize and BatchRecognize diarization covers 14 of them | With `language` empty the model covers Mandarin, English, Cantonese, Shanghainese, Minnan, Sichuan and Shaanxi dialects 39 language keys can be pinned explicitly (en-US, zh-CN, yue-CN, ja-JP, ko-KR, id-ID, es-MX, pt-BR, de-DE, fr-FR, fil-PH, ms-MY, th-TH, ar-SA, it-IT, bn-BD, el-GR, nl-NL, ru-RU, tr-TR, vi-VN, pl-PL, ro-RO, uk-UA, az-AZ, bg-BG, cs-CZ, da-DK, fi-FI, hi-IN, hu-HU, kk-KZ, km-KH, my-MM, no-NO, pa-PK, sv-SE, sw-KE, ur-PK), plus optional auto-detection (enable_auto_lang) |
Specs are transcribed from each vendor’s documentation; a row a vendor does not publish is left out rather than inferred. Full sources: Chirp 3 · Seed ASR
Switch between them with one line
Both ids are in every tab below; the highlighted pair of lines is the only edit. Same endpoint, same key, same request shape.
from openai import OpenAI
client = OpenAI(
base_url="https://synthorai.io/v1",
api_key="sk-syn-...",
)
resp = client.audio.transcriptions.create(
model="chirp-3",
# model="seed-asr-bigmodel", # uncomment this line, comment the one above
file=open("meeting.mp3", "rb"),
language="en",
)
print(resp.text)import OpenAI from "openai";
import fs from "node:fs";
const client = new OpenAI({
baseURL: "https://synthorai.io/v1",
apiKey: "sk-syn-...",
});
const resp = await client.audio.transcriptions.create({
model: "chirp-3",
// model: "seed-asr-bigmodel", // uncomment this line, comment the one above
file: fs.createReadStream("meeting.mp3"),
});
console.log(resp.text);curl https://synthorai.io/v1/audio/transcriptions \
-H "Authorization: Bearer sk-syn-..." \
-F model="chirp-3" \
# -F model="seed-asr-bigmodel" \ # uncomment this line, comment the one above
-F file=@meeting.mp3package main
import (
"context"
"fmt"
"os"
"github.com/openai/openai-go/v3"
"github.com/openai/openai-go/v3/option"
)
func main() {
client := openai.NewClient(
option.WithBaseURL("https://synthorai.io/v1"),
option.WithAPIKey("sk-syn-..."),
)
f, _ := os.Open("meeting.mp3")
resp, _ := client.Audio.Transcriptions.New(context.TODO(), openai.AudioTranscriptionNewParams{
Model: "chirp-3",
// Model: "seed-asr-bigmodel", // uncomment this line, comment the one above
File: f,
})
fmt.Println(resp.Text)
}import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.audio.transcriptions.*;
import java.nio.file.Paths;
OpenAIClient client = OpenAIOkHttpClient.builder()
.baseUrl("https://synthorai.io/v1")
.apiKey("sk-syn-...")
.build();
Transcription resp = client.audio().transcriptions().create(
TranscriptionCreateParams.builder()
.model("chirp-3")
// .model("seed-asr-bigmodel") // uncomment this line, comment the one above
.file(Paths.get("meeting.mp3"))
.build()).asTranscription();
System.out.println(resp.text());FAQ
Which is cheaper, Chirp 3 or Seed ASR?
Seed ASR is cheaper on the "Per audio minute" row ($0.002 vs $0.016, 8.0× apart). Other rows may point the other way; the table above carries the full rate card, and real cost depends on your mix.
Can I A/B test Chirp 3 against Seed ASR without two integrations?
Yes. Both are served through the same OpenAI-compatible endpoint with one API key. Switching is a one-line change to the model id, so you can route a fraction of traffic to each and compare bills directly.
Do Chirp 3 and Seed ASR support speaker diarization?
The capability table above answers this per model, straight from each vendor’s documentation. Diarization, streaming and timestamps are listed separately because models differ on all three.