# Detailed Feature Descriptions
## Fluence
Echo and noise related problems are quite common in VoIP systems. Speech
originates from the far-end speaker and echoes back with a time delay,
causing perception problems. The method to decrease the echo from the
far-end speaker during communication is echo cancellation and the method
to decrease the noise from the microphone channel is noise suppression.
Fluence echo cancellation and noise suppression (ECNS) algorithm
provides stationary and nonstationary noise suppression and echo
cancellation.
### ECNS overview
Acoustic echo is significant for hands-free and teleconferencing
applications. Echo generated due to the acoustic path (acoustic
coupling) between the loudspeaker and microphone of a communication
device is known as acoustic echo.

- **Echo Canceller** – A simple adaptive filter with self-adjusting
coefficients to cancel out echo. Every echo has an echo path, and is
characterized by an impulse response. The echo canceller adapts its
filter coefficients to the network echo path such that it cancels out
the echo.
- **Noise Suppression** – As devices are used in dynamic environments,
a noise suppressor in the SMECNS helps to suppresses the surrounding
stationary noise
### Recording use case
In recording use cases, Fluence maintains the speech quality in the
recording path by suppressing background noise captured by the
microphone.
In single-microphone recording use cases, it is only possible to handle
stationary noise suppression – That is, noise whose frequency content
does not change over time, such as road noise or white noise.

To enable the SMECNS in recording path:
setenforce 0
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
### VoIP use case
Fluence is used to reduce noise and eliminate echo in VoIP
communication. It can suppress noise and acoustic echo on the microphone
signal.
The SDK provides support for a PulseAudio VoIP source and sink, which
developers can use to develop their own application.

To enable SMECNS on the VoIP path:
| **Record** | setenforce 0
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 |
| --- | --- |
| **Playback** | setenforce 0
paplay /opt/.wav --device=voip-rx0
Copy to clipboard |
Note
Be sure to push some PCM file (`.wav`) to the `/opt/` folder.
## Compress offload playback
Compress offload offers an infrastructure that enables the decoding of
compressed audio streams within LPAI, thus eliminating the need for
decoding in the Application processor. This decreases overall power
usage relative to processing based on the Application processor.
**Compress offload playback graph**

### Validation
Push an MP3 file using the following command:
scp test.mp3 root@[ip-addr]:/opt/
Copy to clipboard
This example plays the audio file `/opt/test.mp3` with all default
configurations in the compress offload path.
### Audio playback through PulseAudio
setenforce 0
#paplay -d offload0 --encoding=mpeg --raw /opt/test.mp3
Copy to clipboard
## Advanced Audio Distribution Profile
The Advanced Audio Distribution Profile (A2DP) defines the protocols and
procedures that control the distribution of high-quality audio content
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 is responsible for encoding and transmitting
digital audio streams over Bluetooth to a receiving device
The following illustrates data flow for an A2DP Source use case:

ACDB graph for an A2DP Source use case:

### 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 illustrates data flow for an A2DP Sink use case:

ACDB graph for an A2DP Sink use case:

### Validation
To validate the A2DP Sink and A2DP Source use case, see [Qualcomm Linux Bluetooth
Guide](https://docs.qualcomm.com/bundle/publicresource/topics/80-70015-13/bluez-a2dp.html).
Last Published: Oct 15, 2024
[Previous Topic
Debug](https://docs.qualcomm.com/bundle/publicresource/80-70015-16/topics/debug.md)