2010-07-26 23:18:00 deepken 阅读数 718
  • 易语言入门精品课程

    中文编程.易语言入门精品课程.讲师结合十几年的易语言学习经验.站在纯新手角度详细带你进入中文编程易语言的世界.本教程采用循序渐进原则构造.结合大量实战例子.相比于传统教程.学习本教程.更能增加编程逻辑.

    154 人正在学习 去看看 马龙

在实验室待了一段时间了,在实验室的报告及小组会议中,深刻的体会到了HMM算法 ,SVM等的重要性.

 这几天翻译了一篇使用隐马尔科夫模型(HMM)进行语音识别的论文的部分. 

这篇论文是通过google的学术搜索搜到的,通过在互联网上的查找,发现这篇论文引用率很高。(排在google的第一位),并且没发现对其的汉语翻译。或许这篇是对该文的第一篇汉语翻译。原文一共有25页,由于时间的原因,只翻译其中部分内容。并对翻译较多的部分贴上原文对照。


使用隐马尔科夫进行语音识别
作者:B.H.Juang,L.R.Rabiner
语言语音研究所,Bell实验室
Murray Hill,NJ 07974

摘要:
       在近几年发表的论文和大型语言语音会议上中,隐马尔科夫定律已经成为语音识别研究的主导方法。这个方法之所以如此流行就在于其固有的统计框架:从有限语音训练集数据中训练出模型近似参数的简单易行;模型可根据特殊的词汇、声音等改变认知系统的大小、种类或模型的架构的灵活多变;实现整个认知系统的简单方便。在这篇解释性的文章中,我们将讲解应用在语音识别中的非常重要的统计方法,并讨论一系列尚未解决的原理性的和实际性的问题,因为他们很重要并对不同系统实现的性能有很大影响。
关键词:
       Baum-Welch算法,Incomplete data problem ,Maximum a posteriori decoding;极大似然度
 
       机器语音识别已经达到了可以投入到实际使用的水平了。大量的语音识别系统已经应用在众多应用领域如语音拨号、语音应答、语音查询股价、语音报价等。导致这些有用的技术能够应用于实际是因为最近技术的进步使得语音认知系统能辨别不同的说话者并达到了一定量的认知词汇。其中的一项进步就是统计方法的使用,马尔科夫模型就是其中一个很有趣的方法。
       使用HMM来进行语音识别在过去的一段时间内很流行。虽然报告过的大量基于HMM的语音认知系统不易在此深入地讨论,列出其中最重要的部分和这些系统的成功之处仍然是值得的。其中包括在卡内基梅隆大学早期进行的Dragon System的工作,IBM公司在语音系统方面进行的长期的工作,在Bell实验室的工作,MIT林肯实验室的工作,Philips在使用HMM进行的整词识别的工作,DARPA资源管理任务,及其它在该相关领域的众多的工作。HMM的广泛流行可以归功于它简单的算法结构和它相对于其它语音识别方法的清晰高效性。
       性能,特别是精度,是评价一个语音认知系统实际价值的关键因素。语音识别任务经常根据它的需求,如是处理特定的还是非特定说话者,处理单个词汇的输入还是连续的一个句子的输入,来进行分类。如今,该技术能够轻松达到对非特定说话者的精确识别,当识别由非特定说话者说出的连续数字字串时,错误率仅有2-3%.更进一步,但在非特定说话者以特定的语法限制说出连续1000个词时,一些使用HMM的系统证实可以达到96%的识准率。这些结果说明了自动语音识别系统在指定的应用中的有用性和可用性。
       虽然隐马尔科夫模型显著地改善了当前语音识别系统的性能。完全流利的、非特定说话者的语音识别仍是一个普遍存在并等待着解决的问题。例如,没有一个系统能够识别没有限制(话题)的对话语音,也没有一个好的方法使用借助于有限语料库的统计方法去推断语言的结构。这篇解释性的文章的目的是提供HMM的原理的一个概述,讨论统计方法的作用,并指出一系列值得注意和理解的原理性和实践性问题,以便于推动语音识别这一领域的发展。
 
1.语音的度量和建模
语音是不稳定的信号量。当我们说话时,我们的发音器官(嘴唇、下颚、舌头,如图1所示)调节空气压力并影响气流产生一系列的声音。虽然任何一个声音的范围会是在几千赫兹的范围内,我们的关节配置(声道形状,舌头移动等)经常不能忍受每秒超过10次的动态变化。语音建模包括两个方面:(1)以10毫秒采样分析不同声音的短时间的范围属性,(2)根据关节配置的不同,以100毫秒采样去分析长时间声音的变化特征。
 
2.隐马尔科夫模型统计方法
       在HMM方法发展的过程中,如下问题显得特别有意思。首先,给出一个观察序列O和一个模型λ,我们怎么样有效的度量模型λ产生观察序列O的概率,即Pr(O|λ)?第二,给出观察序列O,反过来我们怎么解决估算模型λ中的参数?虽然(8)中的概率不完全依赖于q,(译者注:(8)是在论文前出现的一个公式),关于导致观察序列O的最可能的状态序列q的信息在很多的应用中都是需要的。第三个问题就是怎么有效地从观察序列O中推出最有可能的状态序列q.通常我们将这三个问题称为(1)评估问题(2)估计问题(3)解释问题。
在下面的段落中,我们将描述几个对这三个问题通用的解决方法。
2.1 评估问题
       在评估问题中主要关注的是计算的效率。如果没有复杂度约束,可以直接简单的直接计算出Pr(O|λ).在公式(8)中,一共有个可能的q序列。总共的计算需要2*T*个操作。计算公式(8)同时没有指数级增长的计算量,是HMM技术实现的第一个挑战。
幸运的是,使用著名的前向-后向算法,这个昂贵的计算开销可以轻松的减轻。
 
2.2 估计问题
       给出一个观察序列(或一个序列的集合)O.估计问题包括找到合适的模型参数使模型最可能产生给定的序列。在语音识别中,这经常被称为“训练”。我们用来获取模型参数的给定序列,被成为训练序列,即使这儿的准则是统计的。
 
2.3 解释问题
       正如前面所说的,我们经常对找到产生观察序列O极大似然度的状态序列感兴趣。
虽然HMM的概率度量定义中没有涉及到状态序列,在很多的应用场合中仍然需要知道极大似然度的状态序列。举个例来说,如果我们使用一个词汇模型的状态来代表该词汇中的特定的声音,就有必要知道语音片段和词的声音之间的关系,因为单独的语音片段为语音识别提供了有用信息。
 
2.4 使用HMM进行语音识别
       HMM在语音识别中的应用和其他传统的模式匹配方法差不多。成功的使用HMM算法包括一下步骤:
1.定义一个用来建模的L声音类的集合。例如音素或词汇,定义声音类V={v1,v2,..,v3};
2. 对于每一个类,积累一定量的已知的标记语音集合。
3.在训练集合的基础上,解决估计问题,为每个类Vi获取一个最好的模型λi.
4. 在认识的过程中,对每个未知观察序列O估计Pr(O|λi)(i=1,2,…,L)),并为每个类Vi确定产生O的语音.其满足:
Pr(O|λi) =  Pr(O|λi)
本文将不详细地描述如何实现一个HMM识别器。感兴趣的读者可以阅读Jelinek,Bahl,Mercer(1975)及Levinson,Rabiner,Sondhi(1983)的文章。
 
 
3.使用隐马尔科夫模型进行语音识别的优点
       HMM方法的优点体现在两个大的方面:(1)它的数学框架和(2)它的实现结构。在数学框架方面,我们讨论问题的连续统计方法学和它为相关问题提供的直接的解决方案。
在实现结构方面,我们讨论它在处理不同的、复杂的语音认知任务的灵活性和实现的简单性,这些都是在实际工程领域中需要考虑的关键问题。
3.1          HMM方法学的连续统计框架
3.2          HMM的训练算法
3.3          模型灵活性
 
4.进一步考虑隐马尔科夫定理的问题
5.总结
       在这篇文章中,我们复习了HMM的统计学方法,展示了这个方法的统计学框架及由其带来的灵活性和通用性,特别是在语音识别方面,以及其实现的简单性,使其在工程实现方面显出优势。我们还指出了在一般的HMM方法中值得注意的方面,希望有人能在这些方面取得进步,这些进步将会大大提高性能。这些领域包括建模标准,特别是最小分类错误,将新的特征和之前的语言学知识的融合,对状态的建模和其在语音识别领域中的应用。根据我们现在的理解,HMM系统识别非特定说话者在一定量词汇量的语音识别率已经高达95%。随着技术的发展,不难预料到基于HMM模型的语音识别系统将能应用到我们的日常生活中去。

 

2018-03-07 20:40:00 weixin_34362875 阅读数 46
  • 易语言入门精品课程

    中文编程.易语言入门精品课程.讲师结合十几年的易语言学习经验.站在纯新手角度详细带你进入中文编程易语言的世界.本教程采用循序渐进原则构造.结合大量实战例子.相比于传统教程.学习本教程.更能增加编程逻辑.

    154 人正在学习 去看看 马龙

近期想做个东西把大段对话转成文字。用语音输入法太慢,所以想到看有没有现成的API,网上一搜,基本就是百度和讯飞。

这里先看百度的

笔者使用的是Java版本号的

下载地址:http://bos.nj.bpc.baidu.com/v1/audio/Baidu_Voice_RestApi_SampleCode.zip

解压之后里面有个51.2KB的PCM格式的音频文件,笔者尝试用各种播放器发现非常少有能打开的。最后找到一种方法分享一下。

一、播放例子音频

下载安装Adobe Audition 3.0当然你也能够用更高的版本号

打开Adobe Audition,然后将test.pcm直接拖进来,这是后会弹出窗体,依照以下这个格式选

然后点击播放。你会听到“百度语音提供技术支持”。

波形图是这种

二、以下我们来看程序的执行结果

首先,你须要创建一个应用,找到应用的API Key和Secret Key,在程序里改成你自己的,然后设置里面的cuid,cuid好像能够随意填,不知道怎么填的就改成你的网卡MAC地址。

以下是执行结果

"D:\Program Files\Java\jdk1.8.0_77\bin\java" -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:52675,suspend=y,server=n -Dfile.encoding=UTF-8 -classpath "D:\Program Files\Java\jdk1.8.0_77\jre\lib\charsets.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\deploy.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\access-bridge-64.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\cldrdata.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\dnsns.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jaccess.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\jfxrt.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\localedata.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\nashorn.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunec.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunjce_provider.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunmscapi.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\sunpkcs11.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\ext\zipfs.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\javaws.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jce.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jfr.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jfxswt.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\jsse.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\management-agent.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\plugin.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\resources.jar;D:\Program Files\Java\jdk1.8.0_77\jre\lib\rt.jar;D:\IdeaProjects\Helloworld\out\production\Helloworld;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 2016.2\lib\idea_rt.jar" com.baidu.speech.serviceapi.Sample
Connected to the target VM, address: '127.0.0.1:52675', transport: 'socket'
{
    "access_token": "24.34cfbc06516a339bca203a7d250d2d19.2592000.1474034743.282335-8506303",
    "refresh_token": "25.69215650d359739773609458e2d5ed6a.315360000.1786802743.282335-8506303",
    "scope": "public audio_voice_assistant_get audio_tts_post wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian wangrantest_test wangrantest_test1 vis-faceverify_faceverify bnstest_test1 vis-ocr_ocr",
    "session_key": "9mzdCPAwAJZlQyjkoqSZR4FyJ4v7SKYRS8zy3thuiQfT/K9GAL+fG0zGIm4/kkTagxBIHrJd+qs49Iu59xMKGetYDI1W",
    "session_secret": "2a223032e1579bf5996fb6d4b38f767d",
    "expires_in": 2592000
}
{
    "result": ["百度语音提供技术支持,"],
    "err_msg": "success.",
    "sn": "678411133801471442744",
    "corpus_no": "6319798464275533284",
    "err_no": 0
}
{
Disconnected from the target VM, address: '127.0.0.1:52675', transport: 'socket'
    "result": ["百度语音提供技术支持,"],
    "err_msg": "success.",
    "sn": "37862479621471442745",
    "corpus_no": "6319798471823426386",
    "err_no": 0
}
第一段json返回的是通过appkey拿到的token,后面两段是处理后返回的结果,由于调用了两个方法,所以返回的是两段。

三、音频文件转换

百度语音识别对语音的格式和參数是有要求的。文档看这里:http://yuyin.baidu.com/docs/asr/57

这里就捡重要的说了,格式支持pcm(不压缩)、wav、opus、speex、amr、x-flac。然后採样率深度声道要满足:8k/16k 採样率 16bit 位深的单声道语音。每段要处理的语音不能超过一分钟

格式上。非常多音频软件、播放器能满足要求,可是后面的參数要达到要求就有点难了。

1.少量音频的转换

对于少量音频,我们依旧能够通过Adobe Audition将其转换为符合要求的wav格式。保存或导出,选择ACM波形的wav格式,属性选择8.000kHz 8位 单声道

保存之后就能够用到百度语音识别API上了

2.长对话的转换

假设对话过长,一段一段截取导出会很麻烦。好在有一些工具能够帮我们做这些事情

2.1使用Goldwave自己主动分曲功能

自己主动分曲原理通过搜索静音区将对话或歌曲进行分段。

使用Goldwave打开音频文件,Edit-->Cute Point-->Edit Cute Points,点击Auto Cute(自己主动分曲)

这里有两个值须要注意

Below threshold这个值越大。分曲个数越多。这个是推断静音区的标准,往右调能够将大一点的声音归类到静音

Minimun length这个值确定每段话有最少有多少秒

在最下方的Cue Naming分曲命名中建议选另外一种,方便以后程序做循环处理。

选好须要的值点OK,分曲就分好了。假设不惬意就继续调

分曲完毕后。我们能够点Splite File导出这些分段的音频

导出选同样格式就好了,反正Goldwave里面没有适合百度识别的格式

2.2使用格式工厂批量转换

格式工厂,选音频-->amr-->改动输出配置例如以下,改完记得点确定。

然后批量导出就好了,放到程序里改一下文件名称和文件格式就能识别了。





2018-08-28 16:10:12 zhangbijun1230 阅读数 144
  • 易语言入门精品课程

    中文编程.易语言入门精品课程.讲师结合十几年的易语言学习经验.站在纯新手角度详细带你进入中文编程易语言的世界.本教程采用循序渐进原则构造.结合大量实战例子.相比于传统教程.学习本教程.更能增加编程逻辑.

    154 人正在学习 去看看 马龙

语音如何变成文字?这是一篇你能读懂的技术原理

 

语音识别的技术原理是什么?

 


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

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

图1.png

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

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

图2.png

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

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

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

图3.png

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

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

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

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

  • 第一步,把帧识别成状态(难点);
  • 第二步,把状态组合成音素;
  • 第三步,把音素组合成单词。

如下图所示:

图4.png

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

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

图5.png

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

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

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

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

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

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

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

图6.jpg

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

  • 观察概率:每帧和每个状态对应的概率
  • 转移概率:每个状态转移到自身或转移到下个状态的概率
  • 语言概率:根据语言统计规律得到的概率

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

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

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

2020-03-14 08:42:43 weixin_32759777 阅读数 3747
  • 易语言入门精品课程

    中文编程.易语言入门精品课程.讲师结合十几年的易语言学习经验.站在纯新手角度详细带你进入中文编程易语言的世界.本教程采用循序渐进原则构造.结合大量实战例子.相比于传统教程.学习本教程.更能增加编程逻辑.

    154 人正在学习 去看看 马龙

声音是一种人类的表达方式,也是一种语言,可以使用语言的方式表达出来
任何信息 因为表达的方式的不同,会表现出 理解程度上的难易
所以如果声音转文字,一定是带感情描述的转而不是,直白的转文字
文字转语音也是一样的,要带着全部的信息转换

首先要学一下中文的情感和环境描述 为什么要说中文,因为中文对这方面是由表达丰富性的
每种语言的表达优势决定了使用人群的某些东西或者是理论发展的很好,
中国文字更加的擅长表达情感和环境语气描述,更具有文学性

英文和数字更具有数理表达能力

这一切都可以从世界历史可证

首先学习一下
说话语气描写的词语
温和 热情 亲切 严厉 生硬 肯定 否定 冷淡 安慰 取笑 挖苦 狡辩 分辨 讪笑 嗤笑
训斥 追问 询问 忠告 命令 幽默 夸耀 感激 盘问 大发雷霆 破口大骂 语无伦次
据理力争 反唇相讥 恶语伤人 自吹自擂 出言不逊 豪言壮语 疾言厉色 一一话别
言辞恳切 凯凯而谈 夸夸其谈 谆谆告诫 绝妙句子

基本就是开心,悲伤,严肃,和气

所以最基本的语言识别应该识别出这个人说话的语气
还有这个人说话中所有的代词所指向的真正的事物或人物,事件,那么这些被指向的对象,来自之前的聊天记录,和以往的共同经历,经历一样但不一定是同时同地,

所以要想做好聊天机器人 首先语气要识别出来,其次是将指向对象弄清楚,自根据自己的性格处事方法,回答此事件,性格和处事方法完全可以通过一个人物的描写,加上真实的例子,加以模仿,即根据自己过往的回答或者是书中参考过来的或是生活中看或听到他人回答的 综合的给出说话的语气 和 说话的节奏(音色)这样才能非语无伦次 非上句不接下句的 有感情的 聊天

语音智能 并不是机械的翻译,和无厘头的聊天,而是有逻辑有感情的聊天
为什么现在语音聊天这么二 这是因为所有的解决方案都是来自英文,并没有一个针对中文的方案来处理,外国人说话基本是波澜不惊,可中国人的情感丰富
依赖一个不同语言的解决方案自然是不能 表达其逻辑性和情感的

所以本人猜想一下解决方案
最后时将语音智能变成真正的智能

要达到有感情有逻辑的聊天需要实现两种功能
其中一种功能 是中文逻辑解释器,和python一样一个面向对象的语言自然要解释器
还需要一个可以完成自然的语气判定和识别的生成网络

2019-10-30 20:18:50 sd4567855 阅读数 262
  • 易语言入门精品课程

    中文编程.易语言入门精品课程.讲师结合十几年的易语言学习经验.站在纯新手角度详细带你进入中文编程易语言的世界.本教程采用循序渐进原则构造.结合大量实战例子.相比于传统教程.学习本教程.更能增加编程逻辑.

    154 人正在学习 去看看 马龙

自然语言与编程语言

  1. 自然语言中词汇比编程语言中词汇丰富。
  2. 自然语言是非结构化,编程语言是结构化的。结构化:信息具有明确的结构关系。
  3. 自然语言含有大量歧义。
  4. 容错性。
  5. 易变性。
  6. 简略性。

自然语言处理层次

  1. 语音、图像、文本,其中文本是重中之重。
  2. 词法分析:将文本分割为有意义的词语(中文分词),确定每个词语的类别和浅层的歧义消除(词性标注),识别出专有名词(命名实体识别)。
  3. 信息抽取。
  4. 文本分类、文本聚类。
  5. 句法分析。
  6. 语义分析:确定一个词在语境中的含义,而不是词性(词义消除),标注句子中的谓语和其他成分的关系(语义角色标注),分析句子中词语之间的语义关系(语义依存分析)。

自然语言处理的流派

  1. 基于规则的专家系统
  2. 基于统计的学习方法
  3. 传统方法与深度学习

机器学习

  1. 模型:被学习的算法。
  2. 特征。
  3. 数据集/语料库。
  4. 监督学习。
  5. 无监督学习。
  6. 半监督学习。

语料库

  1. 中文分词语料库
  2. 词性标注语料库
  3. 命名实体识别语料库
  4. 词法分析语料库
  5. 文本分类语料库
没有更多推荐了,返回首页