语音识别概述

news2024/11/14 14:28:10

语音识别概述

一.什么是语音?

语音是语言的声学表现形式,是人类自然的交流工具。

在这里插入图片描述
图片来源:https://www.shenlanxueyuan.com/course/381


二.语音识别的定义

语音识别(Automatic Speech Recognition, ASR 或 Speech to Text, STT)是将语音转换为文本的任务。其主要目标是解决机器“听清”问题,处理声学和(部分)语言上的混淆,确保每个人的语音都能被正确识别为文本。

1.主要解决的问题:
  1. 将语音转换成文本。
  2. 解决机器“听清”问题。
  3. 处理声学和部分语言上的混淆。
  4. 确保不同人的语音都能被正确识别。
2.不解决的问题:
  1. 说话人识别。
  2. 副语言信息的分析与识别(如发音、质量、韵律、情感)。
  3. 语言理解。
3.评估标准:
  1. Accuracy(准确率):

    • 音素错误率(Phone Error Rate, PER)
    • 词错误率(Word Error Rate, WER)
    • 字错误率(Character Error Rate, CER)
    • 句错误率(Sentence Error Rate, SER)
  2. Efficiency(效率):

    • 实时率(Real-time Factor, RTF)
4.错误率计算实例:
Ref:  THE CAT IN       THE        HAT
Hyp:      CAT IS   ON  THE  GREEN HAT
       DEL     SUB  INS       INS

在这个例子中:

  • 第一行为正确的抄本(Ref)。
  • 第二行为识别结果(Hyp)。
  • 错误类型:第一列为删除错误(DEL),第三列为替换错误(SUB),第四列和第六列为插入错误(INS)。

错误率计算公式:Error rate=100×(1S+1D+2I)/5=80

计算过程中关注三种错误:插入错误、替换错误和删除错误。实际计算时,错误率有可能超过100%。

5.语音识别系统分类:
  1. 说话人:特定人、非特定人
  2. 语种:单一语种、多语种
  3. 词汇量:大词汇量、中词汇量、小词汇量
  4. 设备:云端、端侧
  5. 距离:近距离、远距离

三.语音识别的重要性

语音识别(ASR,Automatic Speech Recognition)是一项极具挑战性的技术,被誉为“镶嵌在人工智能皇冠上的明珠”。它在现代技术和应用中占有重要地位,主要体现在以下几个方面:

1. 快速、便捷、无接触的优点
  • 快速:语音输入的速度通常比键盘输入更快,使信息传递更加高效。
  • 便捷:用户只需说话,无需学习复杂的输入方法,使用门槛低。
  • 无接触(Hands-Free):特别适用于开车、做家务等需要双手操作的场景,提升了用户的便利性和安全性。
2. 音频内容分析与理解的基础
  • 文字转写:语音识别是将音频内容转化为文本的第一步,这一过程是进一步分析与理解音频内容的基础。
  • 文本分析:转写后的文本可以进行情感分析、主题识别等处理。
  • 数据存档:转写文本便于存储和检索,提升了数据的可用性。
3. AIoT和智能服务的入口
  • AIoT(人工智能物联网):语音识别是AIoT设备的主要交互方式,用户可以通过语音控制智能家居、可穿戴设备等。

    • 智能家居:语音助手控制灯光、温度、家电等。
    • 可穿戴设备:语音识别用于健康监测、运动记录等。
  • 智能服务:语音识别在智能客服、自动翻译等领域有广泛应用。

    • 智能客服:自动应答用户问题,提高客服效率。
    • 自动翻译:实时翻译语音内容,打破语言障碍。
4. 满足自然人机交互和内容理解与生成的需求
  • 自然人机交互:语音识别使人机交互更加自然,用户可以通过语音指令与设备进行交流,提升用户体验。

    • 虚拟助手:如Siri、Alexa、Google Assistant等通过语音识别实现自然对话。
    • 导航系统:通过语音输入目的地,提高驾驶安全性。
  • 内容理解与生成:语音识别技术与自然语言处理(NLP)结合,实现内容的理解与生成。

    • 语音搜索:用户通过语音进行信息搜索,快速获取答案。
    • 语音生成:将文本转化为自然语音,实现双向交流。
5. 技术与应用的广泛性
  • 医疗领域:医生通过语音输入病历,提高工作效率,减少误诊。
  • 教育领域:语音识别用于语言学习、课堂记录等,提高学习效果。
  • 安防领域:通过语音识别进行身份验证和监控,提高安全性。

四.语音交互

在这里插入图片描述
图片来源:http://techchannel.att.com/play-video.cfm/2011/8/10/AT&T-Archives-The-Speech-Chain


五.语音生成

语音生成(Speech Production)是指通过大脑指挥神经系统发出肌肉命令,进而控制发音器官运动,最终产生声音的过程。

1.语音生成过程
  • 大脑指挥:大脑发出神经信号,控制肌肉运动。

  • 神经肌肉命令:神经系统将命令传递到发音器官。

  • 发音器官运动:发音器官(如声带、口腔、鼻腔等)根据神经信号进行运动,产生声音。

2.发音的基本原理
  • 声门运动:声门的快速打开与关闭产生不同的声音。
  • 基本频率:声门震动的快慢决定声音的基本频率。
  • 口腔、鼻腔、舌头的位置及嘴型:这些因素共同决定声音的内容。
  • 肺部空气压力:肺部压缩空气的力量决定音量。
2.声音类型
  • 浊音(Voiced Sounds):由声带震动引起,波形具有明显的周期性,人们可以感受到稳定的高音。

  • 清音(Unvoiced Sounds):声带不震动,波形类似白噪声,人们无法感受到稳定的高音。

3.语音单元
  1. 音素(Phonemes):

    • 音素是语言中语音的最小单元,分为辅音(consonants)和元音(vowels)。
    • 音素的数量因语言而异。
    • 同位异音(Allophone):音素的声学实现受到上下文影响,一个音素可能有不同的实现。
  2. 词素(Morpheme):语言中最小的具有语义的结构单元。

  3. 音节(Syllable):

    • 由元音和辅音结合构成。
    • 音节头(声母):元音之前的辅音。
    • 韵母:音节头后的元音及随后的辅音。
      • 音节核:韵母中的元音。
      • 音节尾:随后的辅音。
    • 在中文中,一个汉字的读音为一个带调音节(如普通话约1300多个带调音节,去掉声调后约400个基础音节)。
4.声学特征
  1. 共振峰(Formants):

    • 在声音的频谱中,能量相对集中的区域。
    • 共振峰决定音质,反映声道的物理特征,不同元音会产生不同种类的共振。
  2. 协同发音(Coarticulation):

    • 发音过程中,每个音素会受到前后音素的影响。
    • 协同发音使得音素的声学实现与上下文强相关,因此语音识别中常建立上下文相关模型。
5.音素抄本

音素抄本(Phonetic Transcription)是一段语音对应的音素列表,可以带或不带边界。音素抄本提供时间信息,可以通过人工标注或自动对齐获得。它在语音识别的声学建模中非常重要。


六.语音感知

语音感知(Speech Perception)是指人耳将外界声音信号传递到大脑,并由大脑进行处理和理解的过程。该过程包括外耳、中耳和内耳的协同工作,以及声音的物理特性与人耳听觉特性之间的关系。

1.人耳结构
  1. 外耳

    • 功能:声源定位,对声音进行放大。
    • 组成:耳廓和外耳道。
  2. 中耳

    • 功能:进行声阻抗变换,放大声压,保护内耳。
    • 组成:鼓膜和听小骨(锤骨、砧骨、镫骨)。
  3. 内耳

    • 功能:将声压刺激转化为神经冲动,发送到大脑。
    • 组成:耳蜗和听神经。
2.物理特性与听觉特性

语音感知涉及声音的物理量和感知量之间的关系。下表总结了这些关系:

物理量 (Physical Quantity)感知量 (Perceptual Quantity)
声强 (Intensity)响度 (Loudness)
基频 (Fundamental Frequency)音高或音调 (Pitch)
频谱形状 (Spectral Shape)音色或音品 (Timbre)
起始/结束时间 (Onset/offset time)时间感知 (Timing)
双耳听觉的相位差 (Phase difference in binaural hearing)定位 (Location)
3.声音三要素
  1. 响度(Loudness):

    • 响度是人主观感受到的声音强度,与声音的频率成分有关。
    • 闻阈:人耳刚好能听见的最小响度。
    • 痛阈:声音使人耳感到疼痛时的响度。

在这里插入图片描述

图片来源:https://www.shenlanxueyuan.com/course/381

  1. 音高或音调(Pitch):

    • 音调是人耳对声音频率的感知,是非线性的,近似对数函数。

    • 音调和频率的近似关系:𝑇𝑚𝑒𝑙=2595log10⁡(1+𝑓7000)。

      𝑓为物理频率,𝑇𝑚𝑒𝑙为音调,单位是美(Mel)

  2. 音色或音品(Timbre):

    • 音色由声音波形的谐波频谱和包络决定。
    • 基音:声音波形的基频产生的最清楚的音。
    • 泛音:各次谐波的微小震动产生的音。
    • 纯音:单一频率的音。
    • 复音:具有谐波的音。
    • 不同声源的音色特征由声音波形各次谐波的比例和随时间的衰减大小决定。
4.掩蔽效应

掩蔽效应(Masking)是指一个较强声音掩蔽附近较弱声音,使其不易被察觉的现象。分为两种情况:

  • 同时掩蔽(Simultaneous Masking):一个强纯音会掩蔽其附近频率同时发生的弱纯音。

  • 异时掩蔽(Temporal Masking):在时间上相邻的声音之间的掩蔽现象。

掩蔽阈值是时间、频率和声压级的函数。


七.语音识别的挑战性

语音识别(Automatic Speech Recognition, ASR)是一个非常具有挑战性的任务,其在众多方面表现出强大的可变性。以下是影响语音识别性能的主要因素及其可变性:

1.主要影响因素及其可变性
因素可变性描述
规模词表大小、复杂度/困惑度、书面化或口语化
说话人是否特定说话人、适应特定说话人的特性
声学环境噪声、干扰人声、信道条件(麦克风、传输空间、空间声学)
讲话风格连续或孤立词、有计划或即兴对话、大声或轻声细语
口音/方言是否能识别各种口音
语种中文、英文、超过5000种语言、语言混杂
信道特性不同麦克风、不同采样率、传输编码等
环境影响距离衰减、噪声、混响、干扰人声
2.语音识别中的变异性
  • 说话人之间的变异性:不同说话人的口音、语速、发音方式、语调等各不相同。适应多种说话人的特性是语音识别的一个重要挑战。

  • 说话人之内的变异性:同一个人在不同时间、不同情绪状态、不同健康状态下,语音特性也会有所不同。不同讲话方式(如大声、轻声、低语)对语音识别系统的要求也各不相同。

  • 信道变异性:不同麦克风的性能、采样率和传输编码会影响语音信号的质量。在不同传输条件下,信号可能会受到干扰或衰减。

  • 环境变异性:环境噪声、回声、混响以及干扰人声等都会影响语音信号的清晰度。距离衰减效应,尤其在远讲场景下,语音信号会显著衰减。

3.特殊场景挑战

CHiME-5场景: 多说话人完全自由对话。现实生活中的家居声学场景。远讲情况下的语音识别。说话人移动及语音交叠。


八.语音识别的发展历史

1.早期阶段(1950-1960年代)

在语音识别研究的初期,研究人员主要集中于提出一些基础的方法和引入关键的思想与概念。由于受限于方法、计算能力和数据量,这一阶段的研究主要针对小词表的语音识别,且缺乏大规模测试。主要特点包括:

  • 初步探索:提出个别方法和概念。
  • 小词表研究:主要集中在小范围词汇的语音识别。
  • 技术限制:计算能力和数据量的限制使得研究进展缓慢。
2.现代语音识别的诞生(1970-1980年代)

这个阶段标志着语音识别从基础研究进入了统计学习时代,几乎忽略了语音学和语言学的专家知识,转而使用数据驱动的方法。关键技术和方法在此期间得以发展,包括:

  • 统计学习方法:将语音识别视为统计学习任务。
  • 关键技术:引入了EM算法、N-gram等。
  • 中大词表尝试:开始尝试中大词表的语音识别系统。
3.平稳发展期(1990-2000年代)

在这一阶段,GMM-HMM(高斯混合模型-隐马尔科夫模型)框架成为主导,语音识别系统得以进一步发展。主要进展包括:

  • GMM-HMM框架:成为语音识别的主流框架。
  • 上下文相关建模:声学建模开始考虑基于上下文相关的模型。
  • n-gram语言模型:使用大量文本统计概率关系。
  • 数据和任务复杂度增加:数据量和任务复杂度逐步增加。
  • 判别式学习:引入区分性训练技术推动进步。

尽管技术不断进步,但语音识别的准确率在这一时期鲜有显著提升。

3.深度学习时代(2006年至今)

2006年是语音识别历史上的一个重要转折点,标志着深度学习技术的引入和广泛应用。在此之后,语音识别的准确率显著提升,主要特点包括:

  • 深度神经网络(DNNs):深度学习模型的应用大幅提升了语音识别的性能。
  • 大规模数据和计算能力:利用更大的数据集和更强的计算能力进行训练。
  • 持续改进:技术不断进步,推动语音识别系统向更高的准确率和更广泛的应用场景发展。

九.现代语音识别框架

现代语音识别框架主要分为两类:统计模型和端到端系统。

1.统计模型

统计模型的核心思想是通过计算最有可能的单词序列来进行语音识别。假设有一个声学特征向量(观测向量)的序列 X,表示一个单词序列 W,那么最有可能的单词序列可以通过以下公式计算得出:
W ^ = arg ⁡ max ⁡ W P ( W ∣ X ) \hat{W} = \arg\max_W P(W|X) W^=argWmaxP(WX)
应用贝叶斯定理,这一公式可以进一步推导为:
P ( W ∣ X ) = p ( X ∣ W ) P ( W ) p ( X ) ∝ p ( X ∣ W ) P ( W ) P(W|X) = \frac{p(X|W)P(W)}{p(X)} \propto p(X|W)P(W) P(WX)=p(X)p(XW)P(W)p(XW)P(W)
其中:

  • p(X∣W) 是 声学模型,用于计算给定单词序列 W 下的声学特征向量 X的概率。
  • P(W) 是 语言模型,用于计算单词序列 W的先验概率。

通过组合声学模型和语言模型,统计模型可以通过给定的声学特征向量 X获取最有可能的词序列。

现代的统计模型通常使用三大组件:

  • 声学模型:用于计算声学特征向量的概率分布。

  • 语言模型:用于计算单词序列的先验概率。

  • 发音词典:提供单词与其发音之间的映射。
    在这里插入图片描述

    图片来源:https://www.shenlanxueyuan.com/course/381

2.端到端系统

端到端系统使用一个神经网络直接将输入的声学特征向量 X映射为词序列。这种方法简化了传统统计模型的复杂架构,避免了多个组件的独立优化和组合,具有以下特点:

  • 直接映射:通过神经网络直接将声学特征向量转换为单词序列。
  • 简化架构:省去声学模型、语言模型和发音词典的独立建模和组合。
  • 统一训练:在一个训练过程中同时优化声学和语言模型的参数。

在这里插入图片描述
图片来源:https://www.shenlanxueyuan.com/course/381


十.语料库与工具包

1.英文数据
  1. TIMIT:用于音素识别,由 LDC 管理版权。
  2. WSJ:新闻播报语料库,由 LDC 管理版权。
  3. Switchboard:电话对话语料库,由 LDC 管理版权。
  4. Librispeech:有声读物语料库,包含 1000 小时的开源数据。 Librispeech
  5. AMI:会议语料库,开源数据。 AMI
  6. TED-LIUM:TED 演讲语料库,开源数据。 TED-LIUM
  7. CHiME-4:平板远讲语料库,需要申请。
  8. CHiME-5/6:聚会聊天语料库,需要申请。
2.中文数据
  1. THCHS-30:30 小时的开源语料库。 THCHS-30
  2. HKUST:150 小时的电话对话语料库,由 LDC 管理版权。
  3. AIShell-1:178 小时的开源语料库。 AIShell-1
  4. AIShell-2:1000 小时的开源语料库,需申请。 AIShell-2
  5. aidatatang_200zh:200 小时的开源语料库。 aidatatang_200zh
  6. MAGICDATA:755 小时的开源语料库。 MAGICDATA
3.工具包
  1. HTK:一款语音识别工具包。 HTK
  2. Kaldi:目前使用最广泛的语音识别工具包,支持 C++ 和 Python。 Kaldi
  3. ESPNet:基于 Pytorch 的端到端语音识别工具包。 ESPNet
  4. Lingvo:基于 Tensorflow 的语音识别工具包。 Lingvo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数字探秘:用神经网络解密MNIST数据集中的数字!

用神经网络解密MNIST数据集中的数字! 一. 介绍1.1 MNIST数据集简介1.2 MLP(多层感知器)模型介绍1.3 目标:使用MLP模型对MNIST数据集中的0-9数字进行分类 二.数据预处理2.1 数据集的获取与加载2.2 数据集的探索性分析(E…

编写商品列表和商品编辑和商品新增页面

addvue <template><!-- 传过来的id --> <!-- {{ $route.query.id }} --> <el-formref"FormRef"style"max-width: 600px":model"FormData":rule"rules"status-iconlabel-width"auto"class"demo-r…

【中台】数字中台建设方案(PPT)

数字中台建设要点&#xff1a; 数据采集与整合&#xff1a; 打破企业内部各个业务系统的数据隔阂&#xff0c;通过数据采集和数据交换实现数据的集中管理&#xff0c;形成统一的数据中心&#xff0c;为后续数据价值的挖掘提供基础。 利用自研或第三方ETL&#xff08;Extract, T…

最长下降序列

如何理解这个题目呢,我们可以每个人的分数放到排名上&#xff0c;然后求解最长下降序列即可 #include<bits/stdc.h> using namespace std;int n; const int N (int)1e5 5; int a[N]; int b[N]; int d[N]; int dp[N]; int t;int main() {cin >> t;while (t--) {…

排序——归并排序及排序章节总结

前面的文章中 我们详细介绍了排序的概念&#xff0c;插入排序&#xff0c;交换排序与选择排序&#xff0c;大家可以通过下面的链接再去学习&#xff1a; ​​​​​​排序的概念及插入排序 交换排序 选择排序 这篇文章就详细介绍一下另一种排序算法&#xff1a;归并排序以及…

PE文件(十)重定位表

重定位表的引入 程序加载过程 在win32下&#xff0c;每一个PE文件&#xff08;其可能由多个子PE文件组成&#xff09;在运行时&#xff0c;操作系统会给分配一个独立的4GB虚拟内存&#xff0c;内存地址从0x00000000到0xFFFFFFFF。其中低2G为用户程序空间&#xff0c;高2G为操…

【Linux】进程间通信——消息队列和信号量

目录 消息队列&#xff08;message queue&#xff09; 信号量&#xff08;Semaphore&#xff09; system V版本的进程间通信方式有三种&#xff1a;共享内存&#xff0c;消息队列和信号量。之前我们已经说了共享内存&#xff0c;那么我们来看一下消息队列和信号量以及它们之间…

【鸿蒙学习笔记】位置设置・position・绝对定位

官方文档&#xff1a;位置设置 目录标题 position&#xff1a;绝对定位&#xff0c;确定子组件相对父组件的位置。 position&#xff1a;绝对定位&#xff0c;确定子组件相对父组件的位置。 正→ ↓ Entry Component struct Loc_position {State message: string Hello Wor…

汇编语言程序设计-8-汇编语言快速查阅

8. 汇编语言快速查阅 文章目录 8. 汇编语言快速查阅常用资料寄存器含义标志寄存器的含义Debug的使用汇编语法 本章列出一些需要经常查阅的知识点。 常用资料 参考视频&#xff1a;烟台大学贺利坚老师的网课《汇编语言程序设计系列专题》&#xff0c;或者是B站《汇编语言程序设计…

vue学习day08-v-model详解、sync修饰符、ref和$refs获取dom组件、Vue异步更新和$nextTick

25、v-model详解 &#xff08;1&#xff09;v-model原理 1&#xff09;原理: v-model本质上是一个语法糖&#xff0c;比如&#xff1a;在应用于输入框时&#xff0c;就是value属性与input事件的合写。 2&#xff09;作用 ①数据变&#xff0c;视图变 ②视图变&#xff0c…

【 C++ 】详解 (类和对象) 继承

继承的概念及定义 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象 程序设计的层次结构…

【Linux】Linux的账号和用户组

管理员的工作中&#xff0c;相当重要的一环就是【管理账号】。 因为整个系统都是你在管理&#xff0c;并且所有一般用户的账号申请&#xff0c;都必须要通过你的协助才行&#xff0c;所以你就必须要了解一下如何管理好一个服务器主机的账号。 在管理Linux主机的账号时&#xff…

Python应用开发——30天学习Streamlit Python包进行APP的构建(15):优化性能并为应用程序添加状态

Caching and state 优化性能并为应用程序添加状态! Caching 缓存 Streamlit 为数据和全局资源提供了强大的缓存原语。即使从网络加载数据、处理大型数据集或执行昂贵的计算,它们也能让您的应用程序保持高性能。 本页仅包含有关 st.cache_data API 的信息。如需深入了解缓…

AG32 的MCU与FPGA的主频可以达到568MHz吗

Customers: AG32/ AGRV2K 这个芯片主频和定时器最高速度是多少&#xff1f;用户期望 CPLD计时器功能0.1ns以下。 AGM RE: CPLD做不到 0.1ns的速率&#xff0c;这个需要10G以上的时钟。 那AGRV2K最高多少MHz呢&#xff1f; 一般200MHZ比较容易实现。 进一步说明&#xff1…

智慧校园服务监控功能

智慧校园系统中的服务监控功能&#xff0c;扮演着维护整个校园数字化生态系统稳定与高效运作的重要角色。它如同一位全天候的守护者&#xff0c;通过实时跟踪、分析并响应系统各层面的运行状况&#xff0c;确保教学、管理等核心业务流程的顺畅进行。 服务监控功能覆盖了智慧校园…

自动控制——变速积分的PID控制

变速积分的PID控制 PID控制&#xff08;Proportional-Integral-Derivative Control&#xff09;是工业控制中最常用的控制算法之一。标准的PID控制器由比例&#xff08;P&#xff09;、积分&#xff08;I&#xff09;和微分&#xff08;D&#xff09;三个部分组成&#xff0c;…

连锁直营店小程序赋能多店如何管理

如商超便利店卖货线下场景&#xff0c;也有不少品牌以同城多店和多地开店经营为主&#xff0c;获取店铺周围客户和散流&#xff0c;如今线上重要性凸显&#xff0c;品牌电商发展是经营的重要方式之一&#xff0c;也是完善同城和外地客户随时便捷消费的方式之一。 多个门店管理…

Js 前置,后置补零的原生方法与补字符串 padStart及padEnd

在工作中&#xff0c;遇到了需要将不满八位的一个字符串进行后补0的操作&#xff0c;所以就在网上学习了关于js原生补充字符串的方法&#xff0c;然后用这篇博客记录下来。 目录 前置补充字符串 String.prototype.padStart() 后置补充字符串String.prototype.padEnd() 前置补…

OpenGL笔记十之Shader类的封装

OpenGL笔记十之Shader类的封装 —— 2024-07-10 晚上 bilibili赵新政老师的教程看后笔记 code review! 文章目录 OpenGL笔记十之Shader类的封装1.运行2.目录结构3.main.cpp4.application4.1.CMakeLists.txt4.2.Application.h4.3.Application.cpp 5.assets5.1.shaders&#xf…

虚拟机:VMware功能,安装与使用

目录 一、虚拟机介绍 二、VMware 1.介绍 2.安装 &#xff08;1&#xff09;根据提示按步骤安装​编辑 &#xff08;2&#xff09;更改软件的安装地址​编辑 &#xff08;3&#xff09;根据自己的需求选择是否需要软件更新​编辑 &#xff08;4&#xff09;根据需求选择…