> ## Documentation Index
> Fetch the complete documentation index at: https://qualcomm-3.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Audio overview

> Overview of the Qualcomm Linux audio subsystem architecture, components, and supported platforms.

The audio subsystem powered by low-power AI (LPAI) delivers voice user interface and audio experiences. It uses a dedicated hardware-based AI accelerator for machine learning-based work.

<div className="flex flex-col items-center gap-2">
  <img src="https://mintcdn.com/qualcomm-3/gHCjmHHn0mCw4aoT/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/hw_sw_components.svg?fit=max&auto=format&n=gHCjmHHn0mCw4aoT&q=85&s=62a5b1afd3fcb1ae3b90ab85d650c5d6" alt="Audio component overview" width="851" height="246" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/hw_sw_components.svg" />

  <p className="text-sm text-gray-700">
    Audio component overview
  </p>
</div>

The audio system includes:

* **Application processor** – CPU that handles audio processing tasks. Tasks include:
  * Managing audio record and playback
  * Decoding audio formats
  * Using LPAI for postprocessing tasks
* **Low-Power AI (LPAI)** – Subsystem that runs audio playback/record and voice-activation (VA) algorithms. It integrates with a dedicated Qualcomm® Hexagon™ Processor (QDSP6) and a low-power island (LPI).
* **Audio codec** – Hardware that includes:
  * Analog-to-Digital Converter (ADC)
  * Digital-to-Analog Converter (DAC) These convert analog audio to digital, and vice versa.
* **Speaker AMP and microphone** – Devices that connect over I2S/TDM/SoundWire.

## **Architecture**

The following figure shows the high-level audio software architecture.

<div className="flex flex-col items-center gap-6">
  <div className="flex items-center gap-6">
    <div className="flex flex-1 flex-col items-center">
      <img src="https://mintcdn.com/qualcomm-3/gHCjmHHn0mCw4aoT/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/asoc_architecture.png?fit=max&auto=format&n=gHCjmHHn0mCw4aoT&q=85&s=dd775967b40a40096565bd93d5de8c5f" alt="High-level audio software architecture" className="block" width="3872" height="4882" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/asoc_architecture.png" />
    </div>

    <div className="flex flex-1 flex-col items-center">
      <img src="https://mintcdn.com/qualcomm-3/gHCjmHHn0mCw4aoT/Technologies/Audio/media/qualcomm-linux-iot-audio-voice/audioreach_architecture.png?fit=max&auto=format&n=gHCjmHHn0mCw4aoT&q=85&s=9677b34907701f45de051cd1b1315028" alt="High-level audio software architecture" className="block" width="626" height="687" data-path="Technologies/Audio/media/qualcomm-linux-iot-audio-voice/audioreach_architecture.png" />
    </div>
  </div>

  <p className="m-0 leading-none text-sm text-gray-700">
    High-level audio software architecture
  </p>
</div>

The following are the major audio software architecture components:

**Application 1**

A generic multimedia app that produces or consumes audio and sends it through higher-level frameworks (like GStreamer or PipeWire) instead of directly interacting with hardware.

**Application 2**

Another app sharing the same audio stack, demonstrating that multiple applications can simultaneously use and route audio streams.

**GStreamer**

A multimedia framework that processes audio/video (e.g., decoding, encoding) before passing audio streams to the system audio layer.

**PipeWire**

A user-space audio server that manages audio routing, mixing, and connections between applications and hardware devices.

**ALSA + ASoC FWK**

This layer bridges user space and hardware drivers, with ALSA handling sound subsystem functions and ASoC managing embedded audio hardware interactions.

**Q6 APM Driver**

A Qualcomm-specific driver that communicates with the DSP's Audio Processing Manager to control audio routing and processing.

**PCM driver**

Handles the transfer of raw digital audio (PCM data) between memory and the audio subsystem for playback or recording.

**DAI driver**

Manages the digital audio interface (like I2S/TDM), configuring how audio data is transferred between processor and codec.

**CODEC driver**

Controls the audio codec hardware, configuring it to convert digital audio signals to analog output and vice versa.

**PipeWire**

PipeWire is a multimedia server for Linux that routes audio between Apps and hardware. It replaces PulseAudio, offering low-latency, secure, and flexible media handling for applications.

**Platform Abstraction Layer (PAL)**

Provides higher-level audio-specific APIs to access the audio hardware and drivers to enable audio features.

**Audio Graph Manager (AGM)**

Provides interfaces to allow TinyALSA-based mixer controls and PCM/compressed plug-ins to interact and enable audio features.

**AudioReach Graph Service (ARGS)**

Consists of the Graph Service Layer (GSL), Generic Packet Router (GPR), and acdb Management Layer (AML) modules. Handles initialization and creation of graphs, and creation of packets for sending a series of commands to the AudioReach Engine (ARE).

**Audio calibration database (acdb)**

Includes information about various audio use cases such as graphs, module calibration data, etc. The Apps processor parses acdb files to get the graph information used by ARE to enable the use case.

**AudioReach Engine (ARE)**

Modular framework that runs on the LPAI DSP. It helps set up, configure, and run signal processing modules for audio features.

[Qualcomm Audio Calibration Tool (QACT™ Platform)](../audio-addendum-overview)

PC-based software that provides a GUI to visualize, configure, and store audio graphs in the acdb for audio use cases.

## **Next steps**

* [Enable audio](enable-audio) — Configure audio hardware and verify basic playback and capture
* [Customize audio graph](customize-audio-graph) — Customize audio use cases at the PAL level
* [Audio Addendum](../audio-addendum-overview) — Learn about QACT and QXDM for calibration and diagnostics
