Get Nook
  1. Nook
  2. Labs
  3. nl.EB
  4. NL-2610.001

NL-2610.001Result[nl.EB]

audio.cpp on an RTX 4060: the CUDA build speaks more than twice as fast as Vulkan

The Nook team

Submitted 5 October 2026 · 3 min read

Abstract

Nook's speech translator can speak a translation in the speaker's own voice, using the audio.cpp engine. We first shipped audio.cpp's Vulkan build, which runs on any graphics card, then built the CUDA version for NVIDIA cards and timed the two back to back on an RTX 4060 with 8 GB. Cloning a voice to speak three lines took 8.2 seconds with CUDA and 18.3 seconds with Vulkan, and peak video memory was about half a gigabyte lower. It is one run of each, so we treat it as a first look, but the gap was large enough to move every NVIDIA card to the CUDA build in Nook 0.5.6, at the cost of a download of about a gigabyte.

Comments
RTX 4060 8 GB, Windows 11. Qwen3-TTS 0.6B voice cloning. One run per build, back to back.
Subjects
Engines and builds (nl.EB); Speech and audio (nl.SA); Performance (nl.PF)
Cite as
NL-2610.001 · usenook.ai/labs/audiocpp-cuda-vs-vulkan.html

Full text

Result

On an RTX 4060, audio.cpp's CUDA build cloned a voice and spoke three lines in 8.2 s. The Vulkan build took 18.3 s for the same job. Since Nook 0.5.6, NVIDIA cards get the CUDA build.

The question

Nook's speech translator, the Translate speech Nooklet, listens, translates and then speaks the translation, either in a standard voice or in a clone of the speaker's own. The speaking runs on audio.cpp, an engine for speech models. audio.cpp comes in a Vulkan build, which works on NVIDIA, AMD and Intel cards alike, and a CUDA build, which works only on NVIDIA cards and is far bigger to download. We shipped Vulkan first because it runs everywhere. The question was whether the CUDA build is worth its size for the many people with NVIDIA cards.

Setup

Setup
Graphics card
NVIDIA GeForce RTX 4060, 8 GB
System
Windows 11
Engine
audio.cpp, the Vulkan build and the CUDA 12.4 build
Voice
Qwen3-TTS 0.6B, cloning a voice from a short English recording
Job
Speak three translated sentences in the cloned voice
Measured
Time for the whole job; peak card memory from nvidia-smi, read every 250 ms
Runs
One per build, back to back

The job is Nook's own live test for the voice engine, which takes the build to use as a setting, so both builds did exactly the same work.

Results

Time to speak three lines in a cloned voiceSeconds, lower is better. RTX 4060, one run each.
  1. CUDA build8.2 s
  2. Vulkan build18.3 s
BuildTimePeak memory
CUDA 12.48.2 s3.4 GB
Vulkan18.3 s3.9 GB

The CUDA build needed 45% of the Vulkan build's time, and its peak memory was half a gigabyte lower.

What we did with it

Nook 0.5.6 moved every NVIDIA card to the CUDA build. AMD and Intel cards keep Vulkan, and computers without a usable graphics card run audio.cpp on the processor. Once the CUDA build is installed, Nook deletes the old Vulkan copy so the engine is not on disk twice.

The cost is the download. The CUDA build comes as two archives, 461 MB and 607 MB, because it carries NVIDIA's own libraries with it: the CUDA runtime, cuBLAS and cuFFT. For a feature you use often, a gigabyte once is a fair trade for halving every wait.

Limits

How sure we are. One run of each build, on one card, with one voice model and three sentences. We do not know how much the times vary from run to run, though a gap of more than two to one is unlikely to be noise alone. We did not note whether the memory figures had the desktop's own use taken off, so the half-gigabyte difference means more than the two totals. The proper comparison, with many runs and every engine Nook uses, is open as NL-2610.010.

Run it yourself

The test is speaks_with_the_real_engine in Nook's public source code. It is skipped in normal test runs, and reads the engine, its build and the voices from environment variables:

$env:NOOK_TEST_AUDIOCPP = "C:\path\to\audiocpp_cli.exe"
$env:NOOK_TEST_AUDIOCPP_BACKEND = "cuda"   # or vulkan, or cpu
$env:NOOK_TEST_VOICES = "C:\path\to\voices"
$env:NOOK_TEST_SPEECH = "C:\path\to\english-speech.wav"
$env:NOOK_TEST_OUT = "C:\path\to\output"
cargo test -p nook-core speaks_with_the_real_engine -- --ignored --nocapture

To read the card's memory while it runs, in a second window:

nvidia-smi --query-gpu=memory.used --format=csv,noheader,nounits -lms 250

Run it on your own GPU.

Create AI videos and images on your own computer with Nook. Open models, local generation, no generation credits.