语音相关算法学习整理

最近看了一下百度paddlespeech的一些公开课,把课程里的视频内容大体听了一下,现在整理一下笔记。教程链接见:飞桨AI Studio星河社区-人工智能学习与实训社区

语音识别的过程可以这样简单概括:

将声音信号经过预加重、加窗、fft等转化成频谱图,横轴是频率,纵轴是能量大小。然后经过mel滤波器变成mel频谱图。

然后的处理方法,有的是直接经过取对数操作变成logfbank特征;有的去除了相邻频段的重叠相关部分,就是mfcc特征。现在深度学习有用到重叠相关性,用logfbank的比较多。

声音特征经过声学模型,输出每一帧的识别文字和对应的概率。声学模型框架课程里介绍了两种,一种是deepspeech,一种是基于transformer的conformer。

deepspeech2采用了两层降采样的cnn和多层rnn组成。

deepspeech2是使用cnn提取局部特征,减少模型输入帧数,降低计算量,易于模型收敛;这也就是为什么有了cnn以后,不再需要mfcc等人工特征提取相对独立的信号了(或者说是能量的本征值?)。

rnn的作用是获取语音的上下文信息,获得更加准确的信息,进行一定程度的语义消歧。

softmax将特征向量映射到一个字表长度的向量。

decoder是将encoder的概率解码成最终的文字结果。

ctc的解码有3种方式:

CTC greedy search

CTC beam search

CTC Prefix beam search

prefix beam search合并了生成重复项的概率(因为ctc的对齐方式就是允许有重复项,但是最后会把相邻的重复项或空格合并成一个token。)

ctc的对齐是很有用的,利用了单调有序性(就是说语音里文字的前后关系也对应识别文字的前后关系。)但是语音转译就没这么好的条件利用了,例如good morning应该翻译成“早上好”。

还说回语音识别,另一种方式是conformer,前身是espnet。conformer的encoder部分是一个“汉堡包”类型的模型结构,而且他是layernorm在前面,然后接mha,然后接一个残差连接:

transformer相比rnn,可以更有效的捕捉到长距离的依赖关系。采用自回归的方法生成数据,也就是说用识别到的文字作为key,encode编码作为q和v,来生成下一个文字。

模型训练同时使用了 CTC 损失和 cross entropy 交叉熵损失进行损失函数的计算。

其中 Encoder 输出的特征直接进入 CTC Decoder 得到 CTC 损失。

而 Decoder 的输出使用 cross entropy 损失。

声纹识别有两种模式:1:1(声纹密码,安全)和1:N(从声纹库里提取,说话人分离)

现在利用x-vector来识别。

工业场景应用痛点:

1.没有标注数据,只有无监督数据

2.跨域场景性能下降严重

3.超大规模说话人训练

4.难分样本

痛点1:无监督比对学习,用已有的标注数据生成无监督样本,然后训练模型把不同说话人能有效分隔开。

痛点2:领域对抗学习,只需新增1条支路,建立特征对抗

痛点3:将多分类转换成二分类任务(语音/noise)

痛点4:解决长尾问题:focal loss,提升难分样本权重;ghm,不应特别关注困难样本,而应在一定范围内关注

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

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

相关文章

JavaWeb——Mysql的启动/登录/卸载

目录 1.Mysql服务器 2.Mysql的简单使用 2.1 启动Mysql: 2.2 登录Mysql 2.3 退出 3. 连接别人的数据库 4.卸载mqsql 1.Mysql服务器 安装了Mysql的计算机都成为Mysql服务器 2.Mysql的简单使用 2.1 启动Mysql: 第一种方法:搜索服务&am…

如何在微信小程序使用vant 进行自定义底部tabbar组件

在微信小程序中使用 Vant 自定义底部 TabBar 需要进行以下步骤: 一、首先,你需要在 app.json 文件中配置自定义 TabBar。 在 "tabBar" 字段中,设置 "custom" 为 true,表示使用自定义 TabBar。 app.json示例…

python18 正则表达式

python18 正则表达式 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt re代码 正则表达式 re.match(),re.search(),re.findall(),re.sub(),re.split() 元字符 具有特殊意义的专用字符 导入模块 improt rei…

AQS和同步器工具类

一、 同步框架AbstractQueuedSynchronizer Java并发编程核心在于java.concurrent.util包 而juc当中的大多数同步器实现都是围绕着共同的基础行为,比如等待队列、条件队列、独占获取、共享获取等,而这个行为的抽象就是基于AbstractQueuedSynchronizer简称…

关于多线程的理解

#系列文章 关于时间复杂度o(1), o(n), o(logn), o(nlogn)的理解 关于HashMap的哈希碰撞、拉链法和key的哈希函数设计 关于JVM内存模型和堆内存模型的理解 关于代理模式的理解 关于Mysql基本概念的理解 关于软件设计模式的理解 关于Redis知识的理解 文章目录 前言一、线程…

Docker基本使用和认识

目录 基本使用 镜像仓库 镜像操作 Docker 如何实现镜像 1) namespace 2) cgroup 3) LXC Docker常见的网络类型 bridge网络如何实现 基本使用 镜像仓库 镜像仓库登录 1)docker login 后面不指定IP地址,则默认登录到 docker hub 上 退出 2)docker logo…

P5711 【深基3.例3】闰年判断

1. 题目链接 https://www.luogu.com.cn/problem/P5711 P5711 【深基3.例3】闰年判断 2. 题目描述 题目描述:判断一个数是否是闰年 输入:输入一个整数n 输出:输出1或0,如果是闰年,输出1,否则输出0 3. 我的…

大数据经典sql

一、连续登录问题 问题:1)、每个用户连续登录最大天数 2)、连续登录大于三天的用户数 分析:本质都是计算用户连续登录天数 方案一:利用排序窗口 select a.user_id,a.date_rslt,count(1) as cnt from (select t.…

进入容器修改内容_提交改变后的镜像_镜像保存成tar压缩包离线传输_镜像传输_镜像推送到公共仓库---分布式云原生部署架构搭建009

然后再来看,进入docker内部去看看. 用 docker exec -it imgid /bin/bash 这样就可以进入容器内部 而且关于,镜像的,内部放到什么地方了,都可以找到比如 在hub.docker的地址里面,找到nginx可以看到,对应的 /usr/share/nginx/html 可以看到这个路径. 然后去看看,进入到/usr…

Android 数据库

帮助类对象中的getWritableDatabase 和 getReadableDatabase都可以帮助我们获取一个数据库操作对象SqliteDatabase. 区别: getReadableDatabase: 先尝试以读写方式打开数据库,如果磁盘空间满了,他会重新尝试以只读方式打开数据库。 getWr…

如何恢复未格式化分区数据?看这里!

什么是未格式化分区? 未格式化或RAW文件系统的分区无法被Windows操作系统识别和挂载,因此,Windows会提示你进行格式化以创建新的文件系统。注意,不要进行格式化。通常,文件系统变为未格式化或RAW会出现以下常见错误消…

专业VS学校:高考后的选择困境与解决之道

随着2024年高考的落幕,数百万考生站在了人生新的十字路口。分数的揭晓,既是对过往努力的肯定,也带来了新的选择难题。在专业与学校的权衡中,考生们往往陷入两难:是追随内心选择心仪的专业,还是选择一个知名…

大学选专业还是选学校好 哪个更重要

​​​​​​​如果你的分数不理想,建议先选专业。如果你是高分考生,建议先选学校。具体来看一下! 选专业还是选学校好 如果你是高分考生,建议先选学校 1 可以借助学校的名气 我们都知道,学校越有名,能…

(深度学习记录)第TR5周:Transformer中的位置编码详解

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 🏡我的环境: 语言环境:Python3.11.4编译器:Jupyter Notebooktorcch版本:2.0.…

【Matlab编程学习】 | matlab语言编程基础:常用图形绘制基础学习

🎩 欢迎来到技术探索的奇幻世界👨‍💻 📜 个人主页:一伦明悦-CSDN博客 ✍🏻 作者简介: C软件开发、Python机器学习爱好者 🗣️ 互动与支持:💬评论 &…

传输层udp和tcp协议格式

UDP协议 UDP协议端格式 udp的前八个字节是报头,后面部分就是有效载荷。而目的端口号就保证了udp向应用层交付的问题。 而针对于报头和有效载荷分离是根据固定八字结的报头长度。数据的长度就是取决于报头中udp长度字段的大小来确定udp报文长度,因此也可…

Apifox 中如何处理加密或编码过的响应数据?

接口返回的响应数据有时是经过编码或加密处理的,要转换成可读的明文,可以使用 Apifox 内置的 JS 类库、或者通过调用外部编程语言 (如 Python、JavaScript 等) 来进行处理。 例如,一个经过 Base64 编码的数据可以通过…

可视化数据科学平台在信贷领域应用系列六:自动机器学习(上篇)

在现代数据驱动的世界中,机器学习已经成为解决复杂问题和推动创新的重要手段。然而,传统的机器学习模型开发过程复杂且耗时,包括数据预处理、特征工程、模型选择、参数调优和模型评估等多个步骤环节,需要模型开发人员具备丰富的专…

AI“音乐创作”横行给音乐家带来哪些隐忧

​​​​​​​近日,200多名国际乐坛知名音乐人联署公开信,呼吁AI开发者、科技公司、平台和数字音乐服务商停止使用人工智能(AI)来侵犯并贬低人类艺术家的权利,具体诉求包括,停止使用AI侵犯及贬低人类艺术家的权利,要求…

Nginx配置文件解析与实例详解:打造高效稳定的网站服务

Nginx 是一种高性能的 HTTP 和反向代理服务器,同时也提供了 IMAP/POP3 代理服务器功能。由于其高并发处理能力、低内存消耗和灵活的配置能力,Nginx 被广泛应用于 Web 服务器、反向代理、负载均衡和 API 网关等场景。本文将详细解析 Nginx 的配置文件结构,并通过实例演示如何…