Fun-ASR vs Fun-ASR Flash
Which one, when — curated verdict, not a benchmark table
Same $0.0021 per audio minute, so pick on shape rather than price: fun-asr is the async file model — up to 12 hours and 2GB, with speaker diarization, hotwords and sentence/word timestamps — while fun-asr-flash answers synchronously, capped at 5 minutes and 2GB, with streaming and domain-term context injection but no diarization or timestamps. The 30-language list is the same on both. Pick fun-asr for recordings, fun-asr-flash for short clips answered in the request.
Pricing
| Fun-ASR | Fun-ASR Flash | Δ | |
|---|---|---|---|
| Per audio minute | $0.0021 | $0.0021 | = |
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 | Fun-ASR Flash | |
|---|---|---|
| Speaker diarization | yes | no |
| Streaming | no | yes |
| Timestamps | yes | — |
Specs
| Fun-ASR | Fun-ASR Flash | |
|---|---|---|
| Input modalities | audio | audio |
| Output modalities | text | text |
| Released | 2025-08-22 | 2026-06 |
| Limits | Async file transcription up to 12h / 2GB hotwords + speaker diarization sentence/word timestamps 30+ languages incl. Chinese dialects | Synchronous fast recognition, <=5 min / <=2GB per audio context injection for domain terms 30+ languages no diarization |
| Languages | Multilingual with dialects, 30 languages: 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 | 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 |
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 · Fun-ASR Flash
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",
# model="fun-asr-flash", # 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",
// model: "fun-asr-flash", // 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" \
# -F model="fun-asr-flash" \ # 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",
// Model: "fun-asr-flash", // 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")
// .model("fun-asr-flash") // 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 or Fun-ASR Flash?
They list the same per audio minute ($0.0021), so price does not decide this one — see the specs and capabilities below.
Can I A/B test Fun-ASR against Fun-ASR Flash 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 and Fun-ASR Flash 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.