Beken WSS 工程
1. 简介
本工程基于
beken_genie的 BLE 配网框架,用 WebSocket(WSS) 代替声网 / 火山 RTC 传音视频流,并在**单屏**上用 LVGL 字体滚动显示对话字幕。配网、按键、灯效、唤醒词、提示音与精灵工程相同。屏幕方案接近
ai_dashboard:一块 360x360 QSPI LCD(ST77916),不做双屏眼睛 AVI。硬件原理图、按键、灯效、App 配网请参考:博通集成精灵AI(Beken_Genie)工程
工程目录:
<source code>/projects/beken_wss
projects/readme.txt说明:基于 beken_genie 配网框架 + websocket 传输流 + 单屏字幕显示。
2. 与 beken_genie / ai_dashboard 的差异
传输宏:
CONFIG_BK_WSS_TRANS=y,代码在projects/common_components/network_transfer/bk_wss/。默认 WSS 地址写在
bk_wss_main.c:wss://ai.aclsemi.com:9015。量产请改成客户自己的 WSS 服务。显示:
CONFIG_SINGLE_SCREEN_FONT_DISPLAY=y,组件single_screen_font_display用 LVGL label 按 UTF-8 逐字刷新字幕。不做
CONFIG_DUAL_SCREEN_AVI_PLAY,也不走声网 / 火山 RTC。仍使用 PSRAM(与下面的
beken_wss_nopsram相对)。
3. 主要配置
Kconfig
CPU
Format
Value
CONFIG_BK_WSS_TRANS
CPU0
bool
y
CONFIG_SINGLE_SCREEN_FONT_DISPLAY
CPU0 & CPU1
bool
y
CONFIG_LCD_QSPI_ST77916
CPU1
bool
y
CONFIG_LCD_BACKLIGHT_GPIO
CPU1
int
25
CONFIG_LCD_QSPI_RESET_PIN
CPU1
int
45
CONFIG_LCD_QSPI_ID
CPU1
int
1
CONFIG_WEBSOCKET / CONFIG_WEBSOCKET_TLS
CPU0
bool
y
CONFIG_LCD_BACKLIGHT_GPIO、CONFIG_LCD_QSPI_RESET_PIN、CONFIG_LCD_QSPI_ID需在工程Kconfig.projbuild里定义才生效。字幕 UI:
projects/common_components/single_screen_font_display/lvgl_ui.c。 配网 adapter:projects/common_components/bk_smart_config/src/adapter/wss/。
4. 工作流程
BLE 配网(Beken App),SSID / 密码写入设备。
STA 连上后
beken_auto_run()→beken_wss_main()建立 WSS。MIC 编码后经
rtc_websocket_audio_send_data上行;下行 PCM / G722 进喇叭。服务端下发的文本进入 LVGL 字幕队列,单屏滚动显示。
音频默认 16 kHz,G722 或 PCM,AEC 打开。
5. 编译与烧录
源码根目录:
make bk7258 PROJECT=beken_wss固件:
<source code>/build/beken_wss/bk7258/all-app.bin单屏字幕依赖字库资源,请按
single_screen_font_display中打开的字体文件放到 SD-NAND(或按工程实际资源路径)。烧录方法同 IDK:代码烧录
6. 问题&回答
Q:如何改 WSS 服务器?
A:改 projects/common_components/network_transfer/bk_wss/bk_wss_main.c 里 websocket_cfg.uri,并保证证书 / SNI 与 CONFIG_WEBSOCKET_TLS 匹配。
Q:屏幕能否换成别的 QSPI / SPI LCD?
A:可以,分辨率宽需为 16 的倍数、高为 8 的倍数。同时改 CPU1 的 LCD 宏和 lv_vendor_init() 宽高,参考 ai_dashboard。
Q:和 beken_wss_nopsram 怎么选?
A:板子有 PSRAM、需要单屏字幕,用本工程。无 PSRAM 或要编 BK7257,用 Beken WSS 无 PSRAM 工程。