Which Should You Use to Read Text Aloud on Your Own PC, VOICEVOX or Qwen3-TTS? I Measured Speed on an RTX 3070 With 8GB of VRAM
I wanted my own PC to read text aloud. Two well-known options that run locally are VOICEVOX and Qwen3-TTS (TTS stands for Text To Speech, also called speech synthesis). Both run on a PC at home. But I could not find out how fast they read aloud on a GPU with 8GB of VRAM (the dedicated memory a GPU carries), or how much VRAM they use. In this article I ran VOICEVOX and Qwen3-TTS (two models of different sizes, three setups in total) on an RTX 3070 with 8GB of VRAM and measured speed and VRAM.
As of 28 October 2026.
What I measured
I turned the same text (the first 40 sentences of “Run, Melos!" from Aozora Bunko, 856 characters) into speech with VOICEVOX and Qwen3-TTS and measured the time it took. Speed is expressed as RTF (Real Time Factor): the time taken to make the audio divided by the length of the audio produced. A smaller value is faster, and a value below 1.0 means the audio was made in less time than its own length (faster than real time). For Qwen3-TTS I also recorded the peak VRAM usage during the run [MiB].
I did not evaluate sound quality (how good the voice is or how easy it is to understand).
Purpose
I check three things. First, how fast (in RTF) VOICEVOX and Qwen3-TTS read aloud on an RTX 3070 with 8GB of VRAM. Second, how much VRAM Qwen3-TTS uses. Third, how speed and VRAM differ between the larger Qwen3-TTS model (1.7B) and the smaller one (0.6B).
Method
What I used
| Item | Detail |
|---|---|
| GPU | NVIDIA GeForce RTX 3070 (8GB of VRAM). For Qwen3-TTS, only this one GPU was visible during the run |
| Main memory | 7GB |
| VOICEVOX | VOICEVOX ENGINE 0.26.0 (CPU version). Voice: “Takehiro Kurono". Run on the CPU with 8 threads (the GPU was not used) |
| Qwen3-TTS | Qwen3-TTS-12Hz-1.7B-CustomVoice and Qwen3-TTS-12Hz-0.6B-CustomVoice. Built-in voice “Ono_Anna", language Japanese |
| Qwen3-TTS runtime | Python 3.14.4, PyTorch (CUDA 13 build), qwen-tts 0.1.1, bfloat16 precision, the default sdpa attention. triton disabled |
For VOICEVOX I sent the sentences to the engine one at a time (40 calls) and measured the total time. For Qwen3-TTS I loaded the model first and then measured the time to generate the whole text. Model loading time is not included in RTF.
How I measured
| Item | Setting |
|---|---|
| Text | The first 40 sentences of “Run, Melos!", 856 characters (Aozora Bunko, a work whose copyright protection has ended). The same text for every setup |
| Runs | 6 runs each. The first run is measured right after startup, so it is treated separately (model loading time itself is not included in RTF). Of the remaining 5 runs, I dropped the fastest and the slowest and took the median of the 3 in the middle, to reduce the effect of variation |
| RTF | Synthesis time [s] ÷ audio length [s]. Smaller is faster |
| VRAM | The peak nvidia-smi usage [MiB], recorded every second. It includes 79MiB used while nothing was running |
| VOICEVOX VRAM | It runs on the CPU, so it does not use the GPU and I treat its VRAM usage as 0 |
Results
| Setup | RTF, middle 3 runs (smaller is faster) | RTF, first run | Peak VRAM [MiB] | Audio length (range over 6 runs) [s] |
|---|---|---|---|---|
| VOICEVOX 0.26.0 (CPU, Takehiro Kurono) | 0.2918 | 0.2995 | 0 (runs on the CPU) | 126.5 (the same in all 6 runs) |
| Qwen3-TTS 1.7B CustomVoice (Ono_Anna) | 1.5445 | 1.6021 | 5,920 | 173.0〜211.1 |
| Qwen3-TTS 0.6B CustomVoice (Ono_Anna) | 1.525 | 1.549 | 3,276 | 202.4〜214.5 |
VOICEVOX made 126.5 seconds of audio in about 37 seconds (RTF 0.2918). That is faster than real time, and the first run differed little from the rest.
Qwen3-TTS had an RTF of about 1.5 for both 1.7B and 0.6B. That is slower than real time. For 1.7B, one of the middle 3 runs (the 6th) took 267.1 seconds of synthesis for 173.0 seconds of audio. For 0.6B, one of the middle 3 runs (the 4th) took 312.3 seconds of synthesis for 204.8 seconds of audio.
The VRAM figures for Qwen3-TTS were as follows. The nvidia-smi value is 290MiB higher than the amount PyTorch reserved, for both models.
| Model | nvidia-smi peak [MiB] | PyTorch reserved, peak [MiB] | Actually used, peak [MiB] | Model loading time [s] |
|---|---|---|---|---|
| Qwen3-TTS 1.7B | 5,920 | 5,630 | 4,702 | 15.4 |
| Qwen3-TTS 0.6B | 3,276 | 2,986 | 2,556 | 10.8 |
With the same text, the length of the audio from Qwen3-TTS changed on every run (about 173 to 211 seconds for 1.7B and about 202 to 214 seconds for 0.6B). VOICEVOX gave the same 126.485 seconds in all 6 runs.
Discussion
In this measurement VOICEVOX (CPU) had a smaller RTF than Qwen3-TTS (RTX 3070). Converting RTF to synthesis time per minute of audio gives about 17.5 seconds for VOICEVOX, about 93 seconds for Qwen3-TTS 1.7B, and about 91.5 seconds for 0.6B. When you turn a long text into audio in one go, this difference shows up as waiting time.
For VRAM, Qwen3-TTS peaked at 5,920MiB for 1.7B and 3,276MiB for 0.6B, and both fit in the 8GB of the RTX 3070. The 1.7B model uses about 1.8 times the VRAM of the 0.6B model, yet the RTF was about 1.54 against about 1.53, almost no difference. In this measurement a smaller model reduced VRAM but did not change speed. I did not isolate why the smaller model was not faster.
In this setup, with VOICEVOX on the CPU, it used none of the GPU’s VRAM. On the same PC it may be possible to leave the VRAM to other uses, such as image generation or an LLM, and give only the reading aloud to the CPU. I did not measure VOICEVOX running at the same time as other software, so this remains a possibility.
With Qwen3-TTS the audio length changed from run to run even for the same text. I have not checked the cause.
What I did not check in this measurement
I did not check the following.
I did not evaluate sound quality. How good a voice is, how easy it is to understand, and the number of misreadings were not part of the measurement. I did not make subjective judgements either.
There are no results for other speech models on 8GB of VRAM. For Qwen3-TTS I measured only the two CustomVoice models. I did not measure the voice-cloning approach or the approach that designs a voice from a text description (VoiceDesign) on the RTX 3070. For VOICEVOX I measured only the voice of Takehiro Kurono. Speaking speed may differ from voice to voice.
The text was a single one (856 characters). I did not check texts of tens of thousands of characters, or stability over long continuous running. I also did not measure the speed of VOICEVOX on the NVIDIA version (GPU execution).
I did not record the CPU model that ran VOICEVOX. A different CPU would likely give a different RTF. I did not isolate the cause of the RTF of 1.5 for Qwen3-TTS (the PyTorch settings, the disabled triton, or the 7GB of main memory, among others). Changing the software versions or settings may change the speed.
Checking the terms of use
I confirmed that the Hugging Face model card for Qwen3-TTS lists the license as Apache-2.0.
VOICEVOX sets terms of use for each voice (character). Credit notation and whether commercial use is allowed may differ by voice, so be sure to check the official individual terms of the voice you use before using it. In this article I did not check the original text of the terms for Takehiro Kurono, and I make no judgement on whether use is allowed.
Summary
| What I looked at | Result (RTX 3070, first 856 characters of “Run, Melos!") |
|---|---|
| VOICEVOX (CPU, Takehiro Kurono) | RTF 0.2918 (faster than real time), VRAM 0 MiB, about 17.5 seconds per minute of audio |
| Qwen3-TTS 1.7B | RTF 1.5445 (slower than real time), peak VRAM 5,920 MiB, about 93 seconds per minute of audio |
| Qwen3-TTS 0.6B | RTF 1.525 (slower than real time), peak VRAM 3,276 MiB, about 91.5 seconds per minute of audio |
On the RTX 3070 with 8GB of VRAM, Qwen3-TTS ran with both 1.7B and 0.6B but was slower than real time. VOICEVOX ran faster than real time on the CPU alone and used no VRAM. I did not evaluate sound quality, so if you choose by how a voice sounds, you need to listen and decide for yourself.
How to decide which to try
What these numbers can tell you is limited to speed and VRAM. The table below lays out what each choice gives you and what limit it brings.
| Your use | VOICEVOX (CPU) | Qwen3-TTS (RTX 3070) |
|---|---|---|
| You want to turn a long text into audio without waiting | RTF 0.29. About 17.5 seconds per minute of audio | RTF about 1.5. About 91 to 92 seconds per minute of audio |
| You want to keep VRAM for other uses | Uses no VRAM (runs on the CPU) | Peak 5,920MiB for 1.7B, peak 3,276MiB for 0.6B |
| You want to choose the model size | This time I measured only one voice (Takehiro Kurono) | 1.7B and 0.6B have almost the same speed. 0.6B uses less VRAM |
| You want to choose by voice quality | Not evaluated | Not evaluated |
| Terms of use | Check the official terms of each voice | The Hugging Face card lists Apache-2.0 |
A good first step is to turn a part of your own text into audio with VOICEVOX and listen to it. It runs on the CPU alone, so you can try it without worrying about free space on the GPU. If you try Qwen3-TTS, starting with the 0.6B model, which needs less VRAM, ran comfortably on an 8GB GPU (peak 3,276MiB). Note that the waiting time is about 1.5 times the length of the audio. For installation, see the official VOICEVOX site (voicevox.hiroshiba.jp) for VOICEVOX and the model card from the distributor (Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice on Hugging Face) for Qwen3-TTS. This article does not cover installation steps.
Reference: values recorded on another machine (different conditions from the main tables)
There is also a record of running the same two programs on another machine (EVO-X2, with VOICEVOX on the CPU and Qwen3-TTS on an RTX 5060 Ti with 16GB of VRAM). The conditions differ from the main test, so do not compare it with the values in the tables above. The differences are as follows.
| Item | Record from the other machine | Difference from the main test (RTX 3070) |
|---|---|---|
| VOICEVOX | RTF 0.061 (about 130 seconds of audio in about 8 seconds, for the first 40 sentences of “Run, Melos!" at 807 characters) | The character count differs (807 and 856), and so does the CPU. The number of runs and the way the median was taken are not the same |
| Qwen3-TTS | RTF 0.53〜0.56 (combining the 1.7B VoiceDesign and Base models to clone a voice from a reference audio) | The model type differs (not CustomVoice), and the GPU has 16GB of VRAM |
I did not re-measure this record under the conditions of the main test. The record also notes that on the other machine, a long run stopped once with a CUDA error (unspecified launch failure).









Discussion
New Comments
No comments yet. Be the first one!