Head to head · Speech-to-text · October 2026 research run

Granite Speech 5.0 2B vs Qwen3-Omni-30B-A3B-Instruct

Granite Speech 5.0 2B scores 61 (C) on agent readiness against Qwen3-Omni-30B-A3B-Instruct's 41.8 (E), and leads in 3 of 4 scored categories. Qwen3-Omni-30B-A3B-Instruct leads on agent interface. Both do speech-to-text.

Best speech-to-text APIs for AI agents · All 386 stt comparisons

Best open-weight models you download and run yourself for AI agents · All 6359 open weights comparisons

Best conversational voice-agent APIs · All 581 voice agents comparisons

Which one, for what

Granite Speech 5.0 2B C

Best for Agents that need to transcribe or translate short recordings in the six supported languages on modest hardware

Ahead on

  • Reach, 95 against 55
  • Risk, 70 against 55
  • Documentation and upkeep, 92 against 26

Watch for

About two minutes of audio per request, so long recordings must be split

Qwen3-Omni-30B-A3B-Instruct E

Best for Agents on a machine with about 96 GB to spare that need one local model to hear, see and answer by voice

Ahead on

  • Agent interface, 60 against 55

Watch for

Only a 70.5 GB BF16 build, about 85 GB to run, with no quantised build from Alibaba

Why the edge

Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.

Documentation and upkeep Granite Speech 5.0 2B +66

Granite Speech 5.0 2B 92

Model card 17, Intended use, limitations, the architecture, the size, the 16K positions and two-minute segments, and the languages are on the card. Training data 20, the data is listed with sources and sizes: a 39-row table giving each corpus, its task, its hours and a link to where it comes from, with the synthetic sets described. Last change 20, the last commit, on 6 November 2026, updated the card, 4 days before this check. Responsiveness 20, Both discussions that aren't pull requests (21 and 28 October 2026) have a reply from an ibm-granite member. Version policy 5, granite-speech-4.1-2b stays in its own repository and 5.0 came out in a new one, which names its predecessor and gives a release date. File health 10, Config, template and card agree on the architecture and the 16K positions. 17 + 20 + 20 + 20 + 5 + 10 = 92.

Qwen3-Omni-30B-A3B-Instruct 26

Model card 11, intended use, architecture, parameters and languages are there, limitations, context and a cut-off aren't. Training data 5, the report's description has no cut-off. Last change 0, nothing that runs the model has changed for over a year. Responsiveness 0, Qwen answered none of the 40 most recent discussions. Version policy 5, Qwen2.5-Omni kept without notes. File health 5, contradictory licence and language metadata and an unanswered report about long audio.

Reach Granite Speech 5.0 2B +40

Granite Speech 5.0 2B 95

Memory 30, the smallest build listed that keeps 4 bits is IBM's Q4_K_M GGUF, 1.14 GB with the 1.16 GB audio projector, and 2.30 GB × 1.2 = 2.8 GB, within 16 GB. IBM recommends Q8_0, 3.12 GB with the projector. Runtimes 20, Released Transformers 5.22.2 and vLLM 0.33.0 have the granite_speech model, llama.cpp b12242 has its converter and audio front end, and Ollama carries it as ibm/granite5-speech, which the card says was tested with v0.40.15. Builds 15, IBM publishes GGUF builds at fourteen quantised precisions, from Q2_K to Q8_0, with the audio projector. Terms 15, Apache 2.0 in the metadata and on the card, with nothing added. Download 10, the Hub API reports gated false for both repositories on 10 November 2026, so the files download with no account and nothing to accept. Hosted 5, IBM runs a Hugging Face Inference Endpoint that serves this model through an OpenAI-compatible API, with the address and code on the card. 30 + 20 + 15 + 15 + 10 + 5 = 95.

Qwen3-Omni-30B-A3B-Instruct 55

Memory earns 10, because the only build is the 70.5 GB BF16 checkpoint, about 85 GB with a fifth added, which fits only the reference machine's band. Runtimes earn 20. Transformers runs the whole model, and released vLLM, SGLang and llama.cpp run its Thinker with text out, while Ollama and LM Studio have nothing. Builds score 0, with no FP8, 4-bit or GGUF build from Alibaba. Apache 2.0 with nothing added gives terms the full 15 and the ungated repository gives download the full 10. Hosted too scores 0, since no provider serves this checkpoint and Alibaba's API serves a different Flash model.

Risk Granite Speech 5.0 2B +15

Granite Speech 5.0 2B 70

File safety 25, safetensors and GGUF only, no .bin, .pt or .pth files and no Python in either repository. Provenance 15, the files sit in the ibm-granite organisation, which IBM's Granite docs link to (10). Safety evaluation 0, no safety results on the card. Agent guidance 10, the card says what the model does with a prompt it doesn't know: it ignores an unfamiliar or malformed prompt and transcribes, which it says limits how audio can steer the system. Licence risk 15, Apache 2.0 with no use policy, no threshold and no right to change the terms. Security programme 5, www.ibm.com/.well-known/security.txt names IBM PSIRT, read for the Granite 4.2 3B listing on 4 November 2026 (5). 25 + 15 + 0 + 10 + 15 + 5 = 70.

Qwen3-Omni-30B-A3B-Instruct 55

File safety 25, safetensors only and no code in the repository, so the cookbook's trust_remote_code flag runs nothing. Provenance 15, files in the Qwen organisation with a checksum on every file. Safety evaluation 0 and agent guidance 0, nothing published, though spoken input can trigger tool calls. Licence risk 15, plain Apache 2.0. Security programme 0, no security contact, disclosure policy or advisories for Qwen.

Agent interface Qwen3-Omni-30B-A3B-Instruct +5

Granite Speech 5.0 2B 55

Chat template 20, chat_template.jinja in the repository (193 characters). Tool-calling format 25, Read for a speech model as what it takes and returns. Trained tool calling 10, Read for a speech model as the inputs it was trained to use. Structured output 0, Read for a speech model as typed outputs. Reasoning control 0, A speech model with no reasoning. Context 0, the language model is extended to 16K positions, per the card and config.json (16,384), below the 32K band, and the card says to send audio in segments of about two minutes. 20 + 25 + 10 + 0 + 0 + 0 = 55.

Qwen3-Omni-30B-A3B-Instruct 60

Chat template 20, a Jinja file in the repository. Tool-calling format 10, the cookbook shows how tools are declared and calls come back and the card covers audio, image and video input and speech output, but no parser is named. Trained tool calling 20, two calls in one turn from speech in the cookbook. Structured output 5, speech in a chosen voice and text-only output are documented, with no JSON. Reasoning control 0, no thinking in this edition. Context 5, 65,536 tokens in the config and trained at 32,768.

Score by category

CategoryWeight this runGranite Speech 5.0 2BQwen3-Omni-30B-A3B-InstructEdge
Capability35%pendingpendingpendingnot scored in this run
Reach25%259555Granite Speech 5.0 2B +40
Risk20%207055Granite Speech 5.0 2B +15
Agent interface10%105560Qwen3-Omni-30B-A3B-Instruct +5
Documentation and upkeep10%109226Granite Speech 5.0 2B +66
Negative events≤1500
TotalC 61/100E 41.8/100

Facts side by side

FactGranite Speech 5.0 2BQwen3-Omni-30B-A3B-Instruct
KindOpen-weight modelOpen-weight model
VendorIBMAlibaba (Qwen team)
Hosted endpointno (local only)no (local only)
Transports
AuthNoneNone
PricingFreeFree
x402nono
LicenceApache-2.0Apache-2.0
Read-only variant documentednono
llms.txtnono
Last release2026-11-062025-09-22
Terms last updatedno document linkedno document linked
Privacy policy last updatedno document linkedno document linked
Agent reviewsnone2/5 (4)

Verdicts

Granite Speech 5.0 2B

A small, well-kept speech model with a clean licence: six languages, translation, keyword lists, IBM's own GGUF and an Ollama entry, a signed repository and training data listed corpus by corpus. It handles about two minutes of audio at a time and returns plain text, with no timestamps or speakers, and publishes no safety results.

Qwen3-Omni-30B-A3B-Instruct

An omni-modal cousin that listens, watches and reads, then answers in text or one of three voices, with tool calls from spoken requests, under plain Apache 2.0. Its only build, BF16, needs about 85 GB, and speech out needs Transformers or vLLM-Omni. The main risk is no answers from Qwen and no safety work for speech-driven actions.

Before you call either

Granite Speech 5.0 2B

  1. Split recordings into segments of up to about two minutes of 16 kHz mono audio before sending them
  2. Use the card's prompt for the task word for word, such as transcribe the speech with proper punctuation and capitalization.
  3. Use Q8_0. IBM says lower precisions lose accuracy on audio over about a minute
  4. To spell names and jargon right, add a keyword list to the prompt, up to 2,000 terms
  5. With vLLM, serve with --max-model-len 2048, as the card does
  6. An unknown prompt falls back to transcription, so check that the output is the task you asked for

Qwen3-Omni-30B-A3B-Instruct

  1. For text answers, mkdir -p media && vllm serve Qwen/Qwen3-Omni-30B-A3B-Instruct --dtype bfloat16 --max-model-len 32768 --allowed-local-media-path "$(pwd)/media" with vLLM 0.11.1 or later serves the Thinker on an OpenAI-compatible API
  2. The card's command passes --allowed-local-media-path /, which lets anyone who can reach the server have it read any file on the machine through a file:// URL. Point it at a dedicated folder that holds only the media you mean to send, as above, and give vLLM an absolute path
  3. Send audio as audio_url and images as image_url content parts; vLLM serve doesn't take use_audio_in_video, so pass a video's audio separately
  4. For speech out, load Qwen3OmniMoeForConditionalGeneration in Transformers 4.57.0 or later with qwen-omni-utils, pick speaker Ethan, Chelsie or Aiden, and write the returned waveform at 24 kHz
  5. Call model.disable_talker() or pass return_audio=False when you only need text, which saves about 10 GB and time
  6. Parse tool calls as JSON inside <tool_call> tags yourself, since no parser is named, and confirm actions triggered by speech before running them
  7. Keep use_audio_in_video the same across every step of a conversation, the card warns results go wrong otherwise
  8. Budget memory for video, the card's table rises from 78.85 GB for 15 seconds to 144.81 GB for 120 seconds in BF16

Questions

Which is better for AI agents, Granite Speech 5.0 2B or Qwen3-Omni-30B-A3B-Instruct?

Granite Speech 5.0 2B scores 61 (C) on agent readiness against Qwen3-Omni-30B-A3B-Instruct's 41.8 (E), and leads in 3 of 4 scored categories. Qwen3-Omni-30B-A3B-Instruct leads on agent interface.

Other comparisons with Granite Speech 5.0 2B or Qwen3-Omni-30B-A3B-Instruct

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.