Run an optimized text-to-speech model from the Arm AI Portal on an Arm Neoverse-based instance

Who is this for?

This Learning Path is for developers and ML engineers who want to run text-to-speech generation from a browser interface or the terminal with an Arm-optimized Qwen3-TTS model on an Arm Neoverse Linux machine.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Prepare an Arm Neoverse Linux machine and download a model from the Arm AI Portal.
  • Generate speech through a browser interface and optionally run the model from the terminal.
  • Identify how the web application prepares reference audio, invokes the server runner, and returns WAV audio.

Prerequisites

Before starting, you will need the following:

  • An Arm Neoverse-based Linux machine, such as an AWS r8g.xlarge instance, running Ubuntu 24.04 LTS and Python 3.11 or later
  • At least 32 GB of memory on the Linux machine
  • A local development machine with SSH access
  • Access to a microphone or an existing voice recording
  • Basic familiarity with Linux command-line tools and Python

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll run an optimized text-to-speech model with ONNX Runtime on an Arm Neoverse-based machine. First, you’ll install the required Python dependencies and download application files and the Qwen3-TTS ONNX package from the Arm AI Portal. Next, you’ll start the FastAPI browser application, connect through an SSH tunnel, and record or upload reference audio before generating a WAV file from text. You’ll learn an optional terminal-based workflow and trace how the application normalizes audio, calls the ONNX runner, and returns the result.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know that the web application started correctly?
Check the startup output for the runner, cascade driver, text-path files, FFmpeg, and thread count checks. When the service is ready, it listens on 127.0.0.1:8000.
How do I provide a reference voice sample?
Use the browser application to record a sample or upload an existing reference recording. The application converts the audio to the format expected by the server runner.
What result will I get after generating speech?
The server returns a WAV file that speaks the provided text using characteristics of the reference voice. You can play the file in the browser or download it.
How do I access the browser application on the instance?
Create an SSH tunnel that forwards port 8000 from the instance to your local computer. Then, open http://127.0.0.1:8000 in your local browser. The application remains bound to the instance loopback interface and isn’t exposed on a public network interface.
Can I run the model from the terminal instead of using the browser?
Yes. The browser application is a FastAPI wrapper around onnx_tts_runner.py. You can invoke the runner directly from the terminal with the required inputs and model directory.
Next