Instructions to use ServiceNow-AI/Apriel-Voice-27B-preview with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use ServiceNow-AI/Apriel-Voice-27B-preview with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("ServiceNow-AI/Apriel-Voice-27B-preview", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
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
| 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.
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).
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




