语音智能机器人助手的设计与实现

语音智能机器人助手的设计与实现

                                                 (作者小波QQ463431476)

                        (博文来源http://blog.chinaaet.com/zhaocundang/p/5100017667)

         (博文来源:http://www.cnblogs.com/xiaobo-Linux/p/5637861.html)

之前学STM32的时候做的一个项目,我问大家语音识别哪家强?就目前来看,貌似是ICRoute公司吧?然后如果抛弃其它的硬件识别只是基于STM32 Cortex M 核心的话,纯软件去实现,识别效果肯定会不好,应用也是比较差劲的吧。这种识别方式必须先进行录音,然后对你的录音进行匹配,达到识别的目的。

之前拿这个项目参加华为杯比赛来着,没想到没评上,浪费了老师的200块钱,有点小失望,所以把这个项目写出来分享给大家看看吧。

项目实现功能概要:主要实现语音识别,模拟HID键盘,语音控制电脑HID键盘,语音控制外部设备,像台灯、风扇灯。实现语音调整RTC,OLED显示等等。

项目整体设计:

第一副图片是自己手工模块搭建的

第二幅图片是做了一个PCB外扩直插板子

简单介绍一点原理内容:

简介

1.    作品背景及意义

(1)社会背景

随着电脑的普及程度化越来越高,几乎每家每户都有电脑,但是家里的小孩、老人、以及伤残人士不太会或者不方便使用操作电脑,所以设计一款用语音来操作电脑的语音机器人助手是非常必要的,可以在他们不方便地时候提供了方便。

(2)生活窘况

往往早晨的生活是繁忙的,一大早起床,出门。如果我们想一边干别的事情,例如出门前一边系鞋带,或者拿一些东西,一边还想看当前时间、温度是多少的话,不得不抬头去看手机,看钟表,那多麻烦啊!只要我们通过语音,随口这么一说,智能机器人助手就可以实时语音播报当前的时间和温度,这是多么便捷贴心!

(3)PC软件不行硬件行

电脑Win10上的小娜就可以识别语音指令,但是体验效果比较差劲,尤其是电脑配置不够的情况下,打开小娜,也会比较卡。因此,如果采用基于硬件设计的语音机器人助手,语音处理都由硬件完成,指令只要发送出去就好了。这样的效率肯定比电脑软件实现的效果要好很多。

(4)个人工作助手

我想,大概每一个人都想要一个属于自己的智能机器人吧?协助自己处理一些事情,还更加贴心的虚汗温暖,让自己的生活更加富有生活情趣色彩。例如:自己在电脑前,旁边就是自己的小助手,自己累了,或者自己的桌面文件太多,随口这么一说,“打开Word文档”,语音机器人助手就可以帮你打开文档。或者想听歌看电影了,随口这么一说,“播放音乐”, “播放电影”,助手就可以在很短的时间内帮你打开音乐播放器和暴风影音,让你马上聆听音乐,观看电影。。。。。。,啊!生活很美好!

2.    系统简介

本作品是基于STM32微控制器的多功能嵌入式语音控制设备。基于语音识别和嵌入式技术,语音机器人助手能识别人的语音命令,让人们简单、方便的使用计算机,机器人设计主要包括语音识别、MCU主控、USB通信、台灯控制、风扇控制、OLED显示屏,RTC时钟,温度采集,语音播报,电源电路等几个部分,设计小巧、实用!

它能实现语音识别功能,通过采集近距离音频信号来实现相应的指令控制。通过STM32微控制器连接电脑的USB口,将STM32枚举成一个HID人体学输入设备的个性键盘,通过语音识别功能采集人的命令,如“打开暴风影音”语音识别指令后,通过USB发送给电脑键盘键值,便可以播放电影,“打开QQ音乐播放器”便可以播放音乐,此外还可以通过硬件方式对电脑实现休眠和锁屏,以及语音输入电脑登录密码来解锁和电脑唤醒功能。

可以通过语音识别来控制外部设备,例如夏天使用的小风扇,语音控制小风扇的开关,语音识别后也可以通过继电器控制书桌上的台灯开关。也可以温度采集,将采集到的室内温度数值传到微控制器中,OLED显示温度值和语音实时播报室内温度。RTC时钟功能可以在系统关闭的情况下实现对时间的准确计时,也可以进行语音播报时间。另外通过语音输出指令,机器人回答一次,这样实现人机互动功能。系统框图如图1所示。

图1 系统框图

3.    系统创新

(1) 给不会使用或不方便使用电脑的用户带来福利

社会上肯定有不少不会使用电脑的群体,这样一来通过语音控制电脑的方式,就可以简单方便快速地使用电脑,特别是对老年人和伤残人士,在他们不方便地时候提供了一些方便。

(2) 缓解压力,趣味语音交互

(3) 通过一问一答,说一句执行一句命令的方式实现人机交互的功能

可以在繁忙的工作中缓解压力,培养生活兴趣,使生活丰富多彩。

(4) 通过语音可以实现时间小时分钟的调整

语音实现对时间的小时、分钟的快速调整,解放了双手,使生活富有情趣。

(5) 实现对USB台灯、USB风扇的控制

可以对书桌台灯和小风扇控制,给不方便的时候提供了方便。

(6) 与用电脑软件实现的语音控制计算机相比,本作品性能更稳定,使用更方便。

(7) 语音播报

可以实时播报当前室内温度和当前的时间,这样一来就可以通过听的方式获取信息,同时还可以干一些自己的事情,提升生活效率。

一  系统设计

1.1. 系统设计方案

(1)     系统采用STM32作为主控制器,STM32最小系统设计包括MCU核心芯片,电源电路,时钟电路和复位电路。

(2)     语音识别方案选择

目前,STM32语音识别方案有2种,一种是直接基于STM32实现语音识别,第二种是基于LD3320语音模块来实现语音识别。第一种识别方式经过语音采样,放大滤波电路,ADC将模拟量转成微控制器可以识别的数字量,事先进行语音训练,也就是录音,最后将采集到的音频与实现录音好的音频匹配识别。第二种基于LD3320语音识别模块来进行语音识别,这种识别方式效率要高于采用微控制器的直接识别,所以本设计采用这种高效率的识别方式。

(3)     USB串口设计

通用异步传输,又称通用异步串行口,微控制器里常用的通信方式,将微控制器PA9 PA10引脚(RX TX)与外部设备连接,实现串口发送数据。

(4)     USB 从机设计

直接连接微控制器的PA11 USBDM 和PA12 USBDP引脚,即可让电脑识别成USB设备。

(5)     继电器控制电路,控制台灯、风扇的开关。

(6)     USB风扇、台灯接口,通用接口,实用方便。

(7)     DS18b20温度采集电路,用于实时采集当前的温度。

(8)     语音文本朗读,将文本朗读成语音模块,用来播报当前的温度和当前的时间。

(9)     OLED显示系统菜单,OLED右侧显示系统功能菜单,可以实时切换。

(10)RTC时钟,显示当前时间,也可以语音调节分钟,小时。

1.3 UCOS II操作系统运行框图

(http://www.cnblogs.com/xiaobo-Linux/ QQ463431476 小波)

项目加入UCOS II操作系统,使程序并发运行,把功能分成几个模块,便于维护和删减项目功能,项目UCOS II操作系统运行框图如图1.3和图1.4所示:

图1.3 UCOS II任务创建

   二  系统硬件设计

2.1系统硬件电路设计

(1)        电源电路

STM32主控制器采用3.3V电压,因此,电源电路采用5V转3.3V稳压供电,为微控制器已经外部设备提供主要的供电,电源电路如图2.1.1所示。

图2.1.1 电源电路

(2)        STM32最小系统电路

STM32最小系统电路包括STM32主控制芯片、时钟电路、复位电路等几个部分,最小系统如图2.1.2所示。

图2.1.2 STM32最小系统电路

3.1 系统PCB制板设计

(1)第一板PCB开发板设计,设计比较大,跑线也比较多,PCB如图3.1.1所示。

图3.1.1 第一板PCB

(2)第二板设计注重简洁,去掉了多余的GPIO口和LCD,增加了OLED,引出UART,整体上比较实用,如图3.1.2所示。

图3.1.2第二板PCB

(3)第三板将STM32核心板单处拿出,方便移植连接外部设备,避免手工焊接STM32 144引脚芯片照成整个板子无法使用的情况。如图3.1.3所示。

图3.1.4第三板PCB

STM32被枚举成USB设备后,连接电脑,电脑将识别为USB HID键盘,(学校请无视= =)如图4.4.3所示:

图4.4.3STM32被电脑识别

四 简单实现原理介绍

一、系统功能实现原理

1.1 STM32F103芯片硬件USB从机接口原理

(1)在STM32F103芯片中,USB接口区使用一个专用的512字节的SRAM数据缓冲存储器用于和PC之间进行数据的发送和接收,该缓冲区能被USB外设直接访问,芯片USB外设结构如图1.1所示。

图1.1 芯片USB结构

2.4.3 LD3320语音识别原理

用户通过MIC输入音频流,对输入的音频流进行放大滤波整形后,LD3320芯片进行频谱分析,对输入的音频进行特征提取,另外一方面,在MCU中编写语音关键词拼音,在语音识别器中,芯片对音频和拼音串 进行匹配,匹配成功后,输出识别结果,识别流程如图2.4.3所示。

图2.4.3 识别流程

先简单介绍到这么多,看下视频演示吧!(http://v.qq.com/page/g/0/i/g03050r660i.html)

如果感兴趣,或者有什么想法想要探讨的话,请在下面留言!或者联系QQ463431476一起学习吧!

设计代码下载:https://item.taobao.com/item.htm?spm=686.1000925.0.0.6wFecf&id=534809801064

时间: 2024-08-27 09:34:36

语音智能机器人助手的设计与实现的相关文章

我的手机管家(11) 网络助手 界面设计及适配器

我的手机管家(11)   网络助手  界面设计 使用一个 <SlidingDrawer>标签用来布局一个抽屉样式 两个属性要注意: 一个是内容布局id,   手柄id android:content="@+id/content" android:handle="@+id/handle" android:orientation="vertical" 抽出的方向 <SlidingDrawer android:id="@+i

【软件工程】02组软件工程组队项目——课程管理小助手数据库设计文档

一.引言 1.1编写目的 数据库的表结构设计是整个项目开发中一个非常重要的环节,一个良好的数据库设计,可以提高开发效率,方便系统维护,并且为以后项目功能的扩展留下余地.我们通过书写这份文档说明,从各方面进行学生课程管理小助手系统的数据库设计规划,用它指导该系统在数据库各方面的内容,为系统开发的程序员.系统分析员提供基准文档.我们也希望通过写数据设计说明书,规范数据名称.数据范围.数据代码等.这份文档是项目小组共同作战的基础,有了开发规范.程序模块之间和项目成员之间的接口规则.数据方式,大家就有了

WP8.1下 Cortana语音命令 VCD文件 设计

Windows Phone8.1下的Cortana,可以通过语音的方式,打开.设置应用,进行页面跳转.执行任务. 我们先要创建VCD(VoiceCommand.xml)文件 <?xml version="1.0" encoding="utf-8" ?> <VoiceCommands xmlns="http://schemas.microsoft.com/voicecommands/1.1">  <!--1.0下,不含

语音助手下个互联网风口?

最近一段时间看到一个语音助手帖子,说iphone的siri这么难用为什么还会被一直研发,谷歌的GoogleAssistan已经在appstore上架了.我想了下就立即回复苹果不可能放弃siri,因为语音助手太重要了.因为语音助手大家可能只能想到的只是打个电话,放首歌,搜索下问题,但是如果我说是"智能语音助手"大家会怎么想!!! 大家可以构想下智能语音助手,我们只需要告诉它"我要从北京去上海,帮我订张早晨8点去上海的高铁票,晚上要住在离东方明珠最近的星级酒店",只能助

大三上学期安卓一边学一边开始做一个自己觉得可以的项目 广商小助手App 加油

这项目构思好多 一个人一步一步来 一边做一边为后面应用铺设 广商小助手APP 设计出的软件登录场景 实现(算是可以) 界面大体出来了 界面点击方面也做了很多特效 上图其实点击各颜色后会出现各种图和反应 当然还有好多东西没弄 当前时代都看脸一个不精美的软件少人用 所以多花心思 项目还在努力中>>>>>>>

cocos2dx实现android的对讯飞语音的合成(语言朗读的实现)

事实上非常easy,只是有些细节须要注意. 关于讯飞语音在android上的应用,大家须要自己去下载SDK,然后依照讯飞语音提供的api在自己的android的Demo上执行成功,那东西也相当的简单. 然后,大家也须要把自己的cocos2dx项目在android 上部署起来,这些网上资料非常多,也不一一解释,兴许我也会做出相应的总结.这里不多说. OK,废话不多说,直接上代码 思路就是,通过cocos2dx的JNIhelper类实现C++对Java的调用,然后实现语音功能 废话不多说: 直接上代

面向互联网的文本信息处理,语音和音乐搜索技术的发展现状【搜集资料时学习所得,未详加整理】

Speech recognition: Key Words: Distributed Speech Recognition(DSR 将嵌入式语言识别系统的识别功能架构在服务器上[并非是指分布式服务器,而是指终端与服务器属于分布式关系[8]]) Network Speech Recognition(NSR 重点在于网络,终端高效实时传输语音信号,服务器处理[9]).当下都是终端语音信号由服务器/云来做处理. Emotion Speech Recognition(ESR), Spoken Infor

考勤助手——第十一周工作安排

本周需完成数据库设计,包括数据库需求分析,设计E-R图,数据库结构的实现 安排如下: 1.薄晰月:对考勤助手的数据库进行大体架构,即考勤助手数据库1.0版本,供小组成员进行完善. 根据小组成员提出的数据库2.0版本进行讨论 制定出考勤助手——数据库设计的最终版本 2.顾恭:  分析数据库2.0版本的不足  参与数据库最终3.0版本的设计. 3.潘禹桐:提出完善方案,进行数据库2.0版本的设计. 4.李雨墨:参与并提交数据库2.0版本的设计方案.

WinCC语音报警实现方法

概述 在WinCC中实现语音报警有好几种方式,用的比较多的就是使用WINCC自带的报警器进行组态,它可以在报警进入时播放预先选择的语音.还有就是使用脚本调用API函数PlaySoundA来播放语音,不过它也只能播放固定的语音,这两种方式都不够灵活. TTS Windows操作系统提供了一个TTS(Text-To-Speech)引擎,我们可以使用VBS或者C脚本在WinCC里面调用.不过这种方式实用价值不大,因为脚本在调用TTS发音时对线程是阻塞的,这时候后面的脚本都只能排队,无法正常执行.大家都