0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解语音识别的技术原理

电子森林 来源:YXQ 2019-07-28 10:33 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

简要给大家介绍一下语音怎么变文字的吧。需要说明的是,这篇文章为了易读性而牺牲了严谨性,因此文中的很多表述实际上是不准确的。

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

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

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

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

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

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

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

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

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

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

把帧识别成状态(难点)。

把状态组合成音素。

把音素组合成单词。

如下图所示:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上的文字只是想让大家容易理解,并不追求严谨。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 信号处理
    +关注

    关注

    49

    文章

    1177

    浏览量

    105327
  • 语音识别
    +关注

    关注

    39

    文章

    1831

    浏览量

    116342

原文标题:详解语音识别的技术原理:语音如何变为文字?

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    离线语音识别芯片与在线语音识别芯片,到底该怎么选?—广州唯创电子WTK6900HA/HC语音识别芯片深度解析

    语音识别技术已经渗透到我们生活的方方面面:一句“打开空调”,客厅便开始降温;一声“播放音乐”,厨房音箱便悠扬响起。然而,在开发智能语音产品的关键节点上,很多工程师和产品经理都会面临一个
    的头像 发表于 05-13 09:24 164次阅读
    离线<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片与在线<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片,到底该怎么选?—广州唯创电子WTK6900HA/HC<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片深度解析

    语音识别ic芯片分类工作原理,语音识别芯片分类

    语音识别IC芯片,通俗讲就是能让机器“听懂”人话的专用集成电路。与传统的语音播放芯片不同,语音识别芯片最大优势在于具备
    的头像 发表于 04-24 15:14 257次阅读
    <b class='flag-5'>语音</b><b class='flag-5'>识别</b>ic芯片分类工作原理,<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片分类

    语音识别芯片介绍,语音识别芯片工作原理解析

    在智能交互不断深入的今天,语音识别芯片正成为众多设备实现语音控制与AI对话的关键部件。语音芯片广义上涵盖语音播放、录音及
    的头像 发表于 04-01 16:26 325次阅读

    一文了解语音AI的运作方式

    语音 AI 是对话式 AI 的一个子集,包括可将人类语音转换为文本的自动语音识别 (ASR) 和文本转语音 (TTS)。
    的头像 发表于 02-27 16:10 609次阅读
    一文了<b class='flag-5'>解语音</b>AI的运作方式

    瑞芯微(EASY EAI)RV1126B 语音识别

    1.语音识别简介语音识别技术,也被称为自动语音识别
    的头像 发表于 01-21 10:43 1084次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>语音</b><b class='flag-5'>识别</b>

    语音识别IC分类,语音识别芯片的工作原理

    语音识别芯片,也叫语音识别集成电路,是一种集声音存储、播放、录音及语音识别功能于一体的专用芯片。
    的头像 发表于 01-14 15:22 508次阅读
    <b class='flag-5'>语音</b><b class='flag-5'>识别</b>IC分类,<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片的工作原理

    语音识别芯片有哪些(语音识别芯片AT680系列)

    在人工智能技术飞速发展的今天,语音识别芯片作为人机交互的重要桥梁,正逐渐成为各类智能设备不可或缺的核心部件。与传统的语音芯片不同,语音
    的头像 发表于 11-14 17:11 1633次阅读

    什么是离线语音识别芯片(离线语音识别芯片有哪些优点)

    离线语音识别芯片,是一种集成了语音信号采集、前端处理和本地识别功能的专用集成电路,无须联网也可以进行语音控制。它内设先进的数字信号处理模块及
    的头像 发表于 10-31 15:27 765次阅读

    如何选择合适的语音识别芯片型号

    语音识别芯片(又称语音识别IC)是现代智能设备的核心组件,与传统语音芯片相比,其最大特点是能够主动识别
    的头像 发表于 10-30 16:32 816次阅读

    语音识别系统的技术核心:从声音到文字的智能转换

          语音识别技术,也称为自动语音识别(ASR),其核心目标是将人类语音信号转换为对应的文
    的头像 发表于 09-05 14:04 1073次阅读

    瑞芯微RK3576语音识别算法

    1.语音识别简介语音识别技术,也被称为自动语音识别
    的头像 发表于 08-15 15:13 2547次阅读
    瑞芯微RK3576<b class='flag-5'>语音</b><b class='flag-5'>识别</b>算法

    语音识别---大家怎么看呢?

    语音识别是一门交叉学科。近二十年来,语音识别技术取得显著进步,开始从实验室走向市场。人们预计,未来10年内,
    发表于 08-09 10:54

    从“听得见”到“听得懂”:语音识别芯片的AI进化

    在科技飞速发展的当下,语音识别技术已成为人机交互领域的核心力量。从最初只能简单接收声音信号,到如今能够理解语义并作出准确回应,语音
    的头像 发表于 07-01 16:45 809次阅读
    从“听得见”到“听得懂”:<b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片的AI进化

    语音识别芯片选型有哪些技术参数要注意

    语音识别芯片的使用场景越来越多涉及的范围也越来越广!那么语音芯片的选型就很重要了,选型不对直接影响产品的使用体验,下面小编从不同的维度来给大家介绍语音
    的头像 发表于 06-23 17:31 1140次阅读
    <b class='flag-5'>语音</b><b class='flag-5'>识别</b>芯片选型有哪些<b class='flag-5'>技术</b>参数要注意

    明远智睿SSD2351开发板:语音机器人领域的变革力量

    ,提高语音识别的准确率;同时也可连接高质量的扬声器,确保语音合成后的声音清晰、自然。TF卡接口能够存储大量的语音数据、对话模型以及语音机器人
    发表于 05-28 11:36