在很多科幻电影里,主人公都会有一个机器人助手。比方说超级英雄钢铁侠吧,除了那身钢铁铠甲之外,机器人管家贾维斯也是必不可少的助手。贾维斯有独立思考的能力,能够帮助主人处理各种事务,维护反应炉的运作,甚至帮助钢铁侠升级铠甲。 就算我们得不到钢铁侠的铠甲,如果每人能有一个贾维斯,不是也很快乐吗?现在,很多手机里都有了语音助手,比如苹果手机里头的Siri,它也能回答一些问题,跟我们聊聊天。那么,Siri跟贾维斯还差多远呢? 今天,我们请来了《编程思维课》的秦曾昌老师,请他来讲讲Siri背后的奥秘吧。 你好,欢迎来到秦曾昌老师的编程思维课。 你在生活中肯定用过手机或者是智能音箱上的语音助手吧?你只要跟手机或者音箱说一段话,它就会按你说的搜索东西、播放音乐或者回答问题。 比如你只要跟苹果手机上的Siri说:帮我打开少年得到APP,它就会帮你打开软件。你还可以直接问它图灵测试是什么意思?它就会从网上找一大堆和图灵测试有关的知识。 你甚至还可以跟它说给我讲个笑话吧,Siri马上会找个笑话讲给你听,虽然可能没那么好笑。那你有没有好奇过,语音软件是怎么做到这些的呢? 这事,咱们得分成两个部分来说,第一个部分是,计算机是怎么听懂我们说的话的?第二部分是,计算机是怎么根据我们说的话作出反应的。 咱们先从第一部分说起,计算机是怎么听懂我们说的话的。 在之前讲计算机是怎么分辨颜色的时候,我给你说过,计算机没有眼睛和大脑,是没法看见颜色的。它其实是把图片上每个像素点的颜色转换成数字,然后对着这一堆数字进行操作。 同样的,计算机在听声音的时候,也是没法直接听懂我们在说什么,也要把我们的声音信号转化成数字信号。这一步用的也是编程思维里的问题转换思想,我就不重复给你说了。 但接下来就不太一样了。图像信息比较明确,红就是红、蓝就是蓝,不会有什么歧义。 但声音信息呢?就复杂多了。 首先,很多人说话都会带着当地方言的口音,同样的词读起来声调可能就不一样。另外,还有一些字是多音字,特别容易读错。所以,想把声音信号还原成正确的文字可不是一件容易的事情。 那计算机要怎么做呢?说出来你可能不信,计算机是靠猜的。当然了,计算机并不是瞎猜,这背后有一种特别重要的思考方式,叫做概率思维。什么意思呢?我给你举个例子你就明白了。 概率分布 比方说,你打开语音助手Siri,说了个词蜜蜂。很快,Siri就会从网上给你找了一堆和小蜜蜂有关的搜索结果。 那你有没有发现,mifeng这个读音,既可以是在花丛里飞来飞去的小蜜蜂,也可以是把东西密封起来装好的那个密封。Siri怎么知道你说的是哪个呢? 这就和概率有关了。科学家把各种各样和语言有关的材料都整理成了一个资料库,交给Siri去学习。咱们日常说的词语、句子、各种各样的书、你发的朋友圈文字等等等等,全都在这个资料库里,这个库有个名字叫做语料库,就是语言资料库的意思。 通过学习语料库,Siri就会知道哪些词语人们用得比较多,哪些词语很少用。比方说在资料库里,mifeng这个读音,90的情况,人们说的是小蜜蜂这种昆虫,只有10的情况,说的是把东西密封起来的意思。 所以,在没有任何提示的情况下,Siri就会猜你说的蜜蜂就是指蜜蜂这种昆虫,这样猜对的概率就比较大。 这种用概率做判断的方法,在生活中特别有用。比方说你和同学约好了要去肯德基吃饭,结果呢,出了门才发现忘记约的是哪一家肯德基了。怎么办呢?这时候,你可以根据你同学的习惯,去他经常去的那一家,在哪里找到你同学的概率最大。 那咱们说回Siri,Siri好歹也是个人工智能,这样硬猜是不是太不靠谱了?有没有什么办法能让Siri猜得更准呢?当然有。 你肯定发现了,一般我们使用Siri这种语音助手的时候,不太可能只说一个词,一般会说一段话,比如你可能会问Siri什么花会招来蜜蜂?被蜜蜂蜇了怎么办? 这种情况就好办多了,Siri就可以根据上下文来判断词语了。这两句话里分别出现了花还有蜇这两个字。通过分析语料库,Siri发现如果出现了花或者是蜇,人们99的可能是在说蜜蜂这种昆虫。你看,通过结合上下文,Siri就能猜得更准了。这种根据上下文语境判断别人说话的意思,咱们在生活中也经常用。 另外,你还记得吧?在前面的课程里我给你说过,为了让计算机能够准确判断出图片上的动物是不是狗狗,科学家会让计算机看好多好多图片,让它学习总结出靠谱的规律。 在教计算机判断词语的时候也一样,科学家会让计算机不断学习人类的说话习惯,让它能猜得越来越准。 这样一来,计算机就算是能听懂咱们说话了。当然了,这个听懂是打引号的,因为计算机并不是真的听懂了你在说啥,而是从各种可能性里,猜了一个可能性最高的答案。 那问题就来了,计算机不能真正听懂我们在说啥,它又是怎么回答我们提的问题的呢?这就是咱们要说的第二个问题了。 我先给你举一个机器人客服的例子吧。你的爸爸妈妈可能会在购物软件上买各种各样的东西,有时候会给商家的客服打电话,你可能也打过类似的电话。 机器人客服 电话那头听起来好像是有个人在和你说话,但其实,现在好多客服电话都是机器人接的,和你聊天的可能压根就不是个人类。 你可能会觉得不能吧?对方还能根据我说的话作出不同的反应,怎么能是机器人呢?别着急,你听我接着给你说。 机器人,也就是计算机,它是怎么听懂你的话的,这个咱们前面已经说过了。那它又是怎么根据你说的话作出判断的呢? 原理也非常简单。除了前面说的语料库,计算机还有一个用来装各种各样回答的答案库,你可以简单理解成一个答案百宝箱吧,里面装着各种各样问题的回答。 计算机会根据你说到的关键词,挑选对应的回答。比方说,你要是问客服快递多久能到呀? 这时候,机器人会提取出你说的关键词快递多久,只要出现这两个词,它就会从答案百宝箱里找到和寄快递时间有关的回答,比如全国绝大部分地方12天就能收到,偏远一些的地方呢,时间长一些,要35天。 如果你问客服现在有没有活动呀?客服机器人又会提取出关键词现在活动,然后去答案百宝箱里找对应的回答,把正在进行的优惠活动讲给你听。 你发现没有,这个过程有点像对对联。你可能知道,对对联是有常用套路的,比如别人说了天,你得对地,别人说大陆,你要对长空。 而客服机器人在回答问题的时候也是一样。它会根据上联,也就是你说的关键词,去答案库里找到下联,也就是对应的回答。 这种回答问题的方法不能说是百分之百准确,但是足够应付绝大多数情况了。如果是机器人实在解决不了的问题,它可以再转交给人工来解决。 通过这个方法,客服人员的工作效率就大大提高了,大部分的问题,机器人都替他们解决了。这样一来,本来只能帮助100个人的客服,现在可以帮助1000个人解答问题了。 当然了,除了让计算机从答案百宝箱里挑选答案回答,科学家也在想办法让计算机拥有创造性,能够针对不同的问题创造出自己的答案,但这件事可比对对子回答问题要难太多了,真正应用到生活中可能还要很长一段时间。 你可以想想,自己在哪里碰到过机器人,把它们的聪明之处和犯的错误写在留言区里,跟大家分享一下吧! 诶,听秦老师讲完,我明白了,Siri能回答问题,那全是靠猜的,其实它什么都听不懂,比起钢铁侠的贾维斯还差得远。 不过,秦老师讲的概率思维还挺有意思,能让Siri伪装出来一副很聪明的样子。 听得懂个毛线你以为是机器人啊用了人工智能在用上AI大数据就可以和人类互动了我去我勒个去〔捂脸〕〔捂脸〕〔捂脸〕〔捂脸〕