Apriel Voice 27B Preview

Apriel Voice 27B Preview

An open model for speech, reasoning, and tool use from ServiceNow

Apriel Voice 27B Preview understands spoken requests, reasons over conversational context, and generates text responses and tool calls through a shared Gemma 4 backbone. It adds a speech interface while retaining text and image input capabilities. Pair it with an external speech synthesizer to build interactive voice assistants, customer support workflows, and spoken tool use.

Try Apriel Live · Read the blog · Technical report

Model capabilities

Apriel Voice architecture

Capability What it supports
Speech understanding Transcription, translation, and spoken question answering.
Reasoning and tool use Following instructions, handling multi-step requests, and generating structured tool calls.
Multimodal context Audio, text, images, and tool results in a shared conversation.
Voice applications Text responses paired with external speech synthesis and application-managed turn-taking.

The model supports transcription, speech translation, spoken instruction following, reasoning, and function calling. The application executes tools and returns their results to the conversation. Real-time voice interaction is supported by the application and serving stack; the checkpoint itself generates text and tool calls rather than native full-duplex speech.

A Whisper large-v3-turbo speech encoder connects to the Gemma 4 26B-A4B backbone through a learned projector. Training first aligns this speech interface, then adapts it with the backbone using speech tasks and text replay. Cross-entropy and teacher-distillation supervision vary by data source; the technical report describes the full recipe.

Long audio

The processor automatically splits longer 16 kHz mono recordings into 30-second chunks. In testing, we observed good performance on continuous recordings up to around 30 minutes. Longer recordings are supported, but performance can decline as duration grows; thinking mode is recommended for longer audio.

Audio chunks and the rest of the conversation share the total context budget. Practical input length also depends on GPU memory and the encoder cache. The serving examples below include settings for 30-minute audio, with optional settings for one-hour input.

English results

Apriel Voice achieves 51.27% EVA-A, 74.13% EVA-X, and 65.51% τ-Voice task success, with 1.91 seconds mean τ-Voice response latency. On LibriSpeech, word error rate is 2.23% on test-clean and 5.15% on test-other; lower WER is better.

System Type Source EVA-A ↑ EVA-X ↑ τ-Voice pass@1 ↑ Latency (s) ↓
GPT Realtime 2.1 S2S Proprietary 59.03 61.6 69.82 1.55
Gemini-3.8 Live Extended Thinking S2S Proprietary 54.82 73.5 84.19 1.50
Flux + Gemma 4-26B 3-stage Mixed 36.07 29.22 65.92 2.92
Parakeet + Gemma 4-26B 3-stage Open source 39.97 3.93 67.78 3.01
UltraVox v0.6 (Qwen) 2-stage Open source 8.94 1.91 26.80 3.95
Gemma 4-12B-IT 2-stage Open source 13.25 5.97 24.20 3.61
Audex-30B-A3B 2-stage Open source 5.66 8.2 17.15 2.83
Apriel Voice 27B Preview 2-stage Open source 51.27 74.13 65.51 1.91

EVA-A measures service accuracy and EVA-X measures conversational experience. EVA-A/X and τ-Voice pass@1 use a 0–100 scale; higher is better. Headline EVA and τ-Voice results use equal-domain means, rather than weighting domains by their number of cases. Apriel Voice uses thinking mode for these evaluations.

S2S denotes native speech-to-speech systems, which use their own synthesis. Three-stage systems use ASR + LLM + TTS; two-stage systems connect a speech interface to a reasoning backbone and use external synthesis. All evaluated two- and three-stage systems use Cartesia Sonic 3.5. Latency describes the complete evaluated voice system, including response generation and synthesis, and depends on deployment settings.

Capability comparison across audio reasoning, responsiveness, task success, and EVA

The radar's audio reasoning axis is the mean of eight benchmarks: BFCL, Big Bench Audio, IFEval, MT-Bench, Spoken SQuAD, Alpaca Audio, OpenHermes, and GSM8K (85.84 for Apriel Voice). Its responsiveness axis transforms latency into a higher-is-better score; it is not a measured accuracy. For latency t in seconds, the score is 100 × clip((4.0 − t) / (4.0 − 0.25), 0, 1).

English EVA accuracy and conversational experience comparison

τ-Voice task success and response latency comparison

Text reasoning and tool use

These results use text input in thinking mode for both Gemma 4 26B-A4B and Apriel Voice. Scores use a 0–100 scale; higher is better. The τ² result is the mean across three domains with GPT-5.2 as the user simulator.

Benchmark Gemma 4 26B-A4B Apriel Voice
MMLU-Pro 85.27 84.42
GPQA Diamond 77.80 80.40
AIME 2024 92.00 92.00
AIME 2025 81.67 81.67
MATH-500 92.76 92.88
AMC 2023 100.00 100.00
τ² (GPT-5.2 user simulator) 68.93 70.95

English speech recognition

Word error rate (WER, %) on selected English benchmarks; lower is better.

Benchmark Apriel Voice WER ↓
LibriSpeech test-clean 2.23
LibriSpeech test-other 5.15
GigaSpeech 10.20
μ-Bench (en-US) 10.76
FLEURS (en-US) 3.55
Earnings21 11.25

Speech reasoning and instruction following

These results use audio input in thinking mode. Scores use a 0–100 scale; higher is better. The mean gives equal weight to each of the eight benchmarks.

Benchmark Apriel Voice ↑
BFCL 81.13
Big Bench Audio 98.90
IFEval 86.47
MT-Bench 86.19
Spoken SQuAD 82.24
Alpaca Audio 76.8
OpenHermes 81.8
GSM8K 93.18

See the technical report for domain breakdowns, evaluation protocols, and text and image evaluations.

Standard serving

We provide a standard vLLM Docker image on v0.32.0 with Apriel Voice support. The command below serves the model on four GPUs and exposes an OpenAI-compatible API on port 8000.

Docker image: docker.io/amant555/vllm_apriel_voice:plain-26b-v0.32.0

vllm serve \
  --model ServiceNow-AI/Apriel-Voice-27B-preview \
  --trust-remote-code \
  --served-model-name Apriel-Voice-27B \
  --dtype bfloat16 \
  --host 0.0.0.0 --port 8000 \
  --max-model-len 262144 \
  --max-num-batched-tokens 16384 \
  --tensor-parallel-size 4 \
  --gpu-memory-utilization 0.95 \
  --speculative-config '{"model":"google/gemma-4-26B-A4B-it-assistant","num_speculative_tokens":3}' \
  --default-chat-template-kwargs '{"enable_thinking":true}' \
  --enable-auto-tool-choice \
  --tool-call-parser gemma4 \
  --reasoning-parser gemma4

VLLM_MAX_AUDIO_DECODE_DURATION_S controls the audio duration the server admits for decoding. --max-num-batched-tokens sets the batch budget used to accommodate encoded audio features. Both serving examples use a 1,800-second admission limit and a 16,384-token budget. For one-hour input, change these to VLLM_MAX_AUDIO_DECODE_DURATION_S=3600 and --max-num-batched-tokens 32768, subject to total context and available memory; these settings admit longer audio without guaranteeing its quality.

Optimized serving

The optimized configuration with provided image delivers approximately 2× higher measured output-token throughput compared with the baseline Apriel-enabled vLLM configuration on four H100 80 GB GPUs.

The optimized image was used for the EVA and τ-Voice evaluations and the Apriel Live deployment.

The four-GPU configuration below matches the optimized launch settings, with public model identifiers. The image retains its baked-in environment optimizations, including FlashInfer communication, fused Gemma operations, assistant sampling, and H100 tuning. An explicit entrypoint starts vLLM directly while preserving those image environment defaults.

Docker image: docker.io/amant555/vllm_apriel_voice:optimised-26b-v0.32.0

vllm serve \
  --model ServiceNow-AI/Apriel-Voice-27B-preview \
  --trust-remote-code \
  --served-model-name Apriel-Voice-27B \
  --dtype bfloat16 \
  --max-model-len 262144 \
  --host 0.0.0.0 \
  --port 8000 \
  --async-scheduling \
  --enable-auto-tool-choice \
  --tool-call-parser gemma4 \
  --reasoning-parser gemma4 \
  --no-enable-log-requests \
  --max-num-batched-tokens 16384 \
  --gpu-memory-utilization 0.90 \
  --speculative-config '{"model":"google/gemma-4-26B-A4B-it-assistant","num_speculative_tokens":7,"draft_sample_method":"probabilistic","rejection_sample_method":"standard","num_speculative_tokens_per_batch_size":[[1,1,5],[2,100,7]]}' \
  --default-chat-template-kwargs '{"enable_thinking":true}' \
  --max-num-seqs 50 \
  --tensor-parallel-size 4 \
  --distributed-executor-backend mp \
  --compilation-config '{"max_cudagraph_capture_size":1024,"pass_config":{"fi_allreduce_fusion_max_size_mb":8}}' \
  --attention-config '{"backend":"FLASH_ATTN","flash_attn_version":4}' \
  --block-size 32

Inference examples

General instruction-following uses temperature 1.0, top-p 0.95, and top-k 64. Recognition and translation evaluations use temperature 0.4 with the same top-p and top-k. Enable thinking for reasoning and workflow tasks; the transcription examples below disable it. API requests use the served name Apriel-Voice-27B.

OpenAI-compatible API: audio input

from openai import OpenAI

client = OpenAI(base_url="http://localhost:8000/v1", api_key="EMPTY")
audio_url = (
    "https://huggingface.co/ServiceNow-AI/Apriel-Voice-27B-preview/"
    "resolve/main/assets/test_audio_short.wav"
)

response = client.chat.completions.create(
    model="Apriel-Voice-27B",
    messages=[{
        "role": "user",
        "content": [
            {"type": "audio_url", "audio_url": {"url": audio_url}},
            {"type": "text", "text": "Transcribe this speech in its original language."},
        ],
    }],
    temperature=0.4,
    top_p=0.95,
    max_tokens=1024,
    extra_body={
        "top_k": 64,
        "chat_template_kwargs": {"enable_thinking": False},
    },
)
print(response.choices[0].message.content)

For text-only requests, set the user message's content to a string. For function calling, pass OpenAI-compatible tools definitions and inspect response.choices[0].message.tool_calls.

Transformers: audio input

import urllib.request

import librosa
import torch
from transformers import AutoModel, AutoProcessor

model_id = "ServiceNow-AI/Apriel-Voice-27B-preview"
model = AutoModel.from_pretrained(
    model_id, dtype=torch.bfloat16, device_map="auto", trust_remote_code=True
)
processor = AutoProcessor.from_pretrained(model_id, trust_remote_code=True)
audio_url = (
    "https://huggingface.co/ServiceNow-AI/Apriel-Voice-27B-preview/"
    "resolve/main/assets/test_audio_short.wav"
)
audio_path, _ = urllib.request.urlretrieve(audio_url)
audio, sr = librosa.load(audio_path, sr=16000, mono=True)
messages = [{
    "role": "user",
    "content": [
        {"type": "audio", "audio": audio},
        {"type": "text", "text": "Transcribe this speech in its original language."},
    ],
}]

# The tokenizer owns the chat template and its thinking flag.
text = processor.tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True, enable_thinking=False
)
inputs = processor(text=text, audio=audio, sampling_rate=sr, return_tensors="pt")
inputs = {
    key: value.to(model.device) if isinstance(value, torch.Tensor) else value
    for key, value in inputs.items()
}
input_len = inputs["input_ids"].shape[-1]
with torch.inference_mode():
    output = model.generate(
        **inputs, max_new_tokens=1024, do_sample=True,
        temperature=0.4, top_p=0.95, top_k=64
    )
decoded = processor.decode(output[0][input_len:], skip_special_tokens=False)
print(processor.parse_response(decoded))

Limitations

  • Outputs and tool calls can be incorrect or biased. Validate actions and factual claims, and apply human oversight where errors have significant consequences.
  • Audio should be 16 kHz mono. Multilingual performance is uneven; English results do not imply comparable quality across languages. Noisy and distant-microphone speech remain challenging.
  • Faithfulness and reliable completion of complex tool workflows remain limitations; validate tool arguments, results, and final task completion.
  • Longer recordings can produce repetition or lose coherence; use thinking mode and the long-audio guidance when preparing inputs.
  • Speech synthesis and turn handling are application components. End-to-end experience depends on those components as well as the model and hardware.
  • Benchmark scores describe the evaluated configurations. They do not guarantee the same accuracy, throughput, or latency on a different workload or deployment.

License

MIT.

Citation

@misc{tiwari2026aprielvoice27bpreview,
  title={Apriel Voice 27B Preview},
  author={Aman Tiwari and
    Akshay Kalkunte and
    Akintunde Oladipo and
    Jash Shah and
    Tara Bogavelli and
    Hoang Nguyen and
    Nishanth Madhusudhan and
    Vishal Juneja and
    Sridhar Nemala and
    Srinivas Sunkara and
    Sathwik Tejaswi Madhusudhan and
    Shruthan Radhakrishna and
    Masoud Hashemi and
    Kelechi Ogueji and
    Khalil Slimi and
    Saloni Mittal and
    Pulkit Pattnaik and
    Shashank Maiya and
    Dhruv Jhamb and
    Esakkivel Esakkiraja and
    Katrina Stankiewicz and
    Gabrielle Gauthier Melançon and
    Fanny Riols and
    Amit Saha and
    Lakshmi Sirisha Chodisetty and
    Nitin Aggarwal and
    Anil Madamala and
    Sagar Davasam and
    Segan Subramanian and
    Vikas Yadav and
    Sai Rajeswar Mudumba},
  year={2026},
  url={https://huggingface.co/ServiceNow-AI/Apriel-Voice-27B-preview}
}
Downloads last month
2
Safetensors
Model size
27B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Space using ServiceNow-AI/Apriel-Voice-27B-preview 1