当前位置:首页 > 消费电子 > 音频技术
[导读]   简要给大家介绍一下语音怎么变文字的吧。希望这个介绍能让所有同学看懂。   首先,我们知道声音实际上是一种波。常见的 mp3、wmv 等格式都是压缩格式,必须转成非压缩的纯波形文件来处

  简要给大家介绍一下语音怎么变文字的吧。希望这个介绍能让所有同学看懂。

  首先,我们知道声音实际上是一种波。常见的 mp3、wmv 等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如 Windows PCM 文件,也就是俗称的 wav 文件。wav 文件里存储的除了一个文件头以外,就是声音波形的一个个点了。下图是一个波形的示例。

  

  在开始语音识别之前,有时需要把首尾端的静音切除,降低对后续步骤造成的干扰。这个静音切除的操作一般称为 VAD,需要用到信号处理的一些技术。

  要对声音进行分析,需要对声音分帧,也就是把声音切开成一小段一小段,每小段称为一帧。分帧操作一般不是简单的切开,而是使用移动窗函数来实现,这里不详述。帧与帧之间一般是有交叠的,就像下图这样:

  

  图中,每帧的长度为 25 毫秒,每两帧之间有 25-10=15 毫秒的交叠。我们称为以帧长 25 ms、帧移 10 ms 分帧。图中,每帧的长度为 25 毫秒,每两帧之间有 25-10=15 毫秒的交叠。我们称为以帧长 25 ms、帧移 10 ms 分帧。

  分帧后,语音就变成了很多小段。但波形在时域上几乎没有描述能力,因此必须将波形作变换。常见的一种变换方法是提取 MFCC 特征,根据人耳的生理特性,把每一帧波形变成一个多维向量,可以简单地理解为这个向量包含了这帧语音的内容信息。这个过程叫做声学特征提取。实际应用中,这一步有很多细节,声学特征也不止有 MFCC 这一种,具体这里不讲。

  至此,声音就成了一个 12 行(假设声学特征是 12 维)、N 列的一个矩阵,称之为观察序列,这里 N 为总帧数。观察序列如下图所示,图中,每一帧都用一个 12 维的向量表示,色块的颜色深浅表示向量值的大小。

  

  接下来就要介绍怎样把这个矩阵变成文本了。首先要介绍两个概念:

  1.音素:单词的发音由音素构成。对英语,一种常用的音素集是卡内基梅隆大学的一套由 39 个音素构成的音素集,参见 The CMU Pronouncing DicTIonary。汉语一般直接用全部声母和韵母作为音素集,另外汉语识别还分有调无调,不详述。

  2.状态:这里理解成比音素更细致的语音单位就行啦。通常把一个音素划分成 3 个状态。

  语音识别是怎么工作的呢?实际上一点都不神秘,无非是:

  第一步,把帧识别成状态(难点);

  第二步,把状态组合成音素;

  第三步,把音素组合成单词。

  如下图所示:

  

  图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。图中,每个小竖条代表一帧,若干帧语音对应一个状态,每三个状态组合成一个音素,若干个音素组合成一个单词。也就是说,只要知道每帧语音对应哪个状态了,语音识别的结果也就出来了。

  那每帧音素对应哪个状态呢?有个容易想到的办法,看某帧对应哪个状态的概率最大,那这帧就属于哪个状态。比如下面的示意图,这帧对应 S3 状态的概率最大,因此就让这帧属于 S3 状态。

  

  那这些用到的概率从哪里读取呢?有个叫「声学模型」的东西,里面存了一大堆参数,通过这些参数,就可以知道帧和状态对应的概率。获取这一大堆参数的方法叫做「训练」,需要使用巨大数量的语音数据,训练的方法比较繁琐,这里不讲。

  但这样做有一个问题:每一帧都会得到一个状态号,最后整个语音就会得到一堆乱七八糟的状态号,相邻两帧间的状态号基本都不相同。假设语音有 1000 帧,每帧对应 1 个状态,每 3 个状态组合成一个音素,那么大概会组合成300个音素,但这段语音其实根本没有这么多音素。如果真这么做,得到的状态号可能根本无法组合成音素。实际上,相邻帧的状态应该大多数都是相同的才合理,因为每帧很短。

  解决这个问题的常用方法就是使用隐马尔可夫模型(Hidden Markov Model,HMM)。这东西听起来好像很高深的样子,实际上用起来很简单:

  第一步,构建一个状态网络。

  第二步,从状态网络中寻找与声音最匹配的路径。

  这样就把结果限制在预先设定的网络中,避免了刚才说到的问题,当然也带来一个局限,比如你设定的网络里只包含了「今天晴天」和「今天下雨」两个句子的状态路径,那么不管说些什么,识别出的结果必然是这两个句子中的一句。

  那如果想识别任意文本呢?把这个网络搭得足够大,包含任意文本的路径就可以了。但这个网络越大,想要达到比较好的识别准确率就越难。所以要根据实际任务的需求,合理选择网络大小和结构。

  搭建状态网络,是由单词级网络展开成音素网络,再展开成状态网络。语音识别过程其实就是在状态网络中搜索一条最佳路径,语音对应这条路径的概率最大,这称之为「解码」。路径搜索的算法是一种动态规划剪枝的算法,称之为 Viterbi 算法,用于寻找全局最优路径。

  

  这里所说的累积概率,由三部分构成,分别是:

  观察概率:每帧和每个状态对应的概率

  转移概率:每个状态转移到自身或转移到下个状态的概率

  语言概率:根据语言统计规律得到的概率

  其中,前两种概率从声学模型中获取,最后一种概率从语言模型中获取。语言模型是使用大量的文本训练出来的,可以利用某门语言本身的统计规律来帮助提升识别正确率。语言模型很重要,如果不使用语言模型,当状态网络较大时,识别出的结果基本是一团乱麻。

  这样基本上语音识别过程就完成了。

  以上介绍的是传统的基于 HMM 的语音识别。事实上,HMM 的内涵绝不是上面所说的「无非是个状态网络」那么简单。以上的文字只是想让大家容易理解,并不追求严谨。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

语音识别技术,也称为自动语音识别(ASR),旨在将人类言语中的词汇内容转换为计算机可读的输入形式,例如按键操作、二进制编码或字符序列。与说话人识别和说话人验证(后者试图识别或验证说话者本身,而非其言语所包含的词汇内容)不...

关键字: 语音识别 Whisper 模型 RV1126B

一个离线语音识别中心,没有网络连接,没有无线路由器。只要一对运行ESPNOW协议的ESP8266。这就是我想要的房间。这些设备既可以通过按开关控制,也可以通过声音控制。像alexa这样的中央集线器可以响应你的命令。这篇文...

关键字: ESP8266 语音识别 传感器 固态继电器

北京2025年2月24日 /美通社/ -- 在近日揭晓的STIF第五届国际科创节暨2024新质生产力领航者峰会奖项评选中,安联世合中国凭借其卓越的创新实践与行业领导力,荣膺&...

关键字: 人工智能 语音识别 大数据 智能语音

随着人口老龄化程度加深,社会养老负担加重,处理好全社会的养老问题十分重要。在全球范围内,老人身体健康受到许多致命疾病的威胁。而独居老人生活中缺少家人照顾,心理上缺少慰藉,导致患病率更高,同时发生意外也无法及时得到救助。面...

关键字: 独居老人 语音识别 姿态检测 智能家居

随着人工智能技术的快速发展,智能音箱已经成为我们日常生活中不可或缺的一部分。它们通过语音识别技术,实现了人机交互的便捷性,使得用户可以通过语音指令控制家居设备、查询信息、播放音乐等。然而,语音识别技术的准确性和实时性仍然...

关键字: 智能音箱 语音识别

“Ok 谷歌做我的家庭作业”——如果这个命令有效,我们的童年将会很简单,不是吗?但是有些事情是要我们自己来做的,当然,我们不会设计一些东西来帮你完成作业。然而,我们都承认用语音指令做事很有趣!!这就是为什么我们已经建立了...

关键字: 语音识别 树莓派 自动化 Arduino

语音识别技术是一种人工智能领域的技术,它能够将人类的声音信号转化为文字。语音识别系统主要包括三个主要部分:预处理、特征提取和模式匹配。

关键字: 语音 语音识别

随着人工智能技术的快速发展,语音识别作为其中的一项重要技术,正逐渐在各个领域展现出巨大的潜力和应用前景。语音识别技术能够将人类的语音信息转换为文本,为智能家居、智能助手等领域带来了智能化、便捷化的体验。

关键字: 人工智能 语音 语音识别

在现代机器人技术的发展中,语音AI芯片是实现高级人机交互的关键组件之一。这种芯片不仅使机器人能够接收和解析语音指令,而且能够使机器人理解和响应人类语言的复杂性,这在提高机器人的功能性和互动性方面起着至关重要的作用。

关键字: 端侧AI 语音识别 启英泰伦 松山湖论坛 CI135X

本文中,小编将对语音识别技术予以介绍,如果你想对语音识别技术的详细情况有所认识,或者想要增进对它的了解程度,不妨请看以下内容哦。

关键字: 语音识别 语音识别技术
关闭