【飞桨PaddleSpeech语音技术课程】— 语音识别-Deepspeech2

(以下内容搬运自飞桨PaddleSpeech语音技术课程,点击链接可直接运行源码)

语音识别——DeepSpeech2

0. 视频理解与字幕

# 下载demo视频
!test -f work/source/subtitle_demo1.mp4 || wget https://paddlespeech.bj.bcebos.com/demos/asr_demos/subtitle_demo1.mp4 -P work/source/
import IPython.display as dp
from IPython.display import HTML
html_str = '''
<video controls width="600" height="360" src="{}">animation</video>
'''.format("work/source/subtitle_demo1.mp4 ")
dp.display(HTML(html_str))
print ("ASR结果为:当我说我可以把三十年的经验变成一个准确的算法他们说不可能当我说我们十个人就能实现对十九个城市变电站七乘二十四小时的实时监管他们说不可能")

Demo实现:https://github.com/PaddlePaddle/PaddleSpeech/blob/develop/demos/automatic_video_subtitiles/

1. 前言

1.1 背景知识

语音识别(Automatic Speech Recognition, ASR) 是一项从一段音频中提取出语言文字内容的任务。


(出处:DLHLP 李宏毅 语音识别课程PPT)

目前该技术已经广泛应用于我们的工作和生活当中,包括生活中使用手机的语音转写,工作上使用的会议记录等等。

1.2 发展历史

  • 早期,生成模型流行阶段:GMM-HMM (上世纪90年代)
  • 深度学习爆发初期: DNN,CTC[1] (2006)
  • RNN流行,Attention提出初期: RNN-T[2](2013), DeepSpeech[3] (2014), DeepSpeech2 [4] (2016), LAS[5](2016)
  • Attetion is all you need提出开始[6]: Transformer[6](2017),Transformer-transducer[7](2020) Conformer[8] (2020

Deepspeech2模型包含了CNN,RNN,CTC等深度学习语音识别的基本技术,因此本教程采用了Deepspeech2作为讲解深度学习语音识别的开篇内容。

2. 实战:使用 DeepSpeech2 进行语音识别的流程

Deepspeech2 模型,其主要分为3个部分:

  1. 特征提取模块:此处使用 linear 特征,也就是将音频信息由时域转到频域后的信息。
  2. Encoder:多层神经网络,用于对特征进行编码。
  3. CTC Decoder: 采用了 CTC 损失函数训练;使用 CTC 解码得到结果。

2.1 Deepspeech2 模型结构

2.1.1 Encoder

Encoder 主要采用了 2 层降采样的 CNN(subsampling Convolution layer)和多层 RNN(Recurrent Neural Network)层组成。

其中降采样的 CNN 主要用途在提取局部特征,减少模型输入的帧数,降低计算量,并易于模型收敛。

2.1.1.1 CNN: Receptive field

假如以 F j F_j Fj 代表 L j L_j Lj 的 cnn 滤波器大小, S i S_i Si 代表 L i L_i Li 的CNN滤波器跳跃长度,并设定 S 0 = 1 S_0 = 1 S0=1。那么 L k L_k Lk

### 回答1: PaddleSpeech是一个基于飞桨深度学习框架的语音识别开发工具。在训练自定义数据集之前,需要进行数据的预处理,可以将音频数据转化为Mel频谱特征图,并提取相应的标签信息。然后,可以使用PaddleSpeech提供的数据加载方法将数据载入模型中进行训练。 在训练过程中,需要根据训练情况进行调参,并且要注意过拟合、欠拟合和梯度消失等问题。若训练过程缺乏泛化性,可以采用数据增强方法及时更新模型的泛化能力。 最终,通过迭代训练及调整模型参数,得到了适用于自定义数据集的最佳模型。可以使用该模型对新的音频数据进行分类或识别。需要注意的是,模型的性能将受到数据集规模大小及数据质量的影响。数据量越大,质量越高,模型的准确性将越高。 总之,PaddleSpeech提供一个基于深度学习的语音识别开发框架,可以方便地训练自定义数据集,训练方法需要注意调参及数据增强等细节,最终得到的模型将根据数据的质量以及大小产生巨大的影响。 ### 回答2PaddleSpeech 是百度 paddlenlp 库中的一个语音处理模块,它提供了基于 PaddlePaddle语音识别语音合成能力。我们可以利用 PaddleSpeech 进行自定义数据集的训练。 首先,需要准备自己的数据集。这些数据集可以是自己录制的语音文件,也可以是公共语音数据集。在这里,我们可以使用 PaddleSpeech 提供的 LibriSpeech 数据集进行训练。 然后,我们需要将这些数据预处理成适合模型训练的格式。这包括数据标注、数据切割、声学特征提取等过程。PaddleSpeech 提供了一系列的数据处理接口,可以方便地进行数据预处理。 接着,我们需要选择合适的模型进行训练。PaddleSpeech 提供了多种语音识别模型,包括 DeepSpeech2 和 Transformer 等。我们可以根据自己的需求选择合适的模型。 最后,我们可以利用 PaddleSpeech 提供的训练脚本进行模型训练。在训练过程中,我们可以根据实际情况调整训练参数,如学习率、批大小等。训练完成后,我们可以利用训练好的模型进行语音识别任务的测试或部署。 总之,利用 PaddleSpeech 进行自定义数据集的训练可以帮助我们更好地解决实际问题,提高语音识别的准确率和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值