本章节主要讲解如何获取 语音合成 固件源码并进行代码的编译。
语音合成 示例工程包含在 语音视觉大模型AI开发板 SDK 的 apps
目录下,工程目录名称为 shell_xtts
。
这个示例展示了对 SDK 接口的基本调用,实现了可通过 shell 传递文本进行语音合成并播放。
本工程是基于多模态AI开发套件,使用多模态AI开发套件的xtts demo
,实现在shell中设置xtts
的参数,以及语音合成的功能
xtts play "你好"` //播放"你好"
xtts utf8 //设置xtts的编码格式为utf8
xtts gbk //设置xtts的编码格式为gbk
xtts pause //暂停xtts
xtts resume //恢复xtts
发音人0资源地址:0x800000 例:xTTS_CnCn_qianqian_Low_2018_arm.irf
发音人0后端资源地址:0x810000 例:xTTS_CnCn_qianqian_Low_2018_fix_arm.dat
发音人1资源地址:0xC00000
发音人1后端资源地址:0xC10000
注意前端资源不需要替换:
xTTS_CnCn_front_Castor_arm.irf.bin
在xtts_stream_cb
中,可以获取到xtts合成的音频数据,用户可以在该回调函数中对音频数据进行处理,比如将音频数据写入文件,或者将音频数据送出
通过串口工具(聆思在线串口终端)打开后选择串口号,波特率为115200。数据位8,校验位无,停止位1,流控制无
请参照《获取开发环境与SDK》进行大模型AI开发套件SDK的下载与初始化,若您之前已经操作过,可忽略本步骤。
建议您在开发前,参照《本地SDK更新》将SDK更新至最新版本。
在 duomotai_ap
目录下,执行以下指令进行代码编译(以 Windows CMD 终端为例):
lisa zep build -b csk6_duomotai_devkit apps\shell_xtts -p
编译完成后,编译产物二进制文件为 build\zephyr\zephyr.bin
使用 Type-C 数据线连接开发套件的 DAP_USB
接口,选中以下其中一种方式对固件进行烧录:
cskburn desktop
是一款聆思推出的桌面烧录工具,在下载并安装 cskburn desktop 烧录工具后,双击图标运行软件:
1.点击串口下拉框,选择连接开发套件后识别到的串口编号;
2.将编译输出的.bin
文件拖拽进烧录区域;
3.点击开始烧录,等待烧录完成。
若您已按照 《环境搭建》 教程完成开发环境的安装,可在编译完成后执行 lisa zep exec cskburn
指令完成烧录。
lisa zep exec cskburn -s \\.\COMxx -C 6 -b 1500000 0x000000 --verify-all .\build\zephyr\zephyr.bin
请将命令行中的的 COMx 替换为开发套件在 PC 上对应的串口号(可通过设备管理器查看)。例如:
COM3
。
lisa zep exec cskburn -s PORT -C 6 0x000000 --verify-all ./build/zephyr/zephyr.bin -b 1500000
请将命令行中的 PORT 替换为开发套件连接在 PC 上对应的串口号。例如:
/dev/ttyUSB0
。
烧录完成后,程序将自动运行,你也可以通过按压开发板上的复位按键(RTS)进行复位运行,程序运行后,可听到开发套件播放 “你好”
的合成音频。
在本示例工程中,默认支持通过以下串口指令对语音合成功能进行控制。
命令 | 说明 |
---|---|
xtts play <text> |
播放合成文本 |
xtts pause |
暂停合成 |
xtts resume |
若合成被暂停,则继续合成 |
xtts utf8 |
(默认)设置xtts的编码格式为utf8 |
xtts gbk |
设置xtts的编码格式为gbk |
为了提供更好的语音合成效果和用户可自行控制合成方式,我们提供了一套标记设置,通过这些标记可自由实现理想的合成音频,使用方式请参考简单文本标注用户手册
在连接开发板DAP_USB
的情况下,我们可以通过串口工具发送以上指令对语音合成和播放进行控制,设置串口工具波特率为115200
,以下为串口指令的示例:
uart:~$ xtts play hello
XTTS play 'hello' success!
uart:~$ xtts play 'hello world'
XTTS play 'hello world' success!
上述命令的
<text>
,若合成文本为英文,可直接使用,例如xtts play hello
,表示播放「hello
」;若合成文本为中文,需要先转换为十六进制再传,例如「你好」的十六进制表示为0xe4 0xbd 0xa0 0xe5 0xa5 0xbd
,那么在命令中调用则为xtts play '\xe4\xbd\xa0\xe5\xa5\xbd'
。
鉴于部分串口工具实现的 Shell 不支持非ASCII字符输入,聆思提供了自带中文编码转换的串口终端工具,使用方法如下:
DAP_USB
为了TTS合成效果更好和用户可自行控制合成效果,我们提供了一套标记设置,通过这些标记可完善我们的TTS合成效果,比如设置数字的发音方式是数值还是数字、语调、音效、播放速度等。
具体的文本标注方法与示例详见《简单文本标注用户手册》。
AP 串口日志TX:PA_3 波特率:115200
CP 串口日志TX:PA-4 波特率:921600
功能 | 接口 |
---|---|
初始化gcs服务 | xtts_service_gcs_init |
添加回调处理函数 | xtts_service_gcs_add_event_callback xtts_service_gcs_add_frame_callback |
启用XTTS服务的播放功能 | xtts_service_gcs_play_enable |
启动gcs服务 | xtts_service_gcs_start |
项目 | 链接 |
---|---|
本应用的配置与使用 | 可参照《功能体验》了解本应用的配置与使用方法。 |
在线串口终端的使用 | 可参照《聆思在线串口终端》了解在线串口终端更多的使用方法。 |
烧录工具的使用 | 可参照《cskburn桌面烧录工具》了解烧录工具更多的使用方法。 |
简单文本标注 | 我们提供了一套标记设置,可参照《简单文本标注用户手册》进行使用和修改。 |