基于语音云识别的轮机模拟器交互系统设计
2024-04-25王明峰
王明峰
(广州航海学院,广东广州 510725)
0 引言
在触摸操控、手势识别方式和姿态识别方式等人机交互方式迅速发展的今天,轮机模拟器仍采取传统的键鼠控制方式,存在训练效率不高和操作方式单一的问题,深入研究轮机模拟器交互方式不但能提高训练效率,还能推动轮机模拟器发展。目前,部分方案采用嵌入式设备本地化语音识别的措施以解决该问题,但这种方案存在语音识别不准确和时延高的问题。本文基于语音云识别技术和嵌入式设备提出一种轮机模拟器人机交互方案,结合语音云识别的准确性、低时延及嵌入式设备体积小、功能强的优点,提高轮机模拟器利用率和操作便捷性。
1 轮机模拟器交互系统整体设计
传统的人机交互方式强调视觉而弱逻辑,也称作GUI(Graphic User Interface),而语音交互则强逻辑无视觉或者强逻辑弱视觉,也称作VUI(Voice User Interface)[1]。VUI可以通过语言传递很多信息,包括认知、逻辑甚至是情绪等。轮机模拟器人机交互不需要对语音进行更深层次分析,仅需要识别出用户所说的话,并执行相关动作。
此过程大致可以分为五个环节:一是语音采集环节,该过程中采集用户语音并编码;二是语音识别环节,该过程中上传编码后语音到云端识别并回传;三是语音处理环节,该过程中将回传信息转换为机器可识别的文本信息;四是语音执行环节,该过程中通过对文本识别做出相应动作;五是语音反馈环节,该过程中做完上述动作后将结果反馈给用户。系统框图如图1所示。
图1 轮机模拟器语音交互系统整体设计
2 轮机模拟器交互系统硬件设计
在硬件方面,使用适用于单片机的Python解释器和库均可。本文选用支持MicroPython的STM32F103-ZET6作为主控芯片,支持MicroPython是为了使用Python进行软件部分开发。结合ESP8266 Wi-Fi模块通信,ISD4004系列完成语音采集与编码,OLED显示屏完成语音反馈。硬件总体设计框图如图2所示。
图2 硬件总体设计框图
其中,为了简化供电线路,本文采用USB进行5 V供电,并通过降压芯片转换为MCU供电电压,具体电路图如图3所示。
图3 USB供电并转为MCU电压
此外,该系统还设计了一块拓展底板,包括用于连接各个模块的排母、LED状态指示灯,目的是保证各模块之间数据稳定交互及未来系统拓展。其原理图如图4所示,完整系统实物图如图5所示。
图4 拓展底板原理图
图5 整个系统实物图
3 软件设计
软件设计的总体思路如下:
第一,设备上电后完成系统自检,确保设备正常工作。
第二,完成系统自检后进行系统的初始化,包括各个模块所需功能的初始化,如STM32的GPIO的初始化、SPI通信和IIC通信的初始化、串口通信的初始化等。
第三,完成各个模块的初始化后,根据嵌入式软件开发常用的几种框架以及该设计的任务需求,选择使用实时操作系统FreeRTOS(Free Real Time Operating System)。
第四,若采集到语音信号,并收集到语音识别得到的数据,将得到的结果显示在OLED屏幕上,并通过Wi-Fi模块将控制指令发送给上位机进行控制。
软件设计的总体流程如图6所示。
图6 软件设计的总体流程
软件设计可以分为三个部分,一是核心控制模块的程序设计,二是各个从设备模块的驱动程序设计,三是调用云识别的程序设计。在核心控制程序设计过程中,由于该系统预装了FreeRTOS,更加方便为STM32 芯片做各个任务的控制和资源调度。当ISD4004录制并存储后,由STM32通过Python程序调用云端识别并返回给STM32处理后,由OLED屏幕显示,通过ESP8266实现轮机模拟器中的上位机与语音识别系统之间的交互。在驱动程序设计中,选择合适的OLED显示内容和调用ESP8266即可。在调用云识别的程序设计中,经对比,由于科大讯飞并不免费,腾讯云审批烦琐,在阿里云和百度云中,阿里云相对易用[2],因此,云端识别采用阿里云智能语音服务,其具有识别准、处理快及模型可定制的优点,可以解决普通话不标准、船舶场景下中英混合交流等难题。
4 云识别的语音交互与控制
4.1 实验准备
在板卡上编写Python程序,实现轮机模拟器的云识别语音交互与控制,具体操作如下:
第一步,使用以下命令安装Python SDK:
pip install aliyun-python-sdk-core==2.13.3
第二步,配置环境变量、编码格式和采样率。
通过环境变量读取访问凭证,智能语音交互的AccessKey ID、AccessKey Secret和AppKey的环境变量名:ALIYUN_AK_ID、ALIYUN_AK_SECRET、NLS_APP_KEY。
4.2 实验过程与结果
发出声音: “查看发电机运行状态” ,此时,系统会生成一个PCM编码格式16 000 Hz采样率的录音文件,等待系统返回代码并在OLED屏幕上显示。当系统在OLED屏幕上显示 “录音文件识别请求成功” 即表示录音文件已经传到阿里云识别,当系统在OLED屏幕上显示 “录音文件识别成功” ,即表示阿里云已经识别完成录音文件,并回传到嵌入式设备。轮机模拟器的机舱监测与报警系统能够发出声光报警信号[3]。模拟器系统会显示当前发电机运行状态,OLED屏幕同步显示发电机状态。
图7为轮机模拟器屏幕状态,图8为当前状态下OLED屏幕同步显示状态。
图7 当前状态下轮机模拟器显示状态
图8 OLED显示状态
5 结束语
本文设计的基于语音云识别的轮机模拟器交互系统,具有良好的语音交互功能,能够顺畅地同轮机模拟器使用者交互,并根据交互者语音指令完成响应任务。利用该系统可以方便快捷地进行模拟器使用,也可以推广到其他复杂项目中,具有一定的参考价值。