这个DeskBot_demo
例程详见demo仓库的文件夹,他依赖了AIChat_demo
这个子工程,如果在Echo ARM开发板上运行的话,还会依赖yolov5_demo
这个例程,跑AI相机。
1.上手编译使用
1.1.编译deskbot
在电脑上运行SDL仿真
注意更改conf/dev_conf, 将
LV_USE_SIMULATOR
置1
shcd ./DeskBot_demo mkdir ./build cd ./build cmake .. make
然后就可以在ubuntu上运行了
shcd ../bin ./main
编译到开发板上运行
注意更改
conf/dev_conf
, 将LV_USE_SIMULATOR
置0
shcd ./build cmake .. -DTARGET_ARM=ON make
然后把可执行文件所在的文件夹
/bin
, 复制到开发板, 在开发板上就能运行了注意:
shcd ../bin ./main
1.2.Server运行
python环境搭建详见AI语言助手demo(Server端), 然后进入你搭好的虚拟环境中,运行即可
python ./main.py --access_token="123456"
1.3.注意
!! 使用前请先修改./bin/system_para.conf
中的内容 !!
./bin/system_para.conf
中有高德API key,需要换成你的API key,用于天气等数据的获取每个page可视为一个APP, 想要自行添加可以参考模版添加
你的个人电脑运行服务端
server
时, 需要跟开发板Client
端, 连接到同一个网络下, AI chat才能正常访问. 当然, 你也可以使用电脑进行网络共享(默认开发板是172.32.0.93, 电脑是172.32.0.100).
2.如何修改唤醒词
首先进入snowboy唤醒词网站,录制唤醒词,然后生成之后只需要把文件下载的xxxx.pmdl
文件放到model目录下即可,我这里生成了echo.pmdl
,然后放入到AIChat_demo/Client/third_party/snowboy/resources/models
这个文件夹即可,编译的时候,我的Cmake会复制这个文件到你的bin
特定文件夹中的,可以自行看一下cmake中怎么写的。
然后进入AIChat_demo/Client/Application/UserStates/Idle.cc
这个文件,更换你的.pmdl
唤醒词文件,然后就可以了
void IdleState::Run(Application* app) {
USER_LOG_INFO("Idle state run.");
SnowboyDetect* detector = SnowboyDetectConstructor("third_party/snowboy/resources/common.res",
"third_party/snowboy/resources/models/echo.pmdl");
SnowboyDetectSetSensitivity(detector, "0.5");
SnowboyDetectSetAudioGain(detector, 1);
SnowboyDetectApplyFrontend(detector, false);
std::vector<int16_t> data;
while (state_running_.load() == true) {
if(app->audio_processor_.recordedQueueIsEmpty() == false) {
app->audio_processor_.getRecordedAudio(data);
// 检测唤醒词
int result = SnowboyDetectRunDetection(detector, data.data(), data.size(), false);
if (result > 0) {
// 发生唤醒事件
USER_LOG_INFO("Wake detected.");
app->eventQueue_.Enqueue(static_cast<int>(AppEvent::wake_detected));
break;
}
}
}
SnowboyDetectDestructor(detector);
}