Fun-ASR Flash vs Seed ASR
Which one, when — curated verdict, not a benchmark table
Per-minute rates are within a rounding error ($0.0021 against $0.002), which puts the choice entirely on capability: seed-asr-bigmodel diarizes on its audio-file API (documented best at 10 speakers or fewer), returns sentence and word timestamps and accepts up to 5 hours per file, while fun-asr-flash is synchronous only, capped at 5 minutes and 2GB, with no diarization but with context injection for domain terms. Pick fun-asr-flash for fast short-clip turnaround, seed-asr-bigmodel for anything long or multi-speaker.
Pricing
| Fun-ASR Flash | Seed ASR | Δ | |
|---|---|---|---|
| Per audio minute | $0.0021 | $0.002 | 1× |
Rates from the live catalog at build time; each model page carries the current card.
Where they sit — price per audio minute across all 11 speech-to-text models on this billing unit (log scale)
Capabilities
| Fun-ASR Flash | Seed ASR | |
|---|---|---|
| Speaker diarization | no | yes |
| Streaming | yes | yes |
| Timestamps | — | yes |
Specs
| Fun-ASR Flash | Seed ASR | |
|---|---|---|
| Input modalities | audio | audio |
| Output modalities | text | text |
| Released | 2026-06 | — |
| Limits | Synchronous fast recognition, <=5 min / <=2GB per audio context injection for domain terms 30+ languages no diarization | 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 | Multilingual with dialects, the same 30-language list as the Fun-ASR main versions: Chinese (Mandarin, Cantonese, Wu, Hokkien, Hakka, Gan, Xiang, Jin plus regional accents), English, Japanese, Korean, Vietnamese, Thai, Indonesian, Malay, Filipino, Hindi, Arabic, French, German, Spanish, Portuguese, Russian, Italian, Dutch, Swedish, Danish, Finnish, Norwegian, Greek, Polish, Czech, Hungarian, Romanian, Bulgarian, Croatian, Slovak | 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: Fun-ASR Flash · 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="fun-asr-flash",
# 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: "fun-asr-flash",
// 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="fun-asr-flash" \
# -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: "fun-asr-flash",
// 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("fun-asr-flash")
// .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, Fun-ASR Flash or Seed ASR?
Seed ASR is cheaper on per audio minute ($0.002 vs $0.0021, 1.0× apart). Other rows may point the other way — the table above carries the full card, and real cost depends on your mix.
Can I A/B test Fun-ASR Flash 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 model-string change, so you can route a fraction of traffic to each and compare bills directly.
Do Fun-ASR Flash 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.