计算机视觉与智能语音处理融合套件初体验(语音部分)
本次实验我们使用的是EAIDK计算机视觉+语音处理套件试验箱进行实验
套件介绍
套件简介
EAIDK计算机视觉+语音实验箱以嵌入式人工智能开发套件EAIDK-610为核心,具备语音、视觉等传感器数据采集能力,及适用于多场景的运动控制接口;预装Linux操作系统与嵌入式深度学习框架Tengine,支持视觉处理与分析、语音识别与语义分析、SLAM等应用的基础平台和主流开源算法,可满足嵌入式人工智能教学与科研、AI算法应用与开发、AI产品原型开发验证等应用场景。
视觉套件包含计算机视觉,ARM嵌入式和人工智能语音处理三个部分:
视觉部分包括两个功能:
- 人脸属性
- 人脸识别
嵌入式部分主要包含3个传感器和2个电子执行器:
- 传感器:
- 红外感应器
- 超声波测距
- NFC磁卡读取器
- 电子执行器
- 风扇(含继电器,电机)
- LED发光二极管
- 传感器:
人工智能语音处理包含:
- 语音处理
- 语音识别
- 语音合成
- 智能对话
本次实验中,由于对箱子的功能不尽了解,时间也相对有限,所以我只完成了以下几个简单的实验:
- 语音部分:
- 录音实验
- 播放实验
- 语音变速实验
- 降噪实验
- 回声消除实验
- 语音活性检测实验
- 视觉部分:
- 图像采集
- 图像处理
- 背景提取
- 视频跟踪
语音部分实验
1.录音实验:
录音流程:
实验过程:
进入 /home/openailab/cases/record/case/speech/record 文件夹中
- CMakeLists.txt 是控制程序编译的文件,会根据此文件生成Makefile以及编译。
- compile.sh为编译本案例的脚本
- main.cpp是录音的C++源码
- README.txt为运行本案例的指导文档
- record.json为控制ESP平台编译的json文件
首先,我们需要编译平台。进入/home/openailab/cases/record/platform/release目录下
在该目录下,用./ninja.sh编译平台
成功编译后,我们回到案例目录/home/openailab/cases/record/case/speech/record。进入该目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录,进入build目录内,首先使用arecord -l 查看有哪些播放设备
如上图所示,Microphone [USB FS Microphone] 新版套件所提供的V2版本麦克风(黑色)
Audio [Sabine Array Audio]新版套件所提供的V1版本麦克风(绿色)
如果是V1版麦克风,则使用./record hw:Audio进行录音
同理,V2版麦克风,则使用./record hw:Microphone进行录音
V3版麦克风,则使用./record hw:MicArray进行录音
运行此命令之后录音便会开始,我们可以按回车停止录音,录音结束后按ctrl+c退出案例。此时build目录下会显示一个save.pcm的录音文件,正如文件的后缀显示,是一个pcm格式的音频。
2.播放实验:
播放案例代码放于/home/openailab/cases/play/case/speech/play目录下。目录主要文件包含如下图
- CMakeLists.txt 是控制程序编译的文件,会根据此文件生成Makefile以及编译
- compile.sh为编译本案例的脚本
- esp_demo.wav为案例播放音频
- main.cpp是播放案例的C++源码
- play.json为控制ESP平台编译的json文件
- README.txt为运行本案例的指导文档
首先,我们需要编译平台。进入/home/openailab/cases/play/platform/release目录下
在该目录下,用./ninja.sh编译平台,成功编译后,
我们回到案例目录/home/openailab/cases/play/case/speech/play。进入该目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录。
进入build目录内,用./play命令运行案例,运行此命令之后播放便会开始。
3.语音变速实验
语音变速变调案例文件放在/home/openailab/cases/vcs/case/speech/vcs目录下
- CMakeLists.txt 是控制程序编译的文件,会根据此文件生成Makefile以及编译
- compile.sh为编译本案例的脚本
- esp_raw.wav为变速变调处理前的音频文件
- main.cpp是变速变调案例的C++源码
- README.txt为运行本案例的指导文档
- vcs.json为控制ESP平台编译的json文件
首先,我们需要编译平台。进入/home/openailab/cases/vcs/platform/release目录下
在该目录下,用./ninja.sh编译平台
成功编译后,我们回到案例目录/home/openailab/cases/vcs/case/speech/vcs。进入该目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录,进入build目录内,用./vcs命令运行案例
运行此命令后,变速变调处理开始,处理结束,build目录内会生成根据esp_raw.wav文件处理后的esp_vcs.wav文件。我们用 play esp_vcs.wav播放此音频文件,即可听到处理后的音频。
4.降噪实验
首先是一些基础知识的储备:
噪声估计的越准确得到的结果就越好。估计噪声的方法有如下几种:
- 基于VAD检测的噪声估计,VAD对Y进行检测,如果检测没有语音,则认为噪声
- 基于全局幅度最小原理,该估计认为幅度谱最小的情况必然对应没有语音的时候
- 基于矩阵奇异值分解原理估计噪声的
- 对似然比函数进行改进,将多个语音/噪声分类特征合并到一个模型中形成一个多特征综合概率密度函数,对输入的每帧频谱进行分析。其可以有效控制风扇/办公室设备等噪声
对接收到的每一帧带噪语音信号,以对该帧的初始噪声估计为前提,定义语音概率函数,测量每一帧带噪信号的分类特征,使用测量出来的分类特征,计算每一帧基于多特征的语音概率,在对计算出的语音概率进行动态因子(信号分类特征和阈值参数)加权,根据计算出的每帧基于特征的语音概率,修改多帧中每一帧的语音概率函数,以及使用修改后每帧语音概率函数,更新每帧中的初始噪声(连续多帧中每一帧的分位数噪声)估计。
这里噪声抑制算法的核心是采用维纳滤波器来抑制估计出来的噪声。维纳滤波(wiener filtering) 一种基于最小均方误差准则、对平稳过程的最优估计器。这种滤波器的输出与期望输出之间的均方误差为最小,因此,它是一个最佳滤波系统。它可用于提取被平稳噪声所污染的语音信号。
降噪工程位于/home/openailab/cases/ns/case/speech/ns目录下
- CMakeLists.txt是用于生成Makefile,控制编译的文件
- compile.sh为编译程序的脚本
- dr_mp3.h是本案例所用到的处理mp3文件的库
- dr_wav.h是本案例所用到的处理wav文件的库
- esp_demo.wav为案例音频文件
- main.c为案例主程序文件
- noise_suppression.c为降噪功能源码
- noise_suppression.h为降噪功能头文件
- ns.json为控制程序编译的json文件
- timing.h为程序使用到的计时头文件
进入案例目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录,进入build目录内,用./ns esp_demo.wav命令运行案例
运行此命令之后降噪便会开始,结束后按任意键退出案例运行。此时build目录下会显示一个esp_demo_out.wav的音频文件,此文件为降噪处理后的效果音频。
5.回声消除实验
同样是先学习一些相关的知识储备:
从回声产生的原因看,可以分为声学回声(Acoustic Echo)和线路回声(Line Echo),相应的回声消除技术就叫声学回声消除(Acoustic Echo Cancellation,AEC)和线路回声消除(Line Echo Cancellation, LEC)。声学回音是由于在免提或者会议应用中,扬声器的声音多次反馈到麦克风引起的;线路回音是由于物理电子线路的二四线匹配耦合引起的。
尽管回声消除是一项非常复杂的技术,但仍然可以通过相对简单的语言描述这一处理过程:
- 房间A的音频会议系统接收到房间B中的声音
- 声音被采样,这一采样被称为回声消除参考
- 随后声音被送到房间A的音箱和声学回声消除器中
- 房间B的声音和房间A的声音一起被房间A的话筒拾取
- 声音被送到声学回声消除器,与原始的采样进行比较,移除房间B的声音
工程位于/home/openailab/cases/aecm/case/speech/aecm目录下
- aecm.c为案例代码的源文件
- aecm.h为案例需要的头文件
- aecm.json为控制本案例编译的json文件
- dr_wav.h为项目需要的头文件
- CMakeLists.txt为控制本案例编译的CMakeList
- compile.sh为编译本案例需要的脚本
- main.c 为c源代码
- micin.wav为本案例所需的案例音频
- speaker.wav为本案例所需的案例音频
- timing.h为项目需要的头文件
进入案例目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录,进入build目录内,用./aecm命令运行案例
运行此命令之后回声消除便会开始,结束后按任意键退出案例运行。此时build目录下会显示一个aecm_out.wav的音频文件,此文件为回程消除处理后的效果音频
6.语音活性检测实验
VAD(voice activity detection)广泛应用于语音编码和降噪。这里所说的是语音/非语音检测,一个VAD系统通常包括两个部分:
- 特征提取和语音
- 非语音判决
常用的特征提取可以分为以下几类:
- 基于能量:基于能量的特征常用硬件实现
- 频域
- 倒谱:倒谱在在低信噪比下可以获得较好的效果
- 谐波和长时信息:当信噪比达到0dB时,基于语音谐波和长时语音特征更具有鲁棒性
活性算法集成在/home/openailab/cases/vad/case/speech/vad工程当中
- Cmakelists.txt为控制案例编译生成Makefile的文件
- compile.sh为编译案例需要使用的脚本
- dr_wav.h为处理wav音频的头文件
- main.c为主程序文件
- timing.h为计时功能的头文件
- vad.c为语音活性检测功能的c文件
- vad.h为语音活性检测功能的头文件
- vad.h为语音活性检测功能的头文件
- vad_test.wav为案例音频
进入案例目录之后,我们可以用./compile.sh命令编译工程
编译之后,我们在案例目录下会得到一个build目录,进入build目录内,用./vad vad_test.wav命令运行案例
运行此命令之后语音活性检测便会开始。完成检测后,屏幕上会输出一系列0和1 的数字串,此处0代表该位置无人声,1代表该位置有人声
计算机视觉与智能语音处理融合套件初体验(语音部分)相关推荐
- CSK6开发分享1-视觉开发套件初体验篇
目录 写在前面 套件概览 开发环境安装 体验官方视觉AI工程 步骤一:拉取工程+初始化 步骤二:编译&烧录 步骤三:跑起来,看效果 写在前面 CSK6是聆思科技推出的一款MCU+DSP+NPU ...
- 【VS开发】【智能语音处理】Windows下麦克风语音采集
简介 这是我很早以前的大学毕业设计,忽然间找到贴出来以纪念自己的纯真年代...但是因为CSDN不给面子所以导致短短的一篇文章贴了足足7次..他老提时说文章超过了64K,老大,拜托,那是算上了里面的图片 ...
- 自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架初体验
自然语言处理NLP星空智能对话机器人系列:Facebook StarSpace框架初体验 目录 Facebook StarSpace github StarSpace 安装部署 编译星际空间 Face ...
- 【聆思CSK6视觉AI开发套件试用】CSK6系列头肩识别初体验
本篇文章来自极术社区与聆思科技组织的CSK6 视觉AI开发套件活动,更多开发板试用活动请关注极术社区网站.作者:張弩拔劍 背景 前言 聆思CSK4002以先进的AI算法, 出色的性价比, 以及优越的头 ...
- 一加6升级android p,一加6手机升级Android P初体验:系统更智能、操作更流畅!
原标题:一加6手机升级Android P初体验:系统更智能.操作更流畅! 8月7日谷歌发布正式版Android P后,8月15日一加手机领先业界最先放出了一加6的Android P公测版.当然,这极其 ...
- 计算机视觉及智能影像报告:未来规模超200亿美元
来源:网易智能 近日,Forrester咨询公司对中国计算机视觉及智能影像市场进行了调查,访问了包括研究机构.科研院校.投资机构以及部分互联网企业,视频行业企业,针对以视频行业为代表的文娱产业中人工智 ...
- docker 初体验
docker 初体验 在参加RoboCup仿真组的时候遇到了一个很奇怪的问题,实验平台运行的环境是java9+,但是智能体代码的运行环境是java8(高版本不可以).本来打算起一个虚拟机来运行两份不同 ...
- 一文了解计算机视觉与自然语言处理融合的研究进展
来自:python遇见NLP 导读 通过语言给予智能体指示使其完成通用性的任务是人工智能领域的愿景之一.近年来有越来越多的学者试图通过融合计算机视觉与自然语言处理领域的相关技术以期实现此目标. 近年来 ...
- 【ERNIE Bot】百度 | 文心一言初体验
文章目录 一.前言 二.文心一言介绍 三.申请体验⌈文心一言⌋ 四.⌈文心一言⌋初体验 1️⃣聊天对话能力 2️⃣文案创作能力 3️⃣文字转语音能力✨ 4️⃣AI绘画能力✨ 5️⃣数理推理能力 6️⃣ ...
- 华为智慧屏和鸿蒙系统对比,鸿蒙初体验:荣耀智慧屏跨系统交互构建新生态
2013年的初夏,当年著名的互联网企业乐视正式发布了第一代互联网电视X60,它将过去的机顶盒与电视相融合,直接接入互联网视频内容,正式拉开了互联网电视的大幕. 如今6年过去,众多电视品牌起起伏伏,电视 ...
最新文章
- 2022-2028年中国灭火器行业市场前瞻与投资战略规划分析报告
- express给html设置缓存,webpack + express 实现文件精确缓存
- java urlstreamhandler_获取对Java的默认http(s)URLStreamHandler的引用
- 腾讯开源首个医疗AI项目,业内首个3D医疗影像大数据预训
- [转]C++中的static关键字的总结
- Linux系统配置成简单的路由器
- C++类继承内部类实例
- 再读《SAP德国造》
- 对variable-sized object may not be initialized的一点理解
- multisim红绿灯元器件在哪里_实验二Multisim交通灯仿真.ppt
- plc程序ST语言接近C语言,【PLC高级编程语言之ST文本】4.ST语言的运算符介绍
- vscode vim插件(updating)
- 2021年苹果ASO商店优化技巧
- oracle查询 相关的表,Oracle 查询用户,表,受权相关语句
- 潇洒学校丹丹老师分享免喷涂材料注塑工艺的五大要点
- MySQL:数据完整性
- 推荐一款学习app:Enki
- 聊一聊麦克风阵列技术:语音交互应该选用怎样的方案?(转载)
- 微信小程序是否支持手机定位经纬度坐标
- MTK9652和Mstar938的区别