简要给大家介绍一下语音怎么变文字的吧。
首先说一下作为输入的时域波形。我们知道声音实际上是一种波。常见的mp3、wmv等格式都是压缩格式,必须转成非压缩的纯波形文件,比如Windows PCM文件,即wav文件来处理。wav文件里存储的除了一个文件头以外,就是声音波形的一个个点了。采样率越大,每毫秒语音中包含的点的个数就越多。另外声音有单通道双通道之分,还有四通道的等等。对语音识别任务来说,单通道就足够了,多了浪费,因此一般要把声音转成单通道的来处理。下图是一个波形的示例。
另外,通常还需要做个VAD处理,也就是把首尾端的静音切除,降低对后续步骤造成的干扰,这需要用到信号处理的一些技术。
时域的波形必须要分帧,也就是把波形切开成一小段一小段,每小段称为一帧。分帧操作通常使用移动窗函数来实现,分帧之前还要做一些预加重等操作,这里不详述。帧与帧之间是有交叠的,就像下图这样:
图中,每帧的长度为25毫秒,每两帧之间有25-10=15毫秒的交叠。我们称为以帧长25ms、帧移10ms分帧。
分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取MFCC特征,把每一帧波形变成一个12维向量。这12个点是根据人耳的生理特性提取的,可以理解为这12个点包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,比如差分、均值方差规整、高斯化、降维去冗余等,声学特征也不止有MFCC这一种,具体就不详述了。
至此,声音就成了一个12行(假设声学特征是12维)、N列的一个矩阵,称之为观察序列,这里N为总帧数。观察序列如下图所示,图中,每一帧都用一个12维的向量表示,色块的颜色深浅表示向量值的大小。
接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍三个概念:
- 单词:英语中就是单词,汉语中是汉字。
- 音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由39个音素构成的音素集,参见The CMU Pronouncing Dictionary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。
- 状态:比音素更细致的语音单位。通常一个音素由3个状态构成。
语音识别是怎么工作的呢?实际上一点都不神秘,无非是:
第一步,把帧识别成状态(难点)。
第二步,把状态组合成音素。
第三步,把音素组合成单词。
如下图所示:
图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。
那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态,这叫做“最大似然”。比如下面的示意图,这帧对应S3状态的概率最大,因此就让这帧属于S3状态。
那这些用到的概率从哪里读取呢?有个叫“声学模型”的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。声学模型是使用巨大数量的语音数据训练出来的,训练的方法比较繁琐,这里不讲。
但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号,相邻两帧间的状态号基本都不相同。假设语音有1000帧,每帧对应1个状态,每3个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。
解决这个问题的常用方法就是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实际上很简单,无非是:
第一步,构建一个状态网络。
第二步,从状态网络中寻找与声音最匹配的路径。
这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了“今天晴天”和“今天下雨”两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。
具体是这样的,首先构造单词级网络,然后展开成音素网络,然后展开成状态网络。然后在状态网络中搜索一条最佳路径,这条路径和语音之间的概率(称之为累积概率)最大。搜索的算法是一种动态规划剪枝的算法,称之为Viterbi算法,用于寻找全局最优路径。感兴趣的同学可以到Wikipedia上搜一下。
这里所说的累积概率,由三部分构成,分别是:
- 观察概率:每帧和每个状态对应的概率
- 转移概率:每个状态转移到自身或转移到下个状态的概率
- 语言概率:根据语言统计规律得到的概率
其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,存储的是任意单词、任意两个单词、任意三个单词(通常也就到三个单词)在大量文本中的出现机率。
这样基本上语音识别过程就完成了。
以上介绍的是传统的基于HMM的语音识别。以上的文字不追求严谨,只是想让大家容易理解。
如果感兴趣,想进一步了解,HTK Book是非常好的入门书,这本书实际上是剑桥大学发布的著名开源工具包HTK Speech Recognition Toolkit 的说明书,近400页,厚厚的一本。如果有时间、有兴趣,可以照着书中的第二章在电脑上做一遍,你将搭建出一个简单但基本完整的语音识别系统,能识别简单的英语数字串。
相关推荐
人工智能语音识别技术在铁路系统中的应用是一个先进技术与行业需求相结合的范例。在这个过程中,涉及到了人工智能、数据分析、云计算等多项技术。本文从人工智能语音识别技术的基本概念、铁路系统中的具体应用、技术...
语音识别技术,也被称为自动语音识别,目标是以电脑自动将人类的语音内容转换为相 应的文字和文字转换为语音,可以使用使用 pyttsx,SAPI ,SpeechLib ,PocketSphinx 实现文本转换语音,内含有视频讲解,想要深入这...
### 语音识别技术及应用 #### 一、引言 语音识别技术作为信息技术领域的重要组成部分,在过去几十年里经历了显著的进步和发展。随着人工智能技术的不断成熟,语音识别技术不仅成为了人机交互的关键技术之一,也在...
### 语音识别技术概述 语音识别技术是一种能够让机器理解并响应人类语言的技术,它通过复杂的算法和模型将声音信号转化为可读的文本或指令。这项技术的发展已经经历了长期的研究和改进,并逐渐从实验室阶段步入了...
### 语音识别技术详解 #### 技术概览与应用 语音识别技术,作为人工智能领域的重要分支,近年来得到了迅猛的发展。这项技术的核心在于理解和转换人类的语音为可处理的文本或命令,从而实现人机交互的高效性。其...
【基于语音识别技术的音乐播放器设计】 在现代科技飞速发展的时代,语音识别技术已经逐渐渗透到我们日常生活的各个领域。音乐播放器作为人们休闲娱乐的重要工具,结合语音识别技术,可以提供更加便捷、人性化的操作...
"语音识别技术原理全面解析" 语音识别技术是计算机信息处理技术中的关键技术,语音技术的应用已经成为一个具有竞争性的新兴高技术产业。语音识别技术的基本原理是将未知语音经过话筒变换成电信号后加在识别系统的...
语音识别技术作为人工智能领域的一个重要分支,已经经历了长期的发展和变革。它的核心目标是将人类的语音信号转换成对应的文本信息。本篇内容将对语音识别技术的历史发展、关键技术、以及未来趋势进行梳理和分析。 ...
《语音识别技术白皮书-12发布_V1.0.2》是针对自主开发的语音识别系统(ASR:Automatic Speech Recognition)的一份详细技术文档。这份文档旨在揭示该系统的特性和功能,为相关领域的开发人员、算法工程师、产品经理...
语音识别技术概述 语音识别是指机器对人类说话的语句或命令进行识别和理解并做出相应的反应。语音识别技术已经有了较大的发展,近 50 年的研究发展具有深远的研究价值。本文阐述语音识别的发展历史、基本原理,分析...
【基于Matlab的语音识别技术】是利用Matlab这一开发语言来实现的一种人工智能应用。语音识别技术的核心目标是将人类的语音信号转化为可理解的文字或指令,涉及信号处理、模式识别和人工智能等多个技术领域。随着科技...
随着人工智能技术的飞速发展,语音识别技术作为其重要的分支之一,已经逐渐成为人们日常生活中不可或缺的一部分。从最初的简单数字识别到现如今复杂的连续语音处理,语音识别技术经过了数十年的发展历程,取得了巨大...
手机语音识别技术是近年来随着移动通信和人工智能技术的发展而逐渐兴起的一种关键技术,它使得用户可以通过语音指令与手机进行交互,极大地提升了人机交互的便利性和效率。本文将深入探讨这一领域的核心技术和实施...
### 语音识别技术详解及其应用前景 #### 一、引言 随着信息技术的快速发展,语音识别技术作为一种重要的交互方式,正逐渐成为人机接口的关键技术之一。本文旨在深入探讨语音识别技术的基础原理、关键技术及应用...
人工智能语音识别技术是现代信息技术领域中的一个重要分支,它结合了计算机科学、信号处理、模式识别、语言学等多个学科的知识,致力于实现对人类自然语言的自动理解和解析。这项技术的广泛应用,如智能助手、智能...
**人工智能语音识别技术** 语音识别技术是人工智能领域的重要组成部分,其目标是使计算机或智能设备能够理解和执行人类的口头指令,实现人机自然交互。这项技术的核心在于将语音信号转化为可理解的文本或命令,涉及...
【基于语音识别技术的移动机器人控制系统研发】 语音识别技术,作为一种人工智能的重要组成部分,已经在移动机器人领域发挥着不可或缺的作用。这项技术起源于20世纪50年代,旨在使机械设备理解和响应人类语音。它...
调用微软技术,语音识别不需联网,可以基本识别人说的语句,并且不需要联网,没有调用网络api 二、菜单功能 1、具有开始监听认得说话并实时显示在文本框上 2、具有阅读功能,并且可以调速 3、开发环境为Visual ...
STC11L08XE单片机+LD3320语音识别模块资料包括硬件参考设计+软件驱动源码+语音识别技术论文资料: YS-V0.7电路元件规划图.pdf YS-V0.7语音模块电路图.pdf LD3320并行串行读写辅助说明.pdf LD3320开发手册.pdf LD3320...