AI 语音交互产品一点点入门-2

周更

上次讲到pattern。

我继续说,pattern是用来干嘛的呢?

这时候就要谈到什么解析了。

一段语音输入系统,首先需要转换成文字,但是系统如何知道这些文字想表达的intent 呢。这 时候就要用到pattern了。我们需要把这些文字与pattern定义好的做对比,一旦命中了某个定义的语句,就会解析为该意图。

首先我说一下pattern的结构。pattern由两部分组成,1、定义的词



这两幅图都是我定义的词,这怎么理解呢。就拿第一幅图的第二句话为例子,这句话的意思是不管系统识别到的是[接到]还是[看到]都会解析为[接到],[接到]和[看到]之间的“|”这个符号是或者的意思。所以这句话定义的就是后边所有的词就可以用前边的词所代替。


符号意思: | = 或者         ? = 可以没有     $ = 必须结束,如果后面还有话那这句话就为无效         ^  = 必须从这开始 ,如果前面还有话那这句话就为无效    

那么定义那些词有什么用呢?我用这幅图的open_systemsetting部分为例子,讲一下。

open_systemsetting 是我们定义的intent意思为 打开系统设置。

所以下边的语句是我们根据我们定义的词组合出来的话。一句话中有很多词,一个词又等同于之前定义的很多词,所以看似这部分只有六句,但是用户所说的所有关于打开系统设置的话都能被这句话覆盖到。

比如这句 ^【打开】?【系统设置】【吧】?$ 

如果之前定义的 name = “打开” “synx”= “打开|开启” name = “系统设置” “synx”= “系统设置” name = “吧” “synx”= “啊|吧”

那么这句话的排列组合就很多了。 打开系统设置吧 - 系统设置 - 系统设置吧- 打开系统设置啊 - 打开系统设置 - 开启系统设置啊- 开启系统设置吧- 开启系统设置- 等 。

因为【系统设置】后面没有 ? 所有如果这句话里没有[系统设置]这四个字(而且只能是这四个字,顺序也不能变)将不能命中打开系统设置这个intent。

因为前后有 ^ $这两个符号,所以如果用户说“请帮我打开系统设置”“打开系统设置吧快点”将不能识别。因为我们不允许前后有字,必须从【打开】? 开始,以【吧】?结尾,如果觉得这样不合理,你可以重新加一些定义的词,将所有可能性覆盖到,或者将这两个符号去掉,当然付出的代价可能是误触发。


好了pattern讲完了。


接下来我讲一下这几天我了解到的关于语音相关的专业词汇

1、语音识别(ASR)

自动语音识别技术(Automatic Speech Recognition)是一种将人的语音转换为文本的技术

语音识别是一个交叉学科,声学、语言学、计算机科学等。语音识别系统的性能大致取决于以下4类因素:1. 识别词汇表的大小和语音的复杂性;2. 语音信号的质量;3. 单个说话人还是多说话人;4. 硬件(麦克风数量的不同,识别率肯定是不一样的)

原理,先通过数据的训练,生成模板,然后将输入的语音与模板进行对比。

1、识别率的指标是WER(词错误率,Word Error Rate)和句错误率SER

2、语音唤醒

语音唤醒,有时也称为关键词检测(Keyword spotting),也就是在连续不断的语音中将目标关键词检测出来,一般目标关键词的个数比较少(1~2个居多,特殊情况也可以扩展到更多的几个)

语音识别语音唤醒的区别:

语音识别对于语音要求具有明确的开始和结尾。比如语音打字,按下录音键说话,松开录音键转换为文字。语音唤醒是在连续不断的语音流里检测是否有关键信息。二者可以结合,这就是小爱音箱。

1)唤醒率2)唤醒的音节长度 (长了太多,短了容易误唤醒)3)误唤醒率4)响应时间

二、自然语言处理

NLP 定义:将人的语言转化为机器能理解、可以结构化、完整的语音表示。

大概意思就是计算机理解和生成人类语言即NLU和NLG。

“买张周三晚大的电影票”吧这个句话所属的domain,及其intent还有包含的slot找到。

从这张图可以看出NLP包含NLP还有理解之前的处理阶段和理解之后的应用阶段。

1)左边最底部,是最基础的大数据、机器学习和语言学(Linguistics);

2)往上看,是知识图谱(Knowledge Graph),其中包含了实体图谱、注意力图谱和意图图谱。

3)再往上,左侧是语言理解(Language Understanding),右侧是语言生成(Language Generation)——

语言理解,包含了Query理解、文本理解、情感分析(Sentiment Analysis)等,还有词法(Lexical)、句法(Syntax)和语义(Semantic)等不同层次的分析。

语言生成,包含了写作、阅读理解等等。

4)最上方,是系统层面,包含了问答系统、机器翻译和对话系统。

5)最右侧,是各种应用场景,包含搜索、feeds流、O2O、广告等等。

这里面有两个特别难理解的词,知识图谱和query,我先简单讲一下。后面如果有时间我会专门写一篇文章讲一下什么是知识图谱和query。

知识图谱就是认知心理学中的语义网络。我举个例子,我说苹果大家会想到一堆东西,美国、乔布斯、水果、iphone、甜的、好吃等等,如果将所有与之相关的词穷举出来然后分别和苹果进行连线,就得到了一个以苹果为中心的图,然后分别以这些词为中心穷举出与各自相关的词并连线,然后以此类推,就可能将世界上所有的词都囊括到一张庞大的图上。这张图肯定错中复杂,交叉纵横就形成了一张巨大的网络。随便触发某个节点就能触发与之相关的任何信息。

query是啥?很简单,你想百度一个东西,你输入的文字就是query。

在你百度的时候输入了query你很可能找不到你想要的。这是为啥?

1、不同的用户对同一种诉求的表达往往是有差别的,往往会存在一种比较常见的现象,用户输入的query并不能清晰准确的表达需求。

2、搜索系统对用户query的理解能力较弱,无法挖掘出用户的真实需求。

3、召回结果集的排序不合理,可能用户需求的内容被排在后面而未曝光。

想解决这些问题就需要通过用户输入的query来获取用户的真实需求。那么如何做?

1、词表穷举法(很容易命中,但是需要人工繁琐的连接) 2、规则解析法 北京到上海今天的机票价格,可以转换为[地点]到[地点][日期][汽车票/机票/火车票]价格。但规则的制定需要人工  3、机器学习方法 机器学习的方法的实现较为复杂,主要是数据获取和更新较困难,数据的标注也需要较准确才能训练出较好地模型。

query的改写:query纠错,query扩展,query删除,query转换

三、语音合成

语音合成(Text-To-Speech),一般简称TTS。我在公司很大一块儿就是设计TTS话术


四、对话管理 DM

1、用户任务完成率

2、对话交互效率

3、对话分类

你可能感兴趣的:(AI 语音交互产品一点点入门-2)