语音识别(录音与语音播报)

语音识别(录音与语音播报)

简介

语音识别人工智能技术的应用领域非常广泛,常见的应用系统有:语音输入系统,相对于键盘输入方法,它更符合人的日常习惯,也更自然、更高效;语音控制系统,即用语音来控制设备的运行,相对于手动控制来说更加快捷、方便,可以用在诸如工业控制、语音拨号系统、智能家电、声控智能玩具等许多领域。

​ 语音识别简单来说就是利用计算机语音信号自动转换为文本的一项技术,语音识别技术拆分下来,主要可分为”输入—编码—解码—输出”四个流程。在语音识别中,设备首先收集目标语音,然后对收集到的语音进行一系列处理,得到目标语音的特征信息。这些特征信息包括声学特征和语言特征。声学特征是指语音信号的频谱、功率谱、倒谱等,而语言特征则是指语音信号中的文本内容。接下来,系统会将这些特征信息与数据库中已存数据进行相似度搜索比对,评分高者即为识别结果。

​ 语音识别的原理是将一段语音信号转换成相对应的文本信息,系统主要包含特征提取、声学模型、语言模型以及字典与解码四大部分。其中为了更有效地提取特征往往还需要对所采集到的声音信号进行滤波、分帧等预处理工作,把要分析的信号从原始信号中提取出来;之后,特征提取工作将声音信号从时域转换到频域,为声学模型提供合适的特征向量;声学模型中再根据声学特征性计算每一个特征向量在声学特征上的得分;而语言模型则根据语言学相关的理论,计算该声音信号对应可能词组序列的概率;最后根据已有的字典,对词组序列进行解码,得到最后可能的文本表示。

​ 一般来说,语音识别的方法有三种:基于声道模型和语音知识的方法、模板匹配的方法以及利用人工神经网络的方法。

​ 其中,基于声道模型和语音知识的方法是最早被提出来的,它是通过对语音信号进行分析,提取出与语音信号相关的特征参数,然后将这些特征参数与声学模型相结合,从而实现语音识别。传统方法主要分两个阶段:训练和识别,训练阶段主要是生成声学模型和语言模型给识别阶段用。传统方法主要有五大模块组成,分别是特征提取(得到每帧的特征向量),声学模型(用GMM从帧的特征向量得到状态,再用HMM从状态得到音素)、发音字典(从音素得到单词)、语言模型(从单词得到句子)、搜索解码(根据声学模型、发音字典和语言模型得到最佳文本输出。

​ 模板匹配法是将待识别语音与已知的模板进行比较,从而找到最相似的模板,进而实现语音识别。模板匹配的方法是一种传统的语音识别方法,它是基于模板的匹配,即将语音信号与预先存储的模板进行比较,从而得到最佳匹配结果。模板匹配的方法主要分为两类:动态时间规整(DTW)和隐马尔可夫模型(HMM)。其中,DTW是一种基于时间对齐的方法,它可以将两个不同长度的语音信号进行对齐,然后计算它们之间的距离。HMM是一种基于状态转移的方法,它将语音信号建模为一个状态序列,并使用概率模型来描述状态之间的转移。

​ 深度学习的方法是一种新兴的语音识别方法,利用人工神经网络的方法是通过训练神经网络来实现语音识别,它主要是基于神经网络的模型,如卷积神经网络(CNN)、循环神经网络(RNN)和长短时记忆网络(LSTM)等。这些模型可以自动地从原始语音信号中提取特征,并将其转换为高级表示,然后使用这些表示来进行分类或回归。深度学习的方法已经在语音识别领域取得了很大的成功,它们通常比传统方法更准确,并且可以处理更复杂的任务。

实验平台

机器硬件:OriginBot(导航版/视觉版)
扩展硬件:语音扩展版
主机:电脑(Windows >10/ Ubuntu>20.04)

实现

硬件检测、普通录音及播放

​ 首先要确保安装tros和智能算法语音包

 
sudo apt update
sudo apt install tros-hobot-audio
 

​ 首先检测硬件环境,将旭日X3派与音频转接板、麦克风阵列拾音板接好之后上电使用如下指令可以检查设备的接入情况,若成功接好,默认可以在I2C上读取到三个地址。如下图:

 
rmmod es8156 
i2cdetect -r -y 0
 

I2C检测

若没检测到,请重新检查设备的连接。然后从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。并且确认麦克风阵列类型,麦克风阵列类型通过配置文件config/audio_config.json中的mic_type字段设置,默认值为0,表示环形麦克风阵列。如果使用线形麦克风阵列,需要修改该字段为1。然后加载音频驱动,设备启动之后只需要加载一次,如果显示modprobe: FATAL: Module snd_card=5 not found。请忽略。

 
cd /userdata/dev_ws/
# 配置TogetheROS环境
source /opt/tros/setup.bash# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/lib/hobot_audio/config/ .# 加载音频驱动,设备启动之后只需要加载一次
bash config/audio.sh
 

​ 加载驱动音频codec(编解码器)和x3音频框架驱动

 
sudo modprobe es7210
sudo modprobe es8156
sudo modprobe hobot-i2s-dma
sudo modprobe hobot-cpudai
sudo modprobe hobot-snd-7210 snd_card=5
 

​ 检测是否加载成功

 
ls /dev/snd
 

检测是否加载成功

然后就可以录音播放测试了

 
rm -rf *test.wav
 

采集4通道麦克风的录音5秒钟:

 
sudo tinycap ./4chn_test.wav -D 0 -d 0 -c 4 -b 16 -r 48000 -p 512 -n 4 -t 5
 

采集2通道麦克风的录音5秒钟:

 
sudo tinycap ./2chn_test.wav -D 0 -d 0 -c 2 -b 16 -r 48000 -p 512 -n 4 -t 5
 

可以使用音箱或者3.5mm接口耳塞接入位号U4的插口中听效果,也可以从系统中拉出音频文件至电脑中播放

 
sudo tinyplay ./2chn_test.wav -D 0 -d 1

 更多内容请参考:语音识别(录音与语音播放) - 古月居 (guyuehome.com)

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

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

相关文章

【用户案例】太美医疗基于Apache DolphinScheduler的应用实践

大家好,我叫杨佳豪,来自于太美医疗。今天我为大家分享的是Apache DolphinScheduler在太美医疗的应用实践。今天的分享主要分为四个部分: 使用历程及选择理由稳定性的改造功能定制与自动化部署运维巡检与优化 使用历程及选择理由 公司介绍 …

【Node.js】短链接

原文链接:Nodejs 第六十二章(短链接) - 掘金 (juejin.cn) 短链接是一种缩短长网址的方法,将原始的长网址转换为更短的形式。短链接的主要用途之一是在社交媒体平台进行链接分享。由于这些平台对字符数量有限制,长网址可…

MySQL-多表查询:多表查询分类、SQL99语法实现多表查询、UNION的使用、7种SQL JOINS的实现、SQL99语法新特性、多表查询SQL练习

多表查询 1. 一个案例引发的多表连接1.1 案例说明1.2 笛卡尔积(或交叉连接)的理解1.3 案例分析与问题解决 2. 多表查询分类讲解分类1:等值连接 vs 非等值连接等值连接非等值连接 分类2:自连接 vs 非自连接分类3:内连接…

OSPF防环文档

OPSF在区域内会产生俩类LSA:Router LSA ,Network LSA 路由器以自己为树根构建最短路径树 ,这里的最短路径树按两步形 成,第一步,仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算法,根据链路状态数据…

doss攻击为什么是无解的?

这个让Google、亚马逊等实力巨头公司也无法避免的攻击。可以这么说,是目前最强大、最难防御的攻击之一,属于世界级难题,并且没有解决办法。 Doss攻击的原理不复杂,就是利用大量肉鸡仿照真实用户行为,使目标服务器资源…

解析大语言模型训练三阶段

大语言模型的训练过程一般包括3个阶段:预训练(Pre-training)、SFT(有监督的微调,Supervised-Finetuning)以及RLHF(基于人类反馈的强化学习,Reinforcement Learning from Human Feedb…

Mac的终端配置

Mac的终端配置 参考教程包管理工具 - Homebrew出现的问题用虚拟环境解决方案:直接将解释器的路径放过去错误方法:用find查找到虚拟环境安装的路径,其链接的是brew安装的python路径 编辑器没有报错,但是运行过程中仍然找不到pandas…

【动态规划-线性dp】【蓝桥杯备考训练】:乌龟棋、最长上升子序列、最长公共子序列、松散子序列、最大上升子序列和【已更新完成】

目录 1、乌龟棋 2、最长上升子序列 3、最长公共子序列 4、松散子序列 5、最大上升子序列和 1、乌龟棋 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物。 乌龟棋的棋盘只有一行,该行有 N 个格子,每个格子上一个分数(非负整…

【Springboot开发】后端代码基础框架

前言:主要介绍最基础的springboot开发架构 目录 1. overall2. 配置文件2.1 YAML2.2 properties2.3 配置文件加载顺序2.4 多配置文件 3. 代码包3.1 infrastructure3.1.1 persistence 3.2 application3.2.1 dto3.2.2 converter3.2.3 service 3.3 api3.3.1 vo3.3.2 req…

Django交易商场

Hello,我是小恒不会java 最近学习django,写了一个demo,学到了不少东西。 我在GitHub上开源了,提示‘自行查看代码,维护,运行’。 最近有事,先发布代码了,我就随缘维护更新吧 介绍: 定…

Harmony鸿蒙南向驱动开发-MIPI CSI

CSI(Camera Serial Interface)是由MIPI联盟下Camera工作组指定的接口标准。CSI-2是MIPI CSI第二版,主要由应用层、协议层、物理层组成,最大支持4通道数据传输、单线传输速度高达1Gb/s。 物理层支持HS(High Speed&…

随机过程-BS定理

随机偏微分方程相比普通偏微分方程具有额外的随机项,反映了其描述的现象具有随机性质

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套(部分题目分享,完整版带答案,共十套)

华为 2024 届校园招聘-硬件通⽤/单板开发——第一套 部分题目分享,完整版带答案(有答案和解析,答案非官方,未仔细校正,仅供参考)(共十套)获取(WX:didadidadidida313,加我…

贪心算法|860.柠檬水找零

力扣题目链接 class Solution { public:bool lemonadeChange(vector<int>& bills) {int five 0, ten 0, twenty 0;for (int bill : bills) {// 情况一if (bill 5) five;// 情况二if (bill 10) {if (five < 0) return false;ten;five--;}// 情况三if (bill …

基于ubuntu22.04系统安装nvidia A100驱动与NVLink启用

1、官方仓库 针对驱动包下载认准nvidia官网 dpkg -i nvidia-driver-local-repo-ubuntu2204-550.54.15_1.0-1_amd64.deb apt update apt search nvidia-driver-5502、安装 根据步骤1apt search nvidia-driver-550查出版本&#xff1a;此驱动包封在nvidia-driver-local-repo-ub…

数字社会下的智慧公厕:构筑智慧城市的重要组成部分

智慧城市已经成为现代城市发展的趋势&#xff0c;而其中的数字化转型更是推动未来社会治理体系和治理能力现代化的必然要求。在智慧城市建设中&#xff0c;智慧公厕作为一种新形态的信息化公共厕所&#xff0c;扮演着重要角色。本文智慧公厕源头实力厂家广州中期科技有限公司&a…

设计模式(22):解释器模式

解释器 是一种不常用的设计模式用于描述如何构成一个简单的语言解释器&#xff0c;主要用于使用面向对象语言开发的解释器和解释器设计当我们需要开发一种新的语言时&#xff0c;可以考虑使用解释器模式尽量不要使用解释器模式&#xff0c;后期维护会有很大麻烦。在项目中&…

Python:如何对FY3D TSHS的数据集进行重投影并输出为TIFF文件以及批量镶嵌插值?

完整代码见 Github&#xff1a;https://github.com/ChaoQiezi/read_fy3d_tshs&#xff0c;由于代码中注释较为详细&#xff0c;因此博客中部分操作一笔带过。 01 FY3D的HDF转TIFF 1.1 数据集说明 FY3D TSHS数据集是二级产品(TSHS即MWTS/MWHS 融合大气温湿度廓线/稳定度指数/…

CSS-语法、选择器

&#x1f4da;详见 W3scholl&#xff0c;本篇只做快速思维索引。 概述 CSS 是一种描述 HTML 文档样式的语言。 有三种插入样式表的方法&#xff1a; 外部 CSS内部 CSS行内 CSS &#x1f4c5; 外部 CSS 外部样式表存储在.css文件中。HTML 页面必须在 head 部分的<link&g…

ORAN C平面 Section Extension 22

ORAN C平面Section扩展22用于ACK/NACK请求。除section type 7外&#xff0c;section扩展22可以用于从O-DU发送到O-RU的所有section type和section扩展。 对于一个section描述&#xff0c;O-DU可以使用section扩展22要求O-RU使用section type 8 C平面消息进行ACK/NACK反馈。关于…