# Advanced audio features
Tab QCS6490
Tab QCS9075/QCS8275
- *class* tabincludedirective
- ## Minimize echo and noise
Echo and noise problems are common in VoIP systems. Speech
comes from the far-end speaker and echoes back with a time delay,
causing perception problems. Echo cancellation decreases the echo from the
far-end speaker during communication. Noise suppression
decreases the noise from the microphone channel.
The Fluence echo cancellation and noise suppression (ECNS) algorithm
provides stationary and nonstationary noise suppression and echo
cancellation.
Acoustic echo is when echoes occur due to the acoustic path (acoustic
coupling) between the loudspeaker and microphone of a device.
It is important for hands-free and teleconferencing
applications.

Noise and acoustic echo
- **Echo Canceller** – An adaptive filter that self-adjusts
coefficients to cancel out echo. Every echo has an echo path, and is
characterized by an impulse response. The echo canceller adapts to the network echo path
such that it cancels out the echo.
- **Noise Suppression** – Single mic echo canceller and noise suppressor (SMECNS) helps to suppress the surrounding stationary
noise when using devices in noisy locations.
### Enable SMECNS for recording
When recording, Fluence keeps speech quality in the
recording path by suppressing background noise captured by the
microphone.
For single-microphone recordings, only
stationary noise suppression is possible. Stationary noise is where the frequency
does not change over time, for example, road noise or white noise.

SMECNS software block for recording
To enable the SMECNS in the recording path:
pactl set-source-port regular0 speaker-mic
parec --rate=48000 --format=s16le --channels=1 --file-format=wav /opt/rec3.wav --device=regular0
Copy to clipboard
### Enable SMECNS for VoIP
Fluence reduces noise and eliminates echo in VoIP communication. It also suppresses noise and acoustic echo on the microphone signal.
The SDK supports a PulseAudio VoIP source and sink, which
you can use when developing applications.

SMECNS software block for VoIP
To enable the SMECNS in the VoIP path:
| **Set record source** | pactl set-source-port voip-tx0 speaker-mic
parec --rate=48000 --format=s16le --channels=1 --file-format=wav /opt/rec3.wav --device=voip-tx0
Copy to clipboard |
| --- | --- |
| **Set playback sink** | paplay /opt/.wav --device=voip-rx0
Copy to clipboard |
Note
Be sure to push a PCM file (`.wav`) to the `/opt/` folder.
## Compress offload
Compress offload allows the decoding of
compressed audio streams in LPAI, removing the need for
decoding in the Application processor. This lowers overall power
usage relative to processing based on the Application processor.

Compress offload playback graph
### Validate compression
Push an MP3 file using the following command:
scp test.mp3 root@[ip-addr]:/opt/
Copy to clipboard
This example plays the `/opt/test.mp3` audio file with all default
configurations in the compress offload path.
### Validate audio playback through PulseAudio
#paplay -d offload0 --encoding=mpeg --raw /opt/test.mp3
Copy to clipboard
## Enable A2DP
The Advanced Audio Distribution Profile (A2DP) defines the protocols and
procedures that control high-quality audio content sent
over a Bluetooth® channel either in mono or stereo.
The QCS6490 chipset can be used as an A2DP Sink or A2DP Source.
### A2DP Source
The A2DP Source device encodes and transmits
digital audio streams over Bluetooth to a receiving device.
The following figure shows the data flow for an A2DP Source:

A2DP Source data flow
The following is an acdb graph for an A2DP Source:

A2DP Source acdb graph
### A2DP Sink
An A2DP Sink is a device that receives an audio stream from a Source
device, decodes the audio data, and plays it back.
The following figure shows the data flow for an A2DP Sink:

A2DP Sink data flow
The following is an acdb graph for an A2DP Sink:

A2DP Sink acdb graph
### Validate A2DP
To validate the A2DP Sink and A2DP Source, see [Qualcomm Linux Bluetooth
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70018-13/bluez-a2dp.html).
- *class* tabincludedirective
- ## Minimize echo and noise
Echo and noise problems are common in VoIP systems. Speech
comes from the far-end speaker and echoes back with a time delay,
causing perception problems. Echo cancellation decreases the echo from the
far-end speaker during communication. Noise suppression
decreases the noise from the microphone channel.
The Fluence echo cancellation and noise suppression (ECNS) algorithm
provides stationary and nonstationary noise suppression and echo
cancellation.
Acoustic echo is when echoes occur due to the acoustic path (acoustic
coupling) between the loudspeaker and microphone of a device.
It is important for hands-free and teleconferencing
applications.

Noise and acoustic echo
- **Echo Canceller** – An adaptive filter that self-adjusts
coefficients to cancel out echo. Every echo has an echo path, and is
characterized by an impulse response. The echo canceller adapts to the network echo path
such that it cancels out the echo.
- **Noise Suppression** – SMECNS helps to suppress the surrounding stationary
noise when using devices in noisy locations.
### Enable SMECNS for recording
When recording, Fluence keeps speech quality in the
recording path by suppressing background noise captured by the
microphone.
For single-microphone recordings, only
stationary noise suppression is possible. Stationary noise is where the frequency
does not change over time, for example, road noise or white noise.

SMECNS software block for recording
To enable the SMECNS in the recording path:
pactl set-source-port regular0 speaker-mic
parec --rate=48000 --format=s16le --channels=1 --file-format=wav /opt/rec3.wav --device=regular0
Copy to clipboard
### Enable SMECNS for VoIP
Fluence reduces noise and eliminates echo in VoIP communication. It also suppresses noise and acoustic echo on the microphone signal.
The SDK supports a PulseAudio VoIP source and sink, which
you can use when developing applications.

SMECNS software block for VoIP
To enable the SMECNS in the VoIP path:
| **Set record source** | pactl set-source-port voip-tx0 speaker-mic
parec --rate=48000 --format=s16le --channels=1 --file-format=wav /opt/rec3.wav --device=voip-tx0
Copy to clipboard |
| --- | --- |
| **Set playback sink** | paplay /opt/.wav --device=voip-rx0
Copy to clipboard |
Note
Be sure to push a PCM file (`.wav`) to the `/opt/` folder.
## Compress offload
Compress offload allows the decoding of
compressed audio streams in LPAI, removing the need for
decoding in the Application processor. This lowers overall power
usage relative to processing based on the Application processor.

Compress offload playback graph
### Validate compression
Push an MP3 file using the following command:
scp test.mp3 root@[ip-addr]:/opt/
Copy to clipboard
This example plays the `/opt/test.mp3` audio file with all default
configurations in the compress offload path.
### Validate audio playback through PulseAudio
#paplay -d offload0 --encoding=mpeg --raw /opt/test.mp3
Copy to clipboard
Note
Make sure to use `dac_mer_testapp` before starting playback and record, as mentioned in [Enable audio](https://docs.qualcomm.com/doc/80-70018-16/topic/enable-audio.html#enable-audio).
Last Published: Aug 13, 2025
[Previous Topic
Troubleshoot audio](https://docs.qualcomm.com/bundle/publicresource/80-70018-16/topics/troubleshoot.md) [Next Topic
References](https://docs.qualcomm.com/bundle/publicresource/80-70018-16/topics/references.md)