ESP音频开发板设备接入实践

本文介绍使用ESP32-LyraT-Mini音频开发板设备(以下简称播报设备)通过Link SDK方式接入千里传音服务,实现智能语音播报。

背景信息

本文使用业界常见的ESP32-LyraT-Mini音频开发板作为接入实践的播报设备。

ESP32-LyraT-Mini是基于ESP32-WROVER-E模组的轻量级音频开发板,更多有关ESP32-LyraT-Mini的信息,请参见ESP产品文档esp

接入准备

  • 获取ESP32-LyraT-Mini音频开发板设备以及相关数据线。

  • 播报设备需使用SD卡保存音频文件,请获取与播报设备匹配的micro SD卡。

  • 在本地电脑安装Python开发环境。具体请参见:安装Python开发环境

接入步骤

步骤

说明

步骤一:安装ESP-ADF开发组件

在本地电脑安装播报设备的开发组件ESP-ADF,本文提供Windows、Linux和macOS环境的安装指导。

步骤二:创建设备

在千里传音服务创建设备并获取设备的鉴权信息。

步骤三:编译SDK

在本地电脑下载并编译SDK。

步骤四:固件下载

将编译后生成的固件文件下载至播报设备中。下载完成后,播报设备与千里传音服务实现对接。

步骤五:智能语音播报

在千里传音服务创建语料并推送至播报设备后,通过API下发播报指令,实现智能语音播报。

步骤一:安装ESP-ADF开发组件

说明

为了方便您快速将设备接入千里传音服务,下文提供的安装指导进行了有针对性的简化。更多信息,请参见ESP32-LyraT-Mini安装文档

  1. 执行以下命令,下载ESP-ADF开发组件源码。

    git clone --recursive https://github.com/espressif/esp-adf.git

    下载完成后,在您的用户目录将出现esp-adf文件夹,如下图所示:

    esp

    如果您本地电脑没有安装Git开发工具,无法执行上述命令,可以直接在GitHub下载源码。git

    下载的esp-adf文件夹中,esp-idf文件夹默认为空,您可单击esp-idf @ 722043f进行下载。

    idf
  2. 执行以下命令,设置ESP-ADF的安装路径。

    1. Windows

      set ADF_PATH=%userprofile%\esp-adf
      echo %ADF_PATH%
    2. Linux和macOS

      export ADF_PATH=%userprofile%/esp-adf/
  3. 进入esp-adf/esp-idf目录,执行以下命令,安装IDF开发环境。

    说明

    如果esp-adf/esp-idf目录为空,说明步骤1中的源码没有下载完全,请重新执行步骤1下载源码,并根据命令行提示进行处理。

    • Windows

      %userprofile%\esp-adf\esp-idf\install.sh
      %userprofile%\esp-adf\esp-idf\export.bat
    • Linux/macOS

      . ./install.sh
      . ./export.sh

    出现以下信息表示安装成功。成功

步骤二:创建设备

  1. 登录物联网平台控制台,在左侧导航栏选择增值服务

  2. 增值服务页面,单击千里传音服务下的前往服务

    说明

    如果您还没有开通千里传音服务,在选购增值服务区域单击前往查看服务,在增值服务中心开通千里传音服务具体操作,请参见开通服务

  3. 在左侧导航栏中选择项目管理

  4. 项目管理页面,单击创建项目,在创建项目对话框中设置参数并单击确定沐足

  5. 单击项目右侧的配置,进入项目详情页面,单击设备管理 > 创建设备测试哈

  6. 跳转至物联网平台设备管理页面创建设备,设置参数后单击确认。

    DeviceName示例:ESP32-LyraT-Mini设备编译

  7. 添加完成页面,获取设备的鉴权信息(ProductKey、DeviceName和DeviceSecret),并单击完成

    您也可以返回至千里传音服务获取设备的鉴权信息,重新加载页面后,设备管理页面将出现新创建的设备。设备

    设备的鉴权信息后续需要使用,请一键复制至您本地并保存。

步骤三:编译SDK

  1. 下载SDK文件至本地并解压。下载地址,请参见SDK下载

  2. 进入下载的SDK文件,修改main/link_speech_basic_demo.c文件中以下参数并保存。

    #define CONFIG_WIFI_SSID "*******"
    #define CONFIG_WIFI_PASSWORD "*********"
    /* TODO: 替换为设备的鉴权信息 */
        char *product_key       = "ggi******c9";
        char *device_name       = "ESP32-LyraT-Mini";
        char *device_secret     = "uwMTmVAMnGGHaAkqmeDY6cHxxB******";

    参数

    示例

    说明

    CONFIG_WIFI_SSID

    *******

    Wi-Fi账号。

    请填入可以正常连网的Wi-Fi账号。

    CONFIG_WIFI_PASSWORD

    *********

    Wi-Fi密码。

    product_key

    ggi******c9

    设备的鉴权信息。

    device_name

    ESP32-LyraT-Mini

    device_secret

    uwMTmVAMnGGHaAkqmeDY6cHxxB******

  3. 在SDK文件的根目录(即linkspeech-esp32-demo-v2目录),执行如下命令编译文件。

    idf.py clean
    idf.py build

    出现如下信息表示编译成功。编译

    说明

    • 如果编译失败,可能是您本地的Python运行环境不满足要求。您可以在%userprofile%\esp-adf\esp-idf\目录中执行命令:pip install -r requirements.txt,安装相关的依赖包后重新进行编译。

    • 如果执行编译命令时,提示“不是内部或外部命令,也不是可运行的程序或批处理文件”,请在同一个命令行窗口执行export命令(参考步骤一),再执行编译命令。这是由于开发环境ESP-IDF为通过命令临时打开,关闭命令行窗口后ESP-IDF也同时关闭,无法进行编译。

步骤四:固件下载

  1. 将播报设备与本地电脑进行硬件连接。硬件

    序号

    参数

    数据线接口,将播报设备与本地电脑进行硬件连接。

    电源接口。

    micro SD卡插口。

    播报设备的音频接口,可以连接扬声器或者耳机。

  2. 查看USB设备节点。

    • Windows:可以在设备管理器 > 端口中查看。

      端口
    • Linux和macOS:执行以下命令查看。

      ls /dev/tty*
      图片是
  3. 执行如下命令,进行固件下载。

    Windows命令示例:idf.py -p COM3 flash
    Linux和macOS命令示例:idf.py -p /dev/tty.usbserial-14430 flash

    正确下载结果示例:

    Serial port /dev/tty.usbserial-14430
    Connecting.....
    Detecting chip type... ESP32
    Chip is ESP32D0WDQ5 (revision 1)
    Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
    Crystal is 40MHz
    MAC: 40:f5:20:72:07:a4
    Uploading stub...
    Running stub...
    Stub running...
    Changing baud rate to 460800
    Changed.
    Configuring flash size...
    Compressed 25728 bytes to 15283...
    Wrote 25728 bytes (15283 compressed) at 0x00001000 in 0.4 seconds (effective 586.9 kbit/s)...
    Hash of data verified.
    Compressed 3072 bytes to 83...
    Wrote 3072 bytes (83 compressed) at 0x00008000 in 0.0 seconds (effective 2204.3 kbit/s)...
    Hash of data verified.
    Compressed 1134704 bytes to 692627...
    Wrote 1134704 bytes (692627 compressed) at 0x00010000 in 16.8 seconds (effective 541.4 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting via RTS pin...
    Done

    固件下载完成后,ESP32-LyraT-Mini音频开发板设备已成功接入千里传音服务。

步骤五:智能语音播报

  1. 在千里传音服务项目管理页面,单击项目右侧的配置

  2. 语料配置页签,单击新增语料,设置参数后单击确定支付

    说明

    本文的示例工程仅支持MP3格式,为了方便您快速实现智能语音播报,请按照上图设置语料参数。更多信息,请参见创建语料

  3. 在创建的语料右侧,单击推送到设备

  4. 推送到设备对话框中,选择推送方式单个设备,在下拉框中选择上文创建的设备,单击确定

  5. 单击推送任务看板,在推送成功页签中查看任务状态。沐足

    说明

    您还可以通过设备管理 > 日志查看语料推送日志。更多信息,请参见语料推送日志

  6. 打开OpenAPI,填写参数后下发播报指令。API

    序号

    参数

    说明

    CombinationList

    语料的标识。

    ProductKey

    设备的ProductKey。

    DeviceName

    设备的DeviceName。

    AudioFormat

    音频格式为mp3。

    SpeechId

    语料的ID。

    说明

    更多有关API调用的信息,请参见组合播报API

  7. 单击发起调用,设备即会播放相应的语音:“支付到账 123元”。