语音识别资料汇总:常见库和特征对比

语音识别基础

语音数据是一种时间序列数据,它记录了声音在时间轴上的变化。 通常通过麦克风收集,每个时刻的声音信号被采样成数字形式,形成一个时间序列。

语音数据通常需要进行预处理,如去除噪音、语音分割、特征提取等,才能用于语音识别、语音合成等应用。

语音数据特点

语音数据的数据类型通常为浮点数,表格数据的数据类型可以是数字、文字、日期等,而图像数据的数据类型通常是RGB颜色值或灰度值。

语音文件格式

  • WAV是一种无损音频格式,通常用于存储CD音质的音频数据。
  • MP3是一种有损音频格式,它可以对音频数据进行压缩,会导致部分音频信息丢失。
  • FLAC是一种无损音频格式,可以提供和WAV相同的音质。FLAC文件处理速度较慢。
  • OGG可以对音频数据进行压缩,但不会丢失任何信息,可以提供和FLAC相同的音质。

语音关键指标

  1. 采样率(Sampling Rate):采样率是指在单位时间内对声音信号进行采样的次数。常见的采样率有8kHz、16kHz、44.1kHz、48kHz等。采样率越高,声音的质量和精度就越高,但文件的大小也会相应增加。
  2. 量化位数(Quantization Bit Depth):量化位数是指采样数据的位数。常见的量化位数有8位、16位、24位、32位等。量化位数越高,声音的质量和精度就越高,但文件的大小也会相应增加。
  3. 通道数(Number of Channels):通道数是指录制或存储声音时使用的通道数量。常见的通道数有单声道(Mono)和立体声(Stereo)两种。立体声相比于单声道可以提供更为真实的声音效果。
  4. 语音长度(Length):语音长度是指声音信号的时长,通常以秒或毫秒为单位来表示。

语音数据预处理

采样:将模拟声音信号转换为数字信号,并进行量化处理,得到一系列的采样值。去噪:语音信号通常会受到环境噪声的影响,需要使用去噪算法去除噪声,提高语音信号的质量。分段:将语音按照时间分成为短段。

语音特征工程

语音特征工程是指从语音信号中提取有意义的特征来表示语音,以便于对语音信号进行分析和应用。

滤波器系数滤波器的形状建模方法速度的计算系数类型抗噪声能力对量化/附加噪声的灵敏度可靠性捕获频率
Mel倒频谱系数(MFCC)Mel三角形人类听觉系统倒频谱中等中等
线性预测系数(LPC)线性预测线性人类声道自相关系数
线性预测倒谱系数(LPCC)线性预测线性人类声道中等倒频谱中等低&中等
谱线频率(LSF)线性预测线性人类声道中等频谱中等低&中等
离散小波变换(DWT)低通&高通小波中等中等中等低&中等
感知线性预测(PLP)Bark梯形人类听觉系统中等倒频谱&自相关中等中等中等低&中等

梅尔频率倒谱系数(Mel Frequency Cepstral Coefficients,MFCC)

Mel倒频谱系数(MFCC)是一种常用的语音特征,可以用来表示语音信号的频谱特征。

MFCC的优点是具有很好的人类感知属性,能够有效地抽取语音信号的关键特征,且在语音识别、语音合成等领域有广泛应用。

线性预测系数(Linear Predictive Coding,LPC)

线性预测系数(LPC)是一种常用的语音特征,可以用来描述语音信号的频率特征。

LPC系数反映了语音信号的频率特征,它表示语音信号可以用一个线性滤波器来逼近。LPC的优点是计算速度快,具有较好的压缩效果和鲁棒性,且在语音编码、语音识别等领域有广泛应用。

线性预测倒谱系数(Linear Prediction Cepstral Coefficients,LPCC)

线性预测倒谱系数(LPCC)是一种基于LPC的语音特征,可以用来描述语音信号的频率特征。与MFCC类似,LPCC也可以用来抽取语音信号的关键特征。

LPCC系数反映了语音信号的频率特征,它可以有效地抑制高频噪声和低频噪声,具有很好的鲁棒性。LPCC与MFCC相比,在抗噪能力和特征表达能力方面具有一定优势。

谱线频率(Line Spectral Frequencies,LSF)

谱线频率(LSF)是一种用于语音分析和合成的频域表示方法。LSF可以从LPC系数中计算得到,它能够有效地描述语音信号的谐波结构和共振峰特征。

LSF是一种无失真的特征表示方法,可以完全重构LPC系数和语音信号。LSF可以描述语音信号的共振峰特征,具有较好的语音信息表示能力。

离散小波变换(Discrete Wavelet Transform,DWT)

离散小波变换(DWT)是一种基于小波分析的信号处理方法,可以用于语音信号的特征提取和降噪等方面。

与傅里叶变换不同,小波变换可以对信号的时间轴和频率轴进行同时处理,能够有效地捕捉信号的短时特征和局部特征。DWT可以提取语音信号的多尺度特征,具有较好的时间-频率局部化特性。

感知线性预测(Perceptual Linear Prediction,PLP)

感知线性预测(PLP)是一种用于语音特征提取的方法,它基于人耳感知声音的方式,考虑了语音信号的生理学和心理学特征,能够有效地提取语音信号的重要特征。

PLP能够有效地提取语音信号的重要特征,包括共振峰特征、声道信息、音高、音量等,具有较好的语音识别性能。

语音识别模型

RNN

RNN是一种具有记忆功能的神经网络,它能够处理序列数据,对于语音识别任务来说非常合适。

CNN

CNN主要用于图像识别任务,但它也能够应用到语音识别任务中。CNN在处理语音数据时,通常采用卷积层、池化层和全连接层等结构。

Transformer

由于Transformer编码器和解码器的自注意力机制需要对全序列上下文信息进行建模,因此不能直接用于流式语音识别的场景中。

使用较多的Transformer流式语音识别主要包括两类:Transducer结构模型,Joint Attention/CTC模型。

语音数据增强

语音数据增强是指通过一系列技术手段,对原始语音数据进行一些变换和操作,生成新的语音数据。新数据具有与原始数据相似但不同的特征,可以帮助提高语音识别模型的鲁棒性和准确性。

语音加噪

通过将一定强度的噪声加到原始语音数据上,模拟现实中的噪声环境。

傅里叶变换

对语音信号进行短时傅里叶变换,然后随机扭曲其中一部分频率分量,再通过逆变换得到新的语音数据。

时间拉伸/压缩

通过改变语音信号的时间尺度,增加或减少语音时长,从而生成新的语音数据。

Cutout

Cutout将输入的语谱图或MFCC特征中的一部分区域随机遮挡,以生成新的训练样本。

Mixup

Mixup将两个不同的语音信号或特征表示进行线性插值,生成新的训练样本。

语音识别Python库

Kaldi

https://github.com/kaldi-asr/kaldihttps://github.com/mravanelli/pytorch-kaldi

Kaldi是一个开源语音识别工具包,提供多种现代的、高效的语音识别算法,以及完整的语音识别系统实现。它使用C++实现,但也提供Python接口。

ESPnet

https://github.com/espnet/espnet

ESPnet是一个端到端语音识别工具包,使用PyTorch实现,支持多种特征表示、模型架构和解码器,并提供了预训练模型和训练代码。

librosa

https://github.com/librosa/librosa

librosa是一个用于音频和音乐分析的Python库,提供了多种音频信号处理和特征提取功能,如Mel频率倒谱系数(MFCC)、短时傅里叶变换(STFT)等。

torchaudio

https://github.com/pytorch/audio

torchaudio是PyTorch官方提供的用于音频处理和语音识别的Python库,提供了多种音频信号处理和特征提取函数,如STFT、MFCC、梅尔带通滤波器组(Mel filterbank)等。

audiomentations

https://github.com/iver56/audiomentations

audiomentations是一个Python库,专门用于对音频信号进行数据增强,提供了多种增强方法,如变速、音调变化、添加噪声、随机裁剪等。

SpecAugment

https://github.com/pyyush/SpecAugment

SpecAugment是一种用于语音识别任务的数据增强方法,可以通过随机遮挡语谱图的方式来增强数据集。

以上文章来源于Coggle数据科学 ,作者Coggle

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论