语音识别(Speech Recongnition)

  • Speech Recongnition
  • TTS(Text-to-Speech),属于Speech Synthesis 典型模型Tacotron,用的是一个典型的 Seq2Seq + Attention 的模型架构。它输出还会有个后处理(Post-processing)才会产生声音频谱(spectrogram)。

    CBHG结构(G2P,Grapheme-to-Phoneme,字素到音素 ):

SR基本概念

语音模型:即将 sound 转为 text。

  • Text: a sequence of Token 长度:N,总种类数量:V
  • Sound: vectors sequence 长度:T,维度:d

一、Text Token

  • Phoneme(音位、音素):即 a unit of sound,可以理解为发音的音标
  • Grapheme(字位,书写位,最多使用⭐):即 smallest unit of a writting,比如【26个英文字母+空格+标点符号】
  • Word:即语言中的单词
  • Morpheme(字位,书写位):即 smallest meaningful unit,比如英语单词的词根。词素是构成词的要素。词素是比词低一级的单位,词是语言中能够独立运用的最小单位,是指词在句法结构中的地位和作用而言的。
  • Bytes:直接用字节表示一组Text,常见的诸如 UTF-8 编码

二、声音特征 Acoustic Feature

通常以 25ms 为窗口长度,将声音讯号转为 一个向量(frame,也即帧),每次窗口移动 10ms,也就是说 1s →100 frames

frame 制作方法

  1. sample points:当 声音采样率 在 16KHz 时,其在 25ms 内一共有 400个 sample points,直接将这400个数字拿过来当frame即可
  2. 39-dim MFCC:一共有39维
  3. 80-dim filter bank output:一共有80维

frame 制作过程
首先,Waveform(波形) 通过 DFT 变为 spectrogram(频谱),此时已经可以用于训练了

一个人说一句话,其 waveform 可以很不一样,但是 spectrogram 基本上会相似,甚至有人可以通过 spectrogram 来判断说话的内容


DFT(Discrete Fourier Transform)是将连续音频信号转换为离散频域表示的一项重要操作。DFT是一种数学变换,用于将时域信号(如音频波形)转换为频域表示。它是连续傅立叶变换(Continuous Fourier Transform,CFT)的离散版本,适用于离散时间序列。

然后,spectrogram 通过 filter bank(滤波器组) 变为一个个向量

滤波器组(filter bank)是由一组滤波器所组成的系统,用于对输入信号进行频率分析。在声学特征提取中,常用的滤波器组是梅尔滤波器组(Mel filter bank)。梅尔滤波器组是一种非线性的滤波器组,它的设计基于梅尔刻度(Mel scale),该刻度是一种根据人耳感知频率的特性而设计的心理声学刻度。

随后再取 log,再进行 DCT,最后生成 MFCC。

在声学特征提取中,通常会使用梅尔滤波器组计算每个滤波器通道的能量,得到梅尔频谱系数(Mel-frequency cepstral coefficients,MFCCs)。然而,MFCCs包含了大量的频率信息,而且相邻帧之间往往高度相关,这可能导致冗余信息和过多的数据。

为了降低数据维度并捕捉主要信息,通常会将MFCCs序列通过DCT转化为倒谱系数(Cepstral coefficients)。倒谱系数不同于原始频谱系数,它们具有更好的特性和表示能力,适合语音和音频信号的建模和分析。


MFCC 其实为 MFCC系数,MFCC(Mel Frequency Cepstral Coefficients)是一种常用于音频信号处理和语音识别领域的声学特征提取方法 。在声学特征提取中,MFCC用于将连续的音频信号划分成一帧一帧的小片段,并将每帧表示为一组系数,以便在后续的分析中使用

Listen, Attend and Spell(LAS)

Listen:即 Encoder;Spell:Decoder,这是一个经典的使用注意力机制的 seq2seq 模型

一、Listen

  • 输入:一串 acoustic features(声音向量)
  • 输出:同样也是一串向量,数量、维度和长度均和输入相同
  • 作用:提取语言内容信息,将音频信号分析为高级的声学特征表示,将语种之间的差异抹除,将噪声去除

    种类
    1. RNN(Recurrent Neural Network)
    2. 1-D CNN(一维卷积神经网络)
    3. Self-attention Layers(自注意力)

Down Sampling

起因:数据量过大,计算量过大,相邻 acoustic features 包含信息差异较小,为了节省数据量,让训练更有效率

种类:

  • Pyramid RNN:两个 Tensor 结合起来送入下一层,RNN的变种
  • Pooling over time:两个 Tensor 选一个送入下一层,RNN的变种
  • Time-delay DNN(TDNN):CNN的常见变种
  • Truncated Self-attention:在生成output时,一个Tensor的attention只作用于一段范围,而不是整个input,Self-attention的变种

二、Attention(Attend)

主要作用是通过注意力机制建立声学特征和文本之间的关联,帮助模型更好地将声学特征转化为文本输出。其可以动态地分配注意力权重,以捕获输入序列中不同位置的重要信息的关键组件。

参考:https://blog.csdn.net/m0_56942491/article/details/133984968

三、Spell

  1. 上下文信息融合:

    • Input:
      • 前一个时间步的隐藏状态( z i z_i zi,初始为 z 0 z_0 z0)
      • 前一个时间步生成的标记(token,初始为起始符号如<s>
      • 当前时间步"Attend"环节的输出(即上下文向量Context Vector)
    • Method:通常是使用前馈神经网络,如RNN单元
    • Output:
      • 新的隐藏状态 z 1 z_1 z1
      • vocabulary 各个token的概率值(distribution)。
  2. 随后一般就从 distribution 中取概率值最大的那个token,作为本次的 token 输出,比如cat,第一次输出token:c。

    需要明确的是,如何选取 token 也是需要进行研究的,这里取 概率值最大的 Token 采用的技术叫 贪心解码 (Greedy Decoding),常见的还有 束搜索(Beam Search)

  3. 然后将刚刚得到的新的hidden state z1,去做attention,得到c1,然后再进行刚刚的操作,即将得到的 z1 投入新一轮的 attention 中,计算得到c1,再去计算下一轮。

  4. 然后不停循环,直到最后生成结束标志或达到最大生成长度为止。

CTC,RNA,RNN-T,Neural Transducer,MoChA模型

To Be Continued...

https://blog.csdn.net/m0_56942491/article/details/134012653

相关推荐
用户691581141651 小时前
Ascend Extension for PyTorch的源码解析
人工智能
用户691581141651 小时前
Ascend C的编程模型
人工智能
成富2 小时前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
CSDN云计算2 小时前
如何以开源加速AI企业落地,红帽带来新解法
人工智能·开源·openshift·红帽·instructlab
艾派森2 小时前
大数据分析案例-基于随机森林算法的智能手机价格预测模型
人工智能·python·随机森林·机器学习·数据挖掘
hairenjing11232 小时前
在 Android 手机上从SD 卡恢复数据的 6 个有效应用程序
android·人工智能·windows·macos·智能手机
小蜗子2 小时前
Multi‐modal knowledge graph inference via media convergenceand logic rule
人工智能·知识图谱
SpikeKing2 小时前
LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
人工智能·llm·大语言模型·llama·环境配置·llamafactory·训练框架
黄焖鸡能干四碗3 小时前
信息化运维方案,实施方案,开发方案,信息中心安全运维资料(软件资料word)
大数据·人工智能·软件需求·设计规范·规格说明书
3 小时前
开源竞争-数据驱动成长-11/05-大专生的思考
人工智能·笔记·学习·算法·机器学习