如何让机器人真正读懂人,而不只是完成对话交互?核心在于赋予机器人自然的表情表达与人机共情能力。对仿生机器人而言,研发的目标从来不是实现机械化的多轮对话,而是结合语言、表情与场景信息,读懂情绪、捕捉细节,还原人类最真实的需求。
秉持这一理念,在本届全国大学生嵌入式芯片与系统设计竞赛瑞芯微&飞凌嵌入式赛题中,来自华南理工大学的参赛学生依托【RK3588】ELF 2开发板,打造了一款智能交互仿生人头,最终斩获国赛一等奖。
院校名称:华南理工大学
团队名称:汪汪汪汪队
团队成员姓名:刘馨颖、陈一臻
指导老师:邢晓芬
项目介绍
该获奖作品基于【RK3588】ELF 2开发板,构建了一款具备多模态感知与实时交互能力的智能仿生人头系统。系统以语音交互为核心,融合声源定位、语音识别(ASR)、大语言模型对话(LLM)、语音合成(TTS)、音频驱动面部动画(Audio2Face)、视觉追踪、人脸识别、情绪识别、共情响应及29路舵机控制等技术,实现了从“听声辨位”到“察言观色”的完整人机交互闭环。
智能交互仿生人头的系统采用感知层—决策层—执行层三层架构,以瑞芯微RK3588作为核心计算平台。
感知层负责外部环境信息采集:通过Yundea 8MICA双通道麦克风阵列获取语音信号与声源方位信息,利用USB摄像头采集视觉图像。
决策层依托RK3588完成全部AI推理任务,包含:sherpa-onnx语音识别、灵心1.5B大语言模型对话交互、Piper TTS语音合成、UniTalk音频驱动面部动画与MLP表情映射、RetinaFace人脸检测、人脸识别及关键点锁定、MobileNetV2情绪分类,以及共情Transformer推理。
执行层负责将决策输出转换为物理动作,通过三片PCA9685(I2C总线4,设备地址0x40~0x42)驱动29路 A0090/MG996R舵机,实现面部表情与头部姿态运动控制。
各模块基于共享状态文件完成跨进程数据交互:视觉进程输出人脸、情绪检测结果,语音进程读取后注入大模型对话提示词;语音进程写入说话状态信息,视觉进程读取并控制打断逻辑,构建 “感知—决策—执行” 完整业务闭环。
软件系统架构图软件系统按功能划分为三大并行子系统:语音管线、视觉管线与表情控制管线。所有子系统基于【RK3588】ELF 2开发板采用多进程架构运行,依靠共享状态文件完成跨进程数据交互。
语音管线实现语音采集→AEC回声消除→ASR语音识别→LLM大语言模型推理→TTS语音合成→扬声器播放完整链路处理。其中ASR选用sherpa-onnx流式transducer模型(14M参数),支持中文实时转写与语音端点检测;LLM部署基于心理咨询数据集微调的灵心1.5B模型(RKLLM格式,W8A8_128g量化,NPU硬件推理);TTS采用Piper中文男声模型,在CPU端完成实时语音合成。
视觉管线构建摄像头采集→RetinaFace人脸及关键点检测→ArcFace人脸识别→MobileNetV2情绪分类→PID舵机追踪的视觉闭环。表情控制管线集成UniTalk Audio2Face模型(音频转52维ARKit blendshape系数)与MLP分区域映射网络(blendshape系数映射至29路舵机角度),实现语音驱动的自动音唇同步效果。
“语音识别模块”介绍—StreamingASR(asr_engine.py)
系统采用sherpa-onnx流式transducer模型,接收16kHz单声道PCM音频,以10ms帧长进行滑动推理,实时输出中文转写文本,并通过端点检测实现识别任务自动截断。
调度机制:主循环以100ms周期采集音频;每2帧(200ms)调用get_partial()获取识别中间结果,用于界面实时展示。当is_endpoint()返回真时,调用finalize()获取完整识别文本,并推送至文本队列供LLM读取处理。系统配置能量门控(NOISE_GATE=0.008)过滤环境底噪;扬声器播放语音时自动抬升激活门限(ENERGY_THRESHOLD_HIGH=200),抑制AEC回声残留带来的误触发问题。
大语言模型模块—RKLLMClient(llm_client.py)
灵心1.5B模型采用双核NPU模式运行(RKNN_NPU_CORE=0,1)。该模型基于Qwen2.5 1.5B基座,在开源心理咨询数据集上完成微调;经过RKLLM W8A8_128g量化后部署于平台。本系统对RKLLM官方示例源码进行二次开发,得到llm_demo_v3.cpp,新增命令行传入system prompt文件路径的能力,可将 “温暖专业的心理咨询师” 角色设定与视觉情绪状态(例如[用户当前情绪: Happy(92%)])注入对话上下文。模型采用流式输出机制,以句号、问号、感叹号作为分句边界拆分完整语句,实现TTS合成与音频播放流水线重叠,仅首句存在初始推理延迟。
语音合成模块—PiperTTS(tts_client.py)
采用Piper TTS中文男声模型(zh_CN-chaowen-medium),将LLM输出文本合成为22.05kHz 16位PCM音频,在CPU上实时合成。合成速度约1.5倍实时,每次调用返回完整音频字节流。音频同时作为AEC参考信号存入播放器的ref_deque用于回声消除。
视觉追踪模块—empathy_track_servo_v3.py
采用RetinaFace(MobileNet0.25骨干,输入320×320,RKNN NPU推理)对摄像头每帧进行人脸检测,输出边界框及 5个关键点(双眼、鼻尖、嘴角)。检测到的人脸区域经 MobileFaceNet(w600k_mbf.rknn,RKNN NPU Core 2)提取512维特征,与注册人脸库余弦比对实现身份识别,身份人的左眼相对画面中心的偏移量作为追踪误差,经卡尔曼滤波平滑后输入PID控制器;
追踪策略:小偏移优先调整眼部舵机(通道 6,23)实现精细跟随,大偏移联合颈部舵机(通道30-32)协同快速回正。8像素死区避免微颤。目标丢失时触发"盲寻模式":根据最后已知位置或声源定位结果发送扫描信号引导云台转动。
跨进程通信模块—shared_state.py
视觉进程与语音进程通过JSON文件实现跨进程数据共享,避免直接进程 间同步的复杂性。
视觉进程写入:
write_vision_state(emotion, confidence, face_detected, user_identity, face_box, face_center) → 写入 /tmp/morpheus_vision.json
语音进程写入:
write_voice_state(speaking, status, user_text, bot_text) → 写入 /tmp/morpheus_voice.json
读取接口:
read_vision_state() → dict read_voice_state() → dict get_emotion_prompt() → str
功能: 读取视觉状态,若face_detected且confidence>0.3,返回“[用户当前情绪: Happy (92%)]”格式字符串供LLM注入。这种设计确保了视觉进程崩溃时语音进程仍能继续运行(读到旧数据),反之亦然,提高了系统鲁棒性。UI 显示模块也通过此接口获取对话与情绪状态。
历经四个月的设计、编码与调试,这个作品最终呈现为一个具备完整语音交互、视觉追踪、音唇同步与共情表达能力的仿生人头系统。当用户走近,它会主动转头跟随用户的目光,实现eyes contact;当用户说话,它能听懂并回应,同时嘴唇随语音自然开合;当用户做出不同表情,它能识别情绪并以符合社交预期的方式共情反馈——这些不再是科幻场景,而是本作品已实现的真实功能。
参赛平台介绍
本次全国大学生嵌入式芯片与系统设计竞赛,瑞芯微&飞凌嵌入式联合赛题提供的参赛硬件平台包含【RK3588】ELF 2开发板、【RV1126B】ELF-RV1126B开发板、【RK3506B】ELF-RK3506开发板。
三款硬件平台覆盖从入门级到高性能的完整梯度:ELF-RK3506开发板侧重基础嵌入式系统学习,适合开展外设驱动、Linux应用开发类项目;ELF-RV1126B开发板面向轻量边缘视觉场景,能够满足低功耗图像识别、智能感知类作品开发;ELF 2开发板搭载高性能NPU算力,可支撑大模型部署、复杂多模型协同推理等高难度工程实践。
刚刚介绍的项目,正是基于ELF 2开发板开发实现的。接下来,就让我们详细了解一下这款高性能开发板的核心参数与硬件优势。
ELF 2开发板基于瑞芯微RK3588高性能处理器设计,拥有四核ARM Cortex-A76与四核ARM Cortex-A55的CPU架构,主频高达2.4GHz,内置6TOPS算力的NPU,这一设计让它能够轻松驾驭多种深度学习框架,高效处理各类复杂的AI任务。
在接口资源方面,ELF 2开发板提供了丰富的选项,包括多个USB、PCIe、UART等通信接口,以及HDMI、DP等音视频接口。此外,它还支持多种扩展模块,适配了显示屏、摄像头、光照传感器、运动传感器、语音控制等丰富的选配模块。而且在开发板上预留的40pin排针可兼容树莓派的各种模块,为您的嵌入式学习之旅提供了无限可能。
ELF 2开发板已经适配了Linux 5.10及Ubuntu 22.04操作系统,后续逐步实现对Android、OpenHarmony等系统的适配,旨在为在校学生、高校教师、专业工程师、兴趣达人提供丰富的学习与开发环境。
ELF 2开发板附带了丰富的教学资料,系统而全面地介绍了AI开发的整个流程。资料中不仅模型种类丰富多样,而且对典型模型都进行了深入的剖析,详细阐述了模型的优化思路与方法,让AI项目能够真正地从理论走向实践。