嵌入式ARM Linux与蓝牙BLE语音识别与控制项目
文章平均质量分 77
本专栏使用imx6ul, 结合BLE蓝牙遥控器,将语音从蓝牙遥控器传到ARM Linux based imx6ul板子上面,同时将收到的语音通过百度语音识别引擎识别,通过识别的结果做硬件控制
TonyHo
这个作者很懒,什么都没留下…
展开
-
imx6ul蓝牙语音识别项目之6:语音格式说明以及整合与实际效果演示
前面我们准备好了所有的软件硬件,现在是时候开始正在的业务逻辑功能的实现了。语音数据的格式语音遥控器走的是BLE, 对于Voice Over BLE有多种方案,不同的厂家和方案商都不同的实现。下面我们使用TI的来说明,其他的也是类似的。这里面主要是说明了各种格式,以及传递协议。 我们需要接受和decoder语音,那么就需要搞明白这些东西。具体而言,语音的Profile如下:交互过程如下:注意第一包语...原创 2018-07-02 16:48:34 · 1541 阅读 · 1 评论 -
imx6ul蓝牙语音识别项目之5:BLE基础与imx6ul上的BLE外设的使用
前面我们准备好了下面这些软件:BlueZ 5.49及其运行需要的组建百度语音识别及其运行需要的依赖库Controller的驱动并编译好了测试代码。 那么接下来,我们就需要和语音遥控器连接了,但是在此之前需要对BLE有所了解。BLE VS Wifi VS ZigBeeBLE属于Personal network, 工作距离近, 一般在10m内。BLE协议架构Core Specification 与 a...原创 2018-07-02 16:37:59 · 1347 阅读 · 0 评论 -
imx6ul蓝牙语音识别项目之4:构建ARM Linux语音识别环境
语音识别的选择前面我们准备好了BlueZ stack, 接下来就需要准备语音识别库了。对于语音识别,国内主要的提供商有:科大讯飞图灵机器人思必驰信息科技有限公司北京捷通华声科技股份有限公司百度语音北京云知声信息技术有限公司哦啦语音但是,我们是在ARM Cortex-A7单核上面跑,平台为ARM Linux,而且我们不准备跑python,而是使用C/C++, python脚本写代码会很快,但是效率较...原创 2018-07-02 16:34:40 · 3120 阅读 · 3 评论 -
imx6ul蓝牙语音识别项目之3:用户态蓝牙配置
stack的划分在前面的文章中,我们已经配置好了内核态对蓝牙的支持, 包括驱动以及内核态的stack。Linux蓝牙的stack为BlueZ, 参考前面的文章的图片,可以知道,内核态和用户态使用的是MGMT接口来通讯。底层主要负责和Controller数据的传输,而数据的传输接口一般为USB,SDIO以及串口。具体而言,功能如下:其中个人认为比较复杂的是SMP,内核态中对:控制数据这两类信息通过s...原创 2018-07-02 16:31:31 · 1025 阅读 · 0 评论 -
imx6ul蓝牙语音识别项目之2: 添加蓝牙Controller支持
蓝牙架构在Linux中蓝牙的stack分层如下:从总体上看分为两层, 一个在内核态,一个在用户态,内核态。在内核态中的部分暴露了一个特殊的Socket给用户态,然后用户态使用命令+参数的格式传递给内核态。而如果硬件有反馈信息,一般是事件,那么会有callback消息上来。硬件说明对于蓝牙,一般都是模组,例如有些是BT Wifi模组,即BT-Wifi为一体的模组。这种模组一般是通过UART,SDIO...原创 2018-07-02 16:28:38 · 1120 阅读 · 0 评论 -
imx6ul蓝牙语音识别项目之1:硬件准备
硬件在一些时间的延误后,终于收到了顺丰过来的板子,本以为需要到年后了。听说板子的延误是因为发现了一个小问题。收到板子后打开看到的是盒子包装,看起来“高大上”的感觉:打开,里面有一张V3 软件的BSP, 网线, OTG USB 线,以及电源线:核心的板子看起来不错,至少做工和基本可见的布线很漂亮:但是板子的尺寸比我想象的小。软件在将关盘拷贝到电脑后,发现结构和以前IoT和Industry里面是类似的...原创 2018-07-02 16:25:20 · 1841 阅读 · 0 评论