【DL】深度学习之语音识别

目录

1 核心概念

2 安装依赖库

3 实践


语音信号处理(Speech Signal Processing)简称语音处理

语音识别(ASR)自然语言处理(NLP)语音识别就是将语音信号转化成文字文本,简单实现了两种信号的转换。ASR又可以理解为,让机器听见。NLP可以理解为通过某种算法让计算机理解所输入的内容,NLP又可以理解成,让机器听懂。 语音识别(Speech Recognition)是NLP的一个重要子领域,旨在将语音信号转换为文本。

1 核心概念

① 语音特征

语音特征是用于描述语音信号的数值特征。

特征提取的方法有:线性预测系数(LPC)、LPC倒谱系数(LPCC)、线谱对参数(LSP)、共振峰率、短时谱、Mel频率倒谱系数(MFCC)和感知线性预测(PLP)等等。

其中,梅尔倒谱系数MFCC的提取过程包括:声道转换、预加重、分帧、加窗、快速傅里叶变换、通过三角带通滤波器得到Mel频谱、倒谱分析(取对数,做逆变换)。

预处理一般包括预加重、加窗和分帧等。

⒈ 预加重:语音信号低频段能量大,高频段信号能量小。预加重的目的是提升高频部分,使得信号的频谱变得平坦。

⒉ 加窗:减少语音帧的截断效应。矩形窗和汉明窗。

⒊ 分帧:将信号分段,每一段为一帧,一般10-30ms。分帧虽然可以采用连续分段的方法,但一般要采用交叠分段的方法,这是为了使帧与帧之间平滑过渡,保持其连续性。前一帧和后一帧的交叠部分称为帧移。

常见的语音特征包括MFCC、SPC、PFCC等,可以根据任务需求选择合适的特征。

② 语音数据集

语音数据集是用于训练和测试语音识别和语音合成模型的数据集,包括LibriSpeech、Common Voice、VCTK等。

③ SR和TTS

语音识别(Speech Recognition,SR)是将人类语音信号转换为文本的过程,主要包括语音前处理、语音特征提取、语音模型训练和文本生成等步骤。

Token可以是Phoneme(a unit of sound)、Grapheme(字母或字)、Word(词汇)、Morpheme(>Grapheme, <Word)、Bytes。

语音合成(Text-To-Speech, TTS, 又称文语转换)是将文本转换为人类可理解的语音信号的过程,主要包括文本前处理、语音模型训练和语音信号生成等步骤。 

④ 语音识别系统的构建

语音识别和语音合成主要基于深度学习技术,包括卷积神经网络(CNN)、循环神经网络(RNN)、长短期记忆网络(LSTM)、Transformer等等。

卷积神经网络(CNN): CNN可以自动学习特征并进行分类。CNN通常由多个卷积层、池化层和全连接层组成。卷积层用于提取语音信号的特征,池化层用于减少参数数量和防止过拟合,全连接层用于输出预测结果。

循环神经网络(RNN): RNN可以处理序列数据。在语音识别任务中,RNN可以处理语音信号的时间序列特征。RNN通常由多个隐藏层和输出层组成,每个隐藏层都有自己的权重和偏置。

LSTM: LSTM是一种特殊的RNN,它可以处理长距离依赖关系。LSTM通过使用门机制来控制信息的流动,从而避免梯度消失问题。

Transformer: Transformer是一种基于自注意力机制的神经网络,它可以处理长距离依赖关系并并行化计算。

构建步骤包括:预处理、数据集划分、模型构建、训练、模型评估、模型优化。

2 安装依赖库

① cpu版本的paddlepaddle安装

​pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
​

② 安装PaddleSpeech

pip install paddlespeech# 或者pip --default-timeout=100 install paddlespeech -i Simple Index --trusted-host pypi.douban.com
​

3 实践

实践① 语音识别

  • 命令行
paddlespeech asr --lang zh --input zh.wav 
  • 代码
from paddlespeech.cli.asr.infer import ASRExecutor 
asr = ASRExecutor() 
result = asr(audio_file="zh.wav") 
print(result) 
pass 
  • 效果

输出结果如下:

我认为跑步最重要的就是给我带来了身体健康

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

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

相关文章

go 解压和压缩包

將压缩包放在zippath"D:/xx/xx/xx"中,解压到pathto"D:/xx/xx1/xx"中 type UploaddeployLogic struct {logx.Loggerctx context.ContextsvcCtx *svc.ServiceContextr *http.Request }func NewUploaddeployLogic(r *http.Request, svcCtx *svc.Serv…

Spring-Cloud-Gateway集成Sentinel限流

1&#xff09;gateway添加sentinel相关依赖 <spring-cloud.version>2021.0.1</spring-cloud.version> <spring-cloud-alibaba.version>2021.0.1.0</spring-cloud-alibaba.version><dependencies><!--gateway--><dependency><gro…

Linux yum与rpm区别

yum和rpm都是Linux系统中用于安装、升级和管理软件包的工具&#xff0c;但它们有一些区别。以下是yum和rpm的主要区别&#xff1a; 1. 功能&#xff1a;rpm是一种软件包管理工具&#xff0c;用于安装、升级和卸载软件包。它可以直接操作软件包文件&#xff0c;但不提供依赖关系…

JQUERY简介与分析

在现代的前端开发中&#xff0c;jQuery无疑是一个非常重要且广泛使用的工具库。它不仅简化了JavaScript的编写&#xff0c;还提供了丰富的功能和强大的选择器&#xff0c;使开发者能够更轻松地操作DOM元素、处理事件和实现动态效果。 简单来说&#xff0c;jQuery是一个快速、简…

【主流开发语言和开发环境介绍】

主流开发语言和开发环境介绍 1. 介绍2. 开发语言3. 开发环境 1. 介绍 下面是一些广泛使用的主流开发语言及其相关的开发环境。 2. 开发语言 Python 用途&#xff1a;通用编程、科学计算、数据分析、机器学习、Web开发等。流行库&#xff1a;NumPy, Pandas, TensorFlow, PyTor…

JavaWeb开发初体验

1.动态网站 动态网站可根据不同情况动态变更的网站&#xff0c;动态网站的网页文件包含程序代码&#xff0c;通过后台数据库与web服务器信息交互&#xff0c;由后台数据库提供实时数据更新和数据查询服务。 2.动态网站的功能特点 动态网站可以实现交互功能&#xff0c;…

面试redis篇-11Redis集群方案-哨兵

Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下: 监控:Sentinel 会不断检查您的master和slave是否按预期工作自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当故障实例恢复后也以新的master为主通知:Sentinel充当…

Springboot企业级开发--开发入门01

目录 目录 一.Spring Boot的主要特点和优势包括&#xff1a; 二.Spring Boot的核心功能可以归纳为以下几点&#xff1a; 三.Springboot是如何解决问题&#xff1f; Spring Boot 是一个开源的Java框架&#xff0c;其设计目标是为了简化新Spring应用的初始搭建以及开发过程。…

POST参数里加号+变成空格的问题处理

今天遇到个这样的问题&#xff0c;从前端传到后端的加密报文&#xff0c;里面包含了号&#xff0c;但在后端日志输出看出&#xff0c;变成空格。这个是由于经过RSA加密后引起的 解决办法&#xff1a; 1.前端转码&#xff1a;使用encodeURIComponent对参数进行转码 2.后端解码…

电脑上查看已保存WiFi密码方法

在电脑上查看WiFi密码有几种方法&#xff0c;以下是其中两种常见的方法&#xff1a; 方法一&#xff1a;通过已连接的WiFi网络查看密码 打开电脑的WiFi设置界面&#xff08;通常可以在任务栏的通知区域找到WiFi图标&#xff0c;点击即可进入设置&#xff09;。 找到已连接的W…

理解Stable Diffusion、LoRA、Dreambooth、Hypernetworks、Textual Inversion、Checkpoint

前言 在深度学习和人工智能的领域中&#xff0c;模型生成和调整技术的快速发展为创造性内容的自动化提供了新的可能性。本文将介绍四种重要的模型技术——Stable Diffusion、LoRA、Dreambooth、和Hypernetworks——它们在生成艺术、个性化模型调整和网络结构设计方面各自的特点…

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …

python Matplotlib Tkinter-->tab切换2

环境 python:python-3.12.0-amd64 包: matplotlib 3.8.2 pillow 10.1.0 import matplotlib.pyplot as plt from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk import tkinter as tk import tkinter.ttk as ttk# 创建自定义工具栏类 c…

面试redis篇-12Redis集群方案-分片集群

原理 主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决&#xff1a; 海量数据存储问题高并发写的问题 使用分片集群可以解决上述问题&#xff0c;分片集群特征&#xff1a; 集群中有多个master&#xff0c;每个master保存不同数据每个master都可以有…

10 Redis之SB整合Redis

7. SB整合Redis Spring Boot 中可以直接使用 Jedis 实现对 Redis 的操作&#xff0c;但一般不这样用&#xff0c;而是使用 Redis操作模板 RedisTemplate 类的实例来操作 Redis。 RedisTemplate 类是一个对 Redis 进行操作的模板类。该模板类中具有很多方法&#xff0c;这些方…

compose 创建button示例

在 Jetpack Compose 中&#xff0c;创建一个按钮&#xff08;Button&#xff09;的实例是相对简单的。下面是一个基本的 Button 示例&#xff0c;展示了如何定义一个带有点击事件和文本的按钮&#xff1a; kotlin 复制 import androidx.compose.foundation.layout.fillMaxWidt…

Node.js-文件读取输入

Node.js-文件读取输入 fs模块&#xff08;操作文件的模块&#xff09; 读取 fs.readFile(path[, options], callback)&#xff1b;[]里面 是可选参数&#xff0c;表示以什么样的编码 格式读取path是路径callback表示读取完成后的回调函数 例子 fs.readFile (‘./files/11.txt…

【手机端测试】adb基础命令

一、什么是adb adb&#xff08;Android Debug Bridge&#xff09;是android sdk的一个工具 adb是用来连接安卓手机和PC端的桥梁&#xff0c;要有adb作为二者之间的维系&#xff0c;才能让用户在电脑上对手机进行全面的操作。 Android的初衷是用adb这样的一个工具来协助开发人…

el-submenu is-opened 展开/闭合;el-submenu is-opened保持一个子菜单的展开控制

写了个mes系统目录 点击子菜单展开后&#xff0c;上一级菜单没有默认关闭。主流后台管理系统大部分都是保持一个子菜单关闭状态、 问度娘无果后&#xff0c;查询官网&#xff0c;一个属性搞定。 unique-opened 是否只保持一个子菜单的展开 加在 <el-menu 组件上即可 完整代…

解决Docker镜像中CentOS 8仓库问题

前言&#xff1a; 在yum执行过程中&#xff0c;持续遇到与CentOS 8上的’appstream’仓库元数据检索相关的错误。具体错误消息为&#xff1a;“错误&#xff1a;下载’appstream’仓库元数据失败&#xff1a;无法准备内部镜像列表&#xff1a;镜像列表中没有URL。” 问题分析&…