当前位置: 首页 > article >正文

语音识别(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


http://www.kler.cn/a/309036.html

相关文章:

  • python高效处理大数据:将Excel10万数据分批插入MySQL数据库的实战代码
  • Redis高可用-主从复制
  • HarmonyOS Next星河版笔记--界面开发(4)
  • FFmpeg 4.3 音视频-多路H265监控录放C++开发十三:将AVFrame转换成AVPacket。视频编码原理.编码相关api
  • 【秋招笔试-支持在线评测】11.13花子秋招(已改编)-三语言题解
  • 初始JavaEE篇 —— 网络编程(2):了解套接字,从0到1实现回显服务器
  • C语言-数据结构 有向图拓扑排序TopologicalSort(邻接表存储)
  • 基于LangChain的Embedding开发手册(保姆级)
  • SQL 基础知识
  • ubuntu20.04下载cuda11.8
  • Linux 系统
  • 清理C盘缓存的垃圾,专业清理C盘缓存垃圾与优化运行内存的策略
  • 026.(娱乐)魔改浏览器-任务栏图标右上角加提示徽章
  • C++ List (带你一篇文章搞定C++中的List类)
  • 复选按钮QCheckBox
  • 【C++】模版的进阶
  • 【Paper Reading】结合 NanoFlow 研究,优化大语言模型服务效率的探索
  • UE5中使用UTexture2D进行纹理绘制
  • 【OpenAPI】Spring3 集成 OpenAPI 生成接口文档
  • (web自动化测试+python)1
  • 金蝶云星空和金蝶云星空接口打通对接实战
  • Vite:快速构建现代Web应用的工具
  • 硬件工程师笔试面试——无线通讯模块
  • 服务器管理:从零开始的服务器安装与配置指南
  • elasticsearch 开启API密钥进行认证
  • Python骨架长度检测