树莓派开发板的智能语音控制程序

概述

介绍

智能语音控制中心

C语言编写的基于百度语音识别、语音合成和图灵机器人的智能语音控制中心。程序自动适配环境音量,取适当阀值当说话后才开始录音。加入偶发性声音检测机制,不会对突然性的声音做出处理。此程序能够在Nanopi Neo/Neo2、OrangePi Zero Plus(H5)上面正常运行,因为树莓派外置声卡的原因,录音声音可能很小,所以针对树莓派加入了声音放大程序(可选择开启或者关闭),实验结果还算理想。

程序依赖于curl、mpg123和alsa。但是多安装了一个mp3播放器,作为百度TTS MP3数据播放的第二种方式。 其中GPIO的控制方式为wiringPi,鉴于很多官方系统已经预装了wiringPi,所以在程序附带的库中,并未放入。如果需要,请自行安装wiringPi。 搭建步骤和演示视频戳:https://www.quarkbook.com/?p=375

重要!使用前请先修改ai_neo2/src/config.h中的百度API和图灵机器人API为自己的API,毕竟我也是用的免费的[\笑哭]。在各自官网创建项目之后即可免费获取。

百度语音识别官网:http://yuyin.baidu.com/ 图灵机器人官网:http://www.tuling123.com/ 申请API方法也会在搭建步骤中详细描述。 **未来计划** 1、开发基于2.4G模块或者433模块的远程控制开关。 2、接入智能家居控制中心 **脚本说明** 1、在第一次运行程序之前,务必执行 sudo ./build.sh 来配置系统环境、编译相关库、编译AI可执行程序。 2、当编译完成之后,可以执行 sudo ./run.sh 来运行AI程序了。除了第一次运行而外,以后均不需要再进行第一步操作(再用uninstall.sh除外) 3、卸载安装 sudo ./uninstall.sh 运行这个程序会解除编译,并删除系统中的库,当解除编译后重新运行程序需要进行第一步。 4、重新编译程序 sudo ./only_rebuild_ai.sh 运行这个脚本会重新编译AI控制程序。前提是已经运行了第一步,并且没有执行卸载脚本。 **目录结构说明** 1、文件夹aicontroler 文件中的src为程序代码,build为存放编译后的可执行文件(测试版本还存放配置文件)。 2、文件夹lib 程序运行所需要的库。有alsa-lib、libmpg123、curl以及tools中的npi-config、和树莓派、Nanopi NEO2、OrangePi Zero Plus各自的WinrgPi。 3、文件夹test 测试版程序,不需要WiringPi就能运行,所以能够在开发板和电脑上面运行。配置文件在build文件夹中。 4、脚本build.sh 自动编译安装脚本。会自动安装相关包、编译安装依赖库和aicontroler程序。一键编译,方便快捷。只有第一次运行或者运行了uninstall.sh才需要运行这个脚本,运行这个脚本会花较长时间,且磁盘空间必须要有2G的剩余。 5、脚本only_rebuild_ai.sh 只重新编译aicontroler程序,用于修改了内置配置文件之后重新编译程序。 6、脚本run.sh 运行程序。可以到aicontroler/build中直接执行程序。 7、脚本uninstall.sh 卸载程序但不会卸载已经安装的软件包。 **运行环境** 原则上是支持任何linux系统的,只要安装好相关的库。经过实际测试,Ubuntu、Debian只要安装了相关的库,都可以正常运行,Centos暂未测试。不支持windows,需要的自行移植。 引用的一些代码、库和资料: https://curl.haxx.se/ http://www.alsa-project.org/main/index.php/Main_Page http://www.mpg123.de/ http://blog.csdn.net/ownWell/article/details/8114121 http://blog.csdn.net/freeze_z/article/details/44310245

特性

源码下载

GIT下载地址:

https://gitee.com/geeiot/aicontroler.git

  1. 扫码加公众号关注:itcode
  2. 声明

【写作说明】以上内容分享给喜欢编程,有梦想的程序员们,希望能够帮助到你们。以上文章属于此公众号原创所有,如需转载请注明出处。

【免责申明】本公众平台不是广告商,也没有为其他三方网站或者个人做广告宣传。此分享的源代码和文章是小编在项目中、学习中整理的一些认为不错的项目。用户产生的一些自愿下载或者付费行为。与平台没有直接关系

【投稿邮箱】315997972@qq.com

欢迎投稿分享你的优质源码或文章

本文分享自微信公众号 - 程序源代码(itcode)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小闫笔记

数据库相关操作

DBMSDatabase Management System 数据库管理系统,简称DBMS ,是用来管理数据的专用软件。

8820
来自专栏小闫笔记

每日笔记

装饰器的作用:为已有的函数,在不改变源代码和不改变原函数的调用方式的前提下,增添新的功能。

7720
来自专栏数据云团

python 虚拟环境 virtualenv

#py3安装,这样用virtualenv创建的virtualenv默认python版本是py3

10940
来自专栏相遇Linux

怎样在Linux内核中埋炸弹获取root权限<2/2>终结篇

上文中的漏洞内核模块代码和应用层代码两者狼狈为奸,修改了系统内存中所有的jeffnice+20为jeffnice-19。

16240
来自专栏知了一笑

Linux系统:centos7下搭建Rocketmq4.3中间件,和监控台

rocketmq的默认配置极其耗内存,要进行修改。 1)修改runserver.sh配置 注释掉原来的,添加新配置

11130
来自专栏漏洞战争

Winafl中基于插桩的覆盖率反馈原理

最近winafl增加支持对Intel PT的支持的,但是只支持x64,且覆盖率计算不全,比如条件跳转等,所以它现在还是不如直接用插桩去hook的方式来得准确完整...

13020
来自专栏数据云团

框架篇-Django搭建博客应用

$ sudo apt-get install mysql-server mysql-client

9320
来自专栏小闫笔记

爬虫框架Scrapy(一)

Absorb what is useful. Discard what is not. Add what is uniquely your own.

17330
来自专栏Happy的分享

【快学Docker】快速创建容器,容器常用命令

容器是Docker的三大核心概念之一。简单地说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运...

12340
来自专栏Java后端技术栈cwnait

创建你的第一个shell脚本

安装自己的虚拟机或者买个什么云服务,有的也是很便宜。我之前买的一个云三年300多。

14510

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励