开始接触本章节之前,需要先学习CSK6 环境搭建 ,完成 CSK6 的环境搭建和熟悉基本开发方式,再进行本章节的操作。
本指引所用的硬件实验平台为 语音开发套件 (6012-Nanokit 开发板,语音功能模块,引脚扩展板,USB-C 数据线) 。
在本实验中,我们将使用到开发板上的 DAPLink USB 接口,用于烧录固件、查看日志、shell 交互。
我们提供了 XTTS SDK 与配套的 XTTS Sample。这个 Sample 展示了对 SDK 接口的基本调用,实现了可通过 shell 传递文本调用语音合成并通过语音套件播放的能力。
执行以下命令拉取并初始化 Sample 项目 和 SDK 到本地,注意代码仓在本地存放的路径不能有中文名称,否则容易引起错误;
lisa zep create --from-git https://cloud.listenai.com/listenai/lsf-dev/xtts_zephyr.git
如果拉取Git仓库遇到登录问题,请点击此处查看解决方案
当初次拉取 SDK 和 sample 后出现以下情况时,可尝试通过FAQ指引解决:
1.拉取SDK操作中断
FAQ指引:
在终端通过命令进入项目文件夹,执行以下命令;
lisa zep build -b csk6012_nano
当您需要重新编译所有链接(如更换版型)时,可选择Rebuild整个项目工程,可在上述编译命令> 中增加 -p 参数,即
lisa zep build -b csk6012_nano -p
更多编译参数的使用,详见 命令行工具-编译。
lisa zep flash --runner pyocd
前面我们完成了应用程序烧录,接下来我们将算法运行所需的资源进行烧录,我们可以在xtts_zephyr/resource/res.overlay
文件中看到这些资源所占用的分区。
资源 | 分区配置 |
---|---|
DSP固件资源 | <0x100000 0x200000> |
算法模型资源 | <0x300000 0x800000> |
DSP 固件资源是运行在 csk6 DSP 和 NPU 上的程序,包含视觉算法程序等;
算法模型资源是视觉算法运行所需要的模型资源文件。
我们提供了串口、JLink两种烧录方式,可根据情况选择合适的烧录方式。
使用 USB 线接上 DAPLink USB 口进行烧录,依次执行以下命令,完成资源的烧录。
lisa zep exec cskburn -s \\.\COMx -C 6 0x100000 .\resource\cp.bin -b 748800
lisa zep exec cskburn -s \\.\COMx -C 6 0x300000 .\resource\res_xxx.bin -b 748800
其中的 COMx
代表开发套件连接到 PC 上对应的串口号。例如:COM3
res_xxx.bin
代表发音人资源文件名称,例如:res_qianqian.bin
。详细可参考 《发音人资源》 说明。
1.当您在 Windows WSL2 环境下对 csk6 进行固件烧录时无法找到设备且出现以下错误信息时:
waiting for a debug probe to be connect...
可尝试通过以下 FAQ 指引解决:
2.当您遇到无法烧录且有以下提示时:
entering-update-mode... ERRO:Failed entering update mode
可尝试以下FAQ指引尝试解决:
lisa zep exec cskburn -s PORT -C 6 0x100000 ./resource/cp.bin -b 748800
lisa zep exec cskburn -s PORT -C 6 0x300000 ./resource/res_xxx.bin -b 748800
其中的 PORT
代表开发套件连接到 PC 上对应的串口号。例如:/dev/ttyACM0
res_xxx.bin
代表发音人资源文件名称,例如:res_qianqian.bin
。详细可参考 发音人资源 说明。
常见问题及解决方法:
1.当您在 Linux 系统环境下对 csk6 进行固件烧录时无法找到设备且出现以下错误信息时:
waiting for a debug probe to be connect...
可尝试通过以下FAQ指引解决:2.当您遇到无法烧录且有以下提示时:
ERRO:Failed entering update mode
可尝试以下FAQ指引尝试解决:
此烧录方式需要配套 JLink 设备进行使用,使用 USB 线接上 CSK6 USB 口进行供电,并参照以下接线方式连接 JLink :
依次执行以下命令,完成资源的烧录。
lisa zep -v flash --runner jlink --bin-file resource/cp.bin --flash-opt="--base-address=0x18100000"
lisa zep -v flash --runner jlink --bin-file resource/res.bin --flash-opt="--base-address=0x18300000"
使用此方式烧录时,仅连接 CSK6 USB 接口上电即可,不连接 DAPLink USB 接口,以避免板载调试芯片对 SWD 接口造成占用。
连接开发板的 DAPLink USB ,使用串口调试工具打开 COM 口(波特率为 115200 ),使用开发板上的 reset 按键进行复位后,即可看到以下日志输出。
*** Booting Zephyr OS build v1.2.1-alpha.1 ***
[00:00:00.004,000] <inf> main: XTTS Sample started on [csk6012_nano]
uart:~$ [00:00:00.110,000] <inf> transfer: devices UART_1 is ready
uart:~$
命令 | 说明 |
---|---|
tts play <text> |
播放合成文本 |
tts synth <text> |
调用合成文本,只生成不播放,生成的音频数据在回调中返回,若有连接 uart2 串口则会通过串口协议发送到上位机 |
tts pause |
暂停合成 |
tts resume |
若合成被暂停,则继续合成 |
tts stop |
停止播放。在调用 tts play <text> 后生效。 |
为了提供更好的TTS合成效果和用户可自行控制合成方式,我们提供了一套标记设置,通过这些标记可自由实现理想的合成音频,使用方式请参考简单文本标注用户手册
uart:~$ tts play hello
TTS play 'hello' success!
uart:~$ tts play 'hello world'
TTS play 'hello world' success!
上述命令的
<text>
,若合成文本为英文,可直接使用,例如tts play hello
,表示播放「hello
」;若合成文本为中文,需要先转换为十六进制再传,例如「你好」的十六进制表示为0xe4 0xbd 0xa0 0xe5 0xa5 0xbd
,那么在命令中调用则为tts play '\xe4\xbd\xa0\xe5\xa5\xbd'
。
连接开发板的 DAPLink USB,打开在线串口终端工具,选择对应的串口设备进行连接,波特率默认115200,完成配置后点击连接按钮。
完成连接后在下方文本框输入对应的XTTS指令,即可完成对应合成操作。
1.鉴于部分设备实现的 Shell 不支持非ASCII字符输入,文本框提供了一项功能:自动将中文转换为编码后的字符串表示并发送。
2.使用方法:在文本框输入tts play 你好
点击发送即可实现自动转换。