Skip to content

流式 TTS 输出 (Linux)

介绍

本案例展示了如何通过 AidVoice SDK 实现在 Linux 系统中流式实时语音合成并播放音频。

支持平台

平台运行方式
Rhino Pi-X1Ubuntu 22.04, AidLux

准备工作

  1. Rhino Pi-X1 硬件

  2. Ubuntu 22.04 系统或 AidLux 系统

  3. USB 麦克风准备

案例部署

步骤一:安装 AidVoice SDK

bash
# 安装AidLite QNN 2.36版本
sudo aid-pkg update
sudo aid-pkg install aidlite-sdk
sudo aid-pkg install aidlite-qnn236

# 安装 AidVoice SDK
sudo aid-pkg -i aidvoice-sdk

步骤二:模型获取

bash
# 获取 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

步骤三:测试代码编译

bash
# 拷贝测试代码
cp -r /usr/local/share/aidvoice/examples /home/aidlux/aidvoice

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

步骤四:麦克风 ID 确认

接入 USB 麦克风

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

可以看到如下输出,Jabra SPEAK 410 USB 的 ID 为 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'

步骤五:运行例子

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

# -m 模型路径
# -i 麦克风 ID
sudo ./test_tts -m /home/aidlux/melotts-english/model_farm_melotts_en_woman_qcs8550_qnn231_fp16_aidlite/models -i 15