AI语音助手

一、项目简介

ai语音管家接入了图灵机器人,利用百度的语音识别和语音合成以及各种第三方库实现了和机器人的智能对话,

二、应用技术

C++STL,cmake,图灵机器人,百度语音识别和语音合成,HTTP第三方库,jsoncpp,libcurl,centos7录音工具和vlc播放工具,Linux系统/网络编程

三、用到的工具

  • 注册图灵机器人并身份认证:http://www.turingapi.com/

  • 注册百度语音识别:http://ai.baidu.com

  • 下载C++SDK::https://github.com/Baidu-AIP/sdk-demo/tree/master/speech/cpp

  • 安装cmake:https://blog.csdn.net/fancyler/article/details/78009812

  • 安装高版本gcc:
    sudo yum install centos-release-scl
    sudo yum install devtoolset-6
    scl enable devtoolset-6 bash

  • 安装jsoncpp解压:http://www.json.org/json-zh.html
    cd jsoncpp-1.8.3
    make build
    cd build
    cmake …
    make
    sudo make install

  • 安装openssl:sudo yum install openssl-devel

  • 安装libcurl:https://curl.haxx.se/download.html
    tar xzf curl-7.64.1.tar.gz
    cd curl-7.64.1
    ./configure
    make
    sudo make install

  • 安装录音工具vlc:
    sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
    sudo yum install vlc -y

四、项目框架图

在这里插入图片描述

  • 录音:利用Centos自带的录音工具arecord
  • 语音识别接口(ASR):将录制的语音文件进行识别,识别后的信息以json串的形式存储,最后再提取出语音信息,以字符串的方式打印。
  • 加载配置文件(Exec接口):配置文件中加入Linux的常见命令,识别出来的语音文件若是命令,就调Exec将其执行。
  • 图灵机器人(Talk接口):主要将用户录制的音频识别出来之后转为json串发给图灵机器人,然后图灵机器人将信息转为字符串响应给用户,总之就是序列化----->request----->反序列化
  • 语音合成(TTL):将图灵机器人响应回来的信息转成语音,利用vlc工具播放出来。

五、项目成果

在这里插入图片描述

六、项目部分代码

  • 项目运行核心逻辑
 void Run(){//将错误和调试信息写入文件中
#ifdef _LOG_int fd = open(LOG, O_WRONLY|O_CREAT, 0644);if(fd < 0){return;}dup2(fd,2);
#endiffflush(stdout);volatile bool quit = false;while(!quit){std::cout << "Record ... " << std::endl;Util::PrintStart("录音中 ");if(this->Record()){//语音识别std::string message;if(sr.ASR(ASR_PATH, message)){//1、判断是不是命令std::string cmd = "";if(IsCommands(message,cmd)){std::cout << "[zlj@localhost Jarvis]" << cmd << std::endl;Util::Exec(cmd, true);//继续下一次continue;}//2、交给图图std::cout << "波妞# " << message << std::endl;if(message == "明天见。"){std::string quit_message = "goodbye";std::cout << "波妞# " << quit_message << std::endl;exit(0);}std::string echo = rb.Talk(message);if(sr.TTS(TTS_PATH, echo)){//合成成功,播放this->Play();}std::cout << "宗介# " << echo << std::endl;}else{std::cerr << "ASR  error" << std::endl;}}else{std::cout << "Record error" << std::endl;}Util::PrintEnd();}}
  • 工具类的Exec函数执行命令
 static bool Exec(std::string command, bool Is_Print){FILE* fp = popen(command.c_str(), "r");if(fp == nullptr){std::cerr << "popen error" << std::endl;return false;}if(Is_Print == true){char c;while(fread(&c, 1, 1, fp)>0){fwrite(&c, 1, 1, stdout);}}pclose(fp);return true;}
  • 配置文件
查看当前目录:pwd
创建目录:mkdir
关闭防火墙:systemctl stop firewalld
打开防火墙:systemctl start firewalld
  • Makefile
CC=g++
bin=TUTU
src=TUTU.cc
INCLUDE=-Ispeech/
LIB=-ljsoncpp -lcurl -lcrypto -lpthread
FLAGS=-D_LOG_$(bin):$(src)$(CC) -o $@ $^ $(FLAGS) $(INCLUDE) $(LIB)
.PHONY:clean
clean:rm -f $(bin)

关于语音识别和语音合成接口的使用可参考C++SDK文档!!!

七、总结

项目源码:https://github.com/sunshineyam/Linux/tree/master/Jarvis
ai语音管家这个项目代码没有很难,对我而言比较陌生的是json串的序列化和反序列化,不过仔细研读也能解决啦,比较麻烦的是需要借助很多第三方平台,使用的工具比较多。但是还是比较有意思的,而且可移植性较高,有兴趣的大佬可以和我一起扩展鸭!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/47424.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

官宣来了,万图拍入围2019年度雏鹰人才支持资金拟支持企业

中关村管委会近日对“2019年度雏鹰人才支持资金拟支持企业”名单进行了公示。 ​ 经过项目材料审核、现场答辩与专家评审等层层筛选&#xff0c;万图拍科技有限公司顺利入围“2019年度雏鹰人才支持资金”U30雏鹰人才类支持企业名单。 ​ 万图拍科技有限公司为中关村高新技术企…

计算机一级考试显卡,老PC玩3A大作只换显卡行不行?实测数据让你不花冤枉钱...

关注我们频道的用户都知道&#xff0c;每当有最新的3A大作出现的时候&#xff0c;我们都会使用我们的测试平台搭配上全套的显卡对它进行性能测试。但我们的测试平台使用的都是较新的硬件组合&#xff0c;这也很多还在使用相对较老硬件的用户不能准确的知道自己的机器在升级显卡…

杀出重围3显卡测试软件,更多游戏实测-《战地5》实测-3D MARK跑分-配套软件-微星RTX 2060 Gaming Z 6G非公版显卡开箱上手体验_游戏硬件_游侠网...

小编再选取一款DX12的游戏《古墓丽影&#xff1a;暗影》&#xff0c;4K全高画质微星RTX 2060 GAMING Z(魔龙)平均帧数能有32帧&#xff0c;降为2K就可以稳60帧游戏了&#xff0c;1080P分辨率下平均帧数可以有89帧&#xff0c;可以称得上毫无压力流畅游戏了。 使用优化非常渣的《…

显卡显存测试u盘 mats_一鸣惊人!闪速实测RTX3090 24GB顶级显卡,游戏的福音就是它了...

原标题&#xff1a;一鸣惊人&#xff01;闪速实测RTX3090 24GB顶级显卡&#xff0c;游戏的福音就是它了 上月的25日&#xff0c;NVIDIA虽然按时按点的“声称”RTX3090上市&#xff0c;结果3090和其胞弟的命运如出一辙&#xff0c;N饭们等来的也是“预约”。不过本神掐指一算RTX…

c4d渲染测试软件,提升C4D渲染速度,你需要的高端显卡选购指南

原标题:提升C4D渲染速度,你需要的高端显卡选购指南 之前推荐过一篇有关设计师电脑的配置需求,后来也一直有同学来咨询作为设计师究竟需要什么样配置的电脑,发现大部分同学都只知道把cpu和内存配置的很高,而完全忽视了显卡的作用。 拿了一批新的20系列的显卡作为测试,因为…

大家好才是真的好,“通用设计”知多少

导读 如果说“无障碍设计”是将不同类别人群区分开来、优先为有障群体提供特殊设计&#xff0c;那么“通用设计”则更有野心——致力于提供全人群通用的设计。这种理念在无障碍进程较为先进的国家已经逐渐成为主流趋势&#xff0c;在各个领域得到推广。 本篇文章意在简单介绍通…

1660用哪个驱动稳定_安装驱动软件我认为哪个最好?

新买电脑时多数会配驱动,但是很多原因不少人没有这个驱动,厂家官方的驱动更新也不永远。或者消费者都不知道手上是哪个厂家的什么型号,就去要通用的安装驱动软件了。 我用了近二十年电脑,认为以下这些安装驱动软件好,排名从高到低: 360驱动大师 https://dm.weishi.360.cn…

PS笔记.

第01堂课 30集教学视频qq交流群素材提供下载tangke图文教程 注释&#xff1a;红色0是点击鼠标左键&#xff0c;蓝色0是点击鼠标右键 第02堂课 小试牛刀&#xff08;去掉唇印&#xff09; 复制图层 PC CtryJMAC CMDJ 放大图片或缩小图片&#xff1a; ALT鼠标滚轮键 移动图片…

图片标签及以图搜图场景应用

博客&#xff1a;https://wenjie.blog.csdn.net/ 作者&#xff1a;走在前方 介绍&#xff1a;计算机硕士&#xff0c;多年工作经验&#xff0c;技术和产品负责人。 多年推荐系统/NLP/大数据工作经验。 负责公司多个AI项目产品落地&#xff0c;包括文本分类、关键词抽取、命名实…

markdown 让你快速无痛学会编写IT文档

Markdown就是一种文档的格式&#xff0c;专业名称为轻量型标记语言&#xff0c;主要用于编写文档类的内容&#xff0c;特别适合IT类的文档编写。 目前绝大多数的IT技术论坛都是支持使用markdown编写博客与文章的&#xff0c;例如github&#xff0c;简书,csdn等&#xff0c;在I…

今年支付宝的集福字就靠这个了,天天不重样

前言 2022 虎年大吉&#xff0c;共迎新春&#xff0c;新的一年&#xff0c;我希望通过”万虎“拼福字以及”万福“拼萌虎的方式&#xff0c;给大家带来好运&#xff0c;祝大家虎虎生威&#xff0c;顺风顺水&#xff0c;人生如意&#xff0c;财源滚滚&#xff01;恭喜完了&…

【Markdown】让你快速无脑编写IT文档

一、什么是Markdown Markdown是一种可以使用普通文本编辑器编写的轻量级标记语言&#xff0c;通过简单的标记语法&#xff0c;可以使普通文本内容具有一定的格式&#xff0c;可以导出为Word、PDF…等多种格式文档&#xff0c;Markdown文件后缀名为".md"。 Markdown…

PC端/电脑端有没有识别二维码并分类的工具

4-1 现在有一个很奇怪的问题&#xff0c;几乎所有的二维码识别功能都是在手机上&#xff0c;而电脑上的都没有。 但是如果需要在电脑上识别二维码咋办&#xff1f;去搜索了一下&#xff0c;发现没有&#xff0c;或者很少。 如果自己的工作就是要识别很多二维码并且对它做分类…

ggplot进行曼哈顿图复现

最近看文献的时候看到一张曼哈顿图&#xff0c;是对绵羊进行种间fst的比较找受选择的位点&#xff0c;当时看到这张图就感觉与之前看过的曼哈顿与众不同&#xff0c;图中用线段来表示的具体数值而不是常规的点&#xff0c;看多了点图&#xff0c;感觉线图还挺好看&#xff0c;所…

图幅号与经纬度的换算

图幅号,如“I48E001004”,一般为10位数。 前三位“I48”表示所属1:100万图幅的行列号 ,地图基本都是在1:100万比例尺的行列式编号基础上划分的。 1:100万图幅的划分规则: 纬度行:从赤道开始算,纬度四度一行,南北纬各22行,用大写英文字母A,B,C…表示(南半球要在字母…

rtx2060为什么叫智商卡_八款RTX2060简单点评,谁是丐中丐,谁又是丐帮帮主

RTX2060上市也有一段时间了,各种大神也做了一系列的测试,结果让人非常吃惊,旗舰2060性价比还是太低了,认可度也很低,主要还是3000以下的受关注比较多。 蜗牛也看了一下评测,大致的结果是这样的 大家可以看一下频率和温度,价格不可靠,偏差比较大。 老实说呀,看了这个评…

学习笔记:设计模式-装饰器设计模式(JAVA)

概念 装饰器设计模式&#xff0c;也叫包装设计模式&#xff0c;他是作为现有类的一个包装&#xff0c;允许向一个现有的对象添加新的功能&#xff0c;同时又不改变其结构。给对象添加功能&#xff0c;一般两种方式&#xff0c;继承或者组合&#xff0c;将一个类的对象嵌入到另一…

HTML+CSS基本使用与操作(万字没有,万图快了o(╥﹏╥)o)

往期&#xff1a; JAVA 修炼秘籍第一章&#xff1a;《痛苦的折磨》 JAVA 修炼秘籍第二章&#xff1a;《逐渐魔化》 JAVA 修炼秘籍第三章&#xff1a;《绝地反击》 JAVA 修炼秘籍第四章&#xff1a;《闭关修炼》 JAVA 修炼秘籍第五章&#xff1a;《卧薪尝胆》 JAVA 修炼秘籍第六…

如何在10万张图片中快速找出有二维码的图片(万图找码)

前段时间有一老哥加我微信&#xff0c;问有没有一种软件&#xff0c;能在文件夹里的上万张图片中快速地找出有二维码的图片。 我帮他找了一下&#xff0c;没找到这种软件&#xff0c;我说我做一个试试看&#xff0c;于是就有了这个软件&#xff0c;起名字叫做《万图找码》&…

SVC进行图像识别——万图识别

1.导入模块 import numpy as np import pandas as pd from pandas import Series,DataFrame #SVC知识向量机学习模型 from sklearn.svm import SVC #读取二进制文件模块 import pickle as pickle #数据降维处理模块 from sklearn.decomposition import PCA #绘图模块 import m…