Skip to content

Streaming TTS Output (Linux)

Introduction

This case study demonstrates how to use the AidVoice SDK to implement real-time streaming speech synthesis and audio playback on a Linux system.

Supported Platforms

PlatformExecution Method
Rhino Pi-X1Ubuntu 22.04, AidLux

Prerequisites

  1. Rhino Pi-X1 hardware.

  2. Ubuntu 22.04 system or AidLux system.

  3. USB speaker/microphone setup.

Case Deployment

Step 1: Install AidVoice SDK

bash
# Install AidLite QNN version 2.36
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236

# Install AidVoice SDK
sudo aid-pkg -i aidvoice-sdk

Step 2: Model Acquisition

bash
# Obtain MeloTTS-English

mms get -m MeloTTS-English -p fp16 -c qcs8550 -b qnn2.31 -d /home/aidlux/melotts-english

cd /home/aidlux/melotts-english
unzip melotts_en_woman_qcs8550_qnn231_fp16_aidlite.zip

Step 3: Test Code Compilation

bash
# Copy test code
cp -r /usr/local/share/aidvoice/examples /home/aidlux/aidvoice

# Compile
cd /home/aidlux/aidvoice/tts/cpp/
mkdir -p build && cd build
cmake ..
make

Step 4: Confirm Device ID

Plug in the USB speaker/microphone.

bash
cd /home/aidlux/aidvoice/tts/cpp/
sudo ./test_tts -c

You should see output similar to the following, where the ID for "Jabra SPEAK 410 USB" is 15:

bash
found 16 capture devices:
    - Capture device #0: 'kalama-qrd-snd-card, '
    - Capture device #1: 'kalama-qrd-snd-card,  (2)'
    - Capture device #2: 'kalama-qrd-snd-card,  (3)'
    - Capture device #3: 'kalama-qrd-snd-card,  (4)'
    - Capture device #4: 'kalama-qrd-snd-card,  (5)'
    - Capture device #5: 'kalama-qrd-snd-card,  (6)'
    - Capture device #6: 'kalama-qrd-snd-card,  (7)'
    - Capture device #7: 'kalama-qrd-snd-card,  (8)'
    - Capture device #8: 'kalama-qrd-snd-card,  (9)'
    - Capture device #9: 'kalama-qrd-snd-card,  (10)'
    - Capture device #10: 'kalama-qrd-snd-card,  (11)'
    - Capture device #11: 'kalama-qrd-snd-card,  (12)'
    - Capture device #12: 'kalama-qrd-snd-card,  (13)'
    - Capture device #13: 'kalama-qrd-snd-card,  (14)'
    - Capture device #14: 'kalama-qrd-snd-card,  (15)'
    - Capture device #15: 'Jabra SPEAK 410 USB, USB Audio'

Step 5: Run the Example

bash
cd /home/aidlux/aidvoice/tts/cpp/build

# -m model path
# -i device ID
sudo ./test_tts -m /home/aidlux/melotts-english/model_farm_melotts_en_woman_qcs8550_qnn231_fp16_aidlite/models -i 15