跳转至

语音播报使用指南*

1. 概述*

本文主要描述8002芯片DAC输出TTS语音播报功能。

2. SDK下载和编译说明*

2.1 代码仓库下载*

git clone git@gitlab.com:nationalchip/lvp_tws.git

git checkout -b my_pri master //切换到主分支

2.2 配置文件参考*

cp ./configs/release/nationalchip/grus_gx8002b_aiot_1v_voice_player.config .config //默认是使用opus输出

2.3 voice player 功能配置说明*

Common Function Settings -> Has voice player

select audio decoder: DAC输出音频解码器选择:opus、amr、adpcm

具体解码器源代码参考

./lvp/common/player/decoder/

select sample rate: DAC输出采样率选择: 8k or 16k(根据编译出来的固件大小来定)

dac channel select: DAC输出通道选择

1
2
3
4
5
6
typedef enum {
    GX_AUDIO_OUT_STEREO_C = 0,///< 双声道立体声,左声道选0th,右声道选1th,不混合
    GX_AUDIO_OUT_LEFT_C,      ///< 左声道,左声道选0th,右声道选0th,不混合
    GX_AUDIO_OUT_RIGHT_C,     ///< 右声道,左声道选1th,右声道选1th,不混合
    GX_AUDIO_OUT_MONO_C,      ///< mono,左声道选0th,右声道选1th,混合
} GX_AUDIO_OUT_CHANNEL;

2.3.1 opus格式输出配置说明*

Common Function Settings --->[*] Has voice player --->select audio decoder 选择 use opus decoder

Common Function Settings --->[*] Has voice player --->select sample rate 选择 use 8k samplerate dec或者 use 16k samplerate dec

opus格式音频转换工具见 第3.1章节

2.3.2 wav格式输出配置说明*

Common Function Settings --->[*] Has voice player --->select audio decoder 选择 use no decoder

wav格式音频转换工具见 第3.1章节

2.3.3 adpcm格式输出配置说明*

Common Function Settings --->[*] Has voice player --->select audio decoder 选择 use adpcm decoder

adpcm格式音频转换工具见 第3.2章节

2.4 mp3 player 功能配置说明*

Common Function Settings -> Has mp3 player

几个配置选择 voice player 一致,就不再描述了

注意

  • mp3音频文件的采样率使用常规 8k, 16k, 48k
  • mcu 频率必须大于16M,测试小于16M,声音会变,应该是速度跟不上

2.5 TTS播报应用代码说明*

2.5.1 voice player 应用代码说明*

LVP Application Settings -> Applications Selection: (Voice Player App)

主要关注目录 ./app/voice_player/resource,该目录主要存放经过opus编码后转成16进制的数组文件,因此需要对音频文件进行opus编码,编码工具见下节介绍

修改lvp_app_voice_player.c文件,根据自己需求,调用LvpVoicePlayerPlay();接口播放音频

注意

  • 若选择adpcm格式输出,则调用输出的接口需换成LvpVoicePlayerPlayAdpcm();
  • mcu 频率必须大于16M,测试小于16M,声音会变,应该是速度跟不上

2.5.2 mp3 player 应用代码说明*

LVP Application Settings -> Applications Selection: (mp3 Player App)

跟voice player 应用一样,只是初始化接口和播放的接口有所不同

LvpMp3PlayerInit();

LvpMp3PlayerPlay();

3. TTS播报音频文件转换工具说明*

3.1 codec_demo工具*

3.1.1 codec_demo工具仓库位置*

./tools/audiocodec_tools/

对应的编码工具在lvp_tws/tools/audiocodec_tools目录下有源码(即:codec_demo.c),直接make生成编码工具(建议在Ubuntu16.04版本编译)

3.1.2 codec_demo工具使用说明*

1
2
3
4
5
6
./codec_demo 
参数一:[opus|amr]                         //输出音频格式
参数二:[dec|enc]                          //解码or编码
参数三:[sampleRate(8000|16000)]           //采样率
参数四:[infile(encode file|decode file)]  //输入文件
参数五:[outfile(decode file|encode file)] //输出文件

支持16K或者8K单声道wav格式。或者将该wav格式压缩为opus,amr格式,减小容量。

使用例子如下:(linux系统)

sudo ./codec_demo opus enc 16000 wozai.wav wozai.opus

xxd -i wozai.opus wozai.h

mp3格式或者wav格式的话,只需 xxd -i 转成16进制即可

xxd -i wozai.wav wozai.h

xxd -i wozai.mp3 wozai.h

3.2 adpcm工具*

3.2.1 adpcm工具仓库位置*

./tools/adpcm/

3.2.2 adpcm工具使用说明*

1
2
3
4
5
6
参数说明:
-n256 块的样本数
-e 编码 
-d 解码
-h 显示帮助
-y 覆盖输出文件(如果存在)

使用例子如下:(linux系统)

sudo ./adpcm -e -n256 wozai.wav wozai.adpcm -y

xxd -i wozai.adpcm wozai.h