目录
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
- 效果
输出结果如下:
我认为跑步最重要的就是给我带来了身体健康