Transcription
我们都还好吗?>> 哦,拜托。我们可以做得更好。我们如何进行 NDC?>> 耶。就这样。太棒了。很高兴大家都在。非常感谢大家今天来听我的演讲。我们将讨论如何使用 AI 语音来帮助我们玩万智牌。那么,这里有多少万智牌粉丝?有几位。没关系。如果您也不是粉丝,我今天将要讲的大部分内容也可以应用于许多其他概念。所以,如果您不是万智牌粉丝,请不要惊慌。我也会在过程中向您展示一些东西,希望到最后您能对万智牌有一个初步的了解。我们还将讨论 AI 和语音是人工智能的下一个前沿。所以希望这将非常令人兴奋。感谢您的到来。那么,在我们开始之前,我的名字是 Michelle,或者 Mish。大家都叫我 Mish。您几乎可以在所有已知的人类社交媒体平台上找到我,用户名是 Mish Manners。请随时在整个演示过程中拍照。随时发布到推特。我仍然在使用推特标志。我仍然会称之为推特。所以请随时发布这些内容。在 Instagram、LinkedIn 等任何地方标记我。随时分享您喜欢的任何信息。我已经在 Devril 工作了好几年。我以前在 GitHub 工作过。所以我仍然热爱 GitHub。所以这次演讲我也会使用一些 GitHub 代码和 GitHub 仓库。我从澳大利亚远道而来。是的,我就是为了这次演讲来的,而且我真的很喜欢伦敦。所以谢谢你们的邀请。现在,几年前,是的,感觉像是几年前,但实际上只有大约六个月前。所以,六个月前,我加入了 Twilio 的这个很棒的团队,他们绝对是惊人且不可思议的。所以,如果您没听说过 Twilio,Twilio 是一家通信公司。所以,我们提供通信 API,用于与您和您的客户进行各种通信,无论是通过电子邮件、短信、WhatsApp、电子邮件。哦,我说了电子邮件,对吧?还有语音。所以,今天我们将稍微谈谈语音。但今天我们将在这些会议中涵盖什么?所以,首先,我们将谈论自然学习。当我提到自然学习时,我指的是我们人类如何学习和发展。然后我将谈论 AI 的演变。我将进行一些比较,比较我们进化 AI 的方式以及我们迄今为止构建计算机和机器的方式。我将把它与我们人类学习的一些方式进行类比。我将谈论为什么是语音。我们为什么会走上语音这条路?以及为什么我认为它如此重要。我们将看到语音的实际应用。我们将看到现场演示。所以,祈祷它能在这次会议的 Wi-Fi 上正常工作。然后我们将看看一些开发者的实验。所以,为你们所有人准备的一些要点。然后我将给出一些提示,并希望一窥未来,我们不仅在 AI 方面,而且在 AI 语音方面可能的发展方向。所以,首先是人类发展。房间里有孩子吗?有几位。是的。所以,我接下来要告诉你们的很多事情,你们可能已经在与孩子相处的过程中经历过了。所以,我们人类在能够阅读和写作之前就学会了说话。所以,你们中那些还有年幼、非常年幼的孩子,比如婴儿,大约三个月大的时候就开始发出声音,对吧?他们开始从哭泣和尖叫转变为发出像咿呀学语和咯咯声这样的声音,对吧?所以,他们开始这样做了。从大约 10 到 12 个月开始,婴儿开始说出他们的第一个词。他们可能会说“妈妈”或“爸爸”。我想我的第一个词是“月亮”。不知道为什么是月亮,但你知道,那里有一个词。然后大约两到三岁时,孩子们开始连成句子。他们开始进行对话,并能够向您表达他们的想法。到了大约四到五岁,这是我们开始教孩子们如何阅读的时候。一开始我们可能教的是单个词,但他们开始学会阅读单词。到了五到六岁,我们开始教他们写作。通常,我们首先教孩子们写他们的名字或名字。所以,他们开始学会写作。然后从大约 8 到 10 岁开始,这是孩子们真正开始发展成人式对话的时候。所以,大约在 10 岁左右,孩子们开始与您作为成年人进行对话,并能够连成句子,连贯地组织事物,并根据上下文谈论事物。现在,这取决于您是否有天才孩子,或者您自己是否是天才,这可能会略有不同。它也可能因文化、种族和国家而异。但这里的重点是,无论您是否有一个优秀的孩子,我们都是在学会阅读和写作之前就学会了说话和以那种方式交流。现在让我们将其与计算机发展进行对比。那么计算机是如何发展的呢?好的,所以人类学会了说话。所以,我们肯定也是这样对待计算机的,对吧?不,我们没有。早在 1890 年代,我们就使用了计算机语言,我们通过打孔卡与计算机交流。现在,我不确定这里是否有人记得打孔卡,但我记得我妈妈谈论过,你知道,堆叠卡片,然后你把它们送进机器,对吧?所以我们有打孔卡,我敢肯定,打孔卡是专门为美国人口普查发明的。那是在 1980 年代。然后大约在 1960 年代,命令行出现了。这是我们与计算机通信的另一种方式。但通过命令行,我们必须非常非常具体。如果我们弄错了一件事,弄错了一个字符,计算机就不知道该怎么办。与打孔卡类似,但我们现在正在使用,你知道,实际的字母来传达这一点。然后到了 70 年代,图形界面出现了。所以,我们现在有了鼠标。我们可以使用鼠标。这很令人兴奋。我们可以在窗口中处理事物,我们可以在我们可以直观看到的图形框中处理事物。所以,我们开始为我们与计算机交互的方式添加更多元素。然后到了 1990 年代,谁还记得他们的第一部智能手机?我说的不是现在的时代。我指的是,你知道,Palm、PDA、个人助理设备,或者当时它叫什么名字。我当时确实有一个,这是 IBM 的 Simon。所以,在 1990 年代,我们开始有了这种触摸屏手机。在此之前,我有一个,在此之前,你必须翻开手机,拔出天线,只能输入东西。没有触摸。没有,你知道,没有物理界面。但这确实开启了触摸界面的革命。所以现在,我们与机器交流的许多事物和手势都来自触摸手机。那么,您有多少次打开一本书或看一张照片,然后像这样放大照片?我知道有几位您做过。我自己也做过。所以,这些类型的手势和滑动操作,这些开始成为我们与计算机交流的方式,这确实引发了那场革命。然后到了 2000 年代,Siri 出现了。所以 Siri 是苹果设备,苹果技术与所有 iPhone 一起推出。所以现在你可以说,嘿 Siri,帮我做点事。我们可以开始通过语音进行交流。现在,语言和语音,或者计算机语言,计算机的说话方式在 90 年代就出现了,但它并没有真正商业化。这些类型的系统很大程度上留给了研究开发之类的东西,在 1997 年。然而,有人还记得一个叫做 Dragonat speaking 的程序吗?有几个人。我比你们中的一些人年轻一点。所以,Dragon Speaking 是所有富家孩子拥有的程序。我们所有人都必须打出我们的论文,而富家孩子可以使用 Dragon Speaking 与计算机对话,它会转录您的语音。所以,确实有这个,但它并没有真正流行起来。它仍然相当昂贵。所以 Siri 确实是语音开始向大众普及的时候。现在,这是在 2008 年随 iPhone 推出。或者抱歉,iPhone 是在 2008 年推出的,Siri 是在 2011 年随后续 iPhone 推出的。所以,如果我们看看计算机的发展并与人类的发展方式进行比较,这是倒退的。我们走了相反的路。所以,作为人类,我们在能够阅读和写作之前就学会了说话。对于计算机,我们说我们不能这样做。我们只能做相反的事情。所以,我们并没有真正以一种让我们感觉自然、听起来自然的方式与计算机合作和交流。相反,我们让人类适应机器。我认为现在随着人工智能的出现,这种情况正在发生很大变化。所以,人工智能这个词是由艾伦·图灵(Alan Turing)在 1950 年代创造的。他发表了一篇题为《机器与智能》(Computer Machinery and Intelligence)的论文,其中提出了模仿游戏,这就是著名的图片,来自本尼迪克特·康伯巴奇(Benedict Cumberbatch)主演的电影《模仿游戏》,而整个提议都是为了测试机器的智能。所以,这始于 1950 年代,但生成式 AI 并不是从那时真正开始的。所以,生成式 AI 确实有一条稍微不同的道路,生成式 AI 的许多基础始于 1960 年代,当时出现了神经网络。所以,神经网络是一种让研究人员开发这些复杂模型的方式,以便机器能够理解它们正在做什么,并且它们可以训练计算机开始做事。但直到 2000 年代,或者说,抱歉,那是错误的图片。所以,我的错。我马上会修复的。好了。所以,直到 2000 年代,或者说,1990 年代,深度学习才出现。所以,这里是神经网络的层层叠加。这使得人们可以在更大的数据集上训练机器。机器现在能够将它们呈现的数据联系起来。然后到了 2000 年代,这是非常晚的 2000 年代了。所以,ChatGPT 于 2020 年出现。我之前放了一张图片。所以,我把它们弄乱了顺序。但即使 ChatGPT 出现时,它现在看起来是这样的。如果我回到几张图片,那就是 ChatGPT 在 2020 年首次推出时的样子。您只能输入。所以,即使生成式 AI 出现,我们仍然通过文本与之交互,但现在生成式 AI,我们可以通过多种方式与之交互。我们可以通过添加文件、图像、深度研究来添加上下文,但我们可以看到侧面的那个小麦克风按钮。现在,我们可以开始以与人类相同的方式与我们的生成式 AI 进行交流了。所以,这就是对话式 AI 真正随着生成式 AI 起飞的全部想法。所以,我们首先从三个世代来看待语音 AI。所以,第一代是 Siri,相对轻量级。嘿 Siri,天气怎么样?就是这样。嘿 Siri,这是什么?这是非常单一的命令驱动的。没有保留上下文。我们真的不能与 Siri 对话。我们只能问 Siri 一个问题,Siri 可以回答。第二代对话式 AI 随 Alexa 一起出现。它更直观,更智能一些。但我们现在看到的是第三代对话式 AI。这一代由几个方面定义。所以,第一个是自然且毫不费力。所以,当我们与人交谈时,我们不必真正去想,或者我们确实需要考虑我们如何说以及我们说什么,但我们交流的方式感觉很自然。我们不必去查找东西。我们不必去想,“哦,你,这是我正在和谁说话?查找我们上次对话的数据库。”你知道,我们所做的这些事情非常自然。它跨越了主题和时间。所以,我们与人进行的对话,我可以这样说:“嘿 Annie,你知道,我们能去我们上周去过的那个餐馆吗?”“哦,是的,听起来不错。”所以我们可以谈论,我们有那个话题和那个时间,那是我们上周谈论过的。我们可以切换话题说,“哦,那边的宝可梦博物馆怎么样?我们晚点能去那里吗?”哦,是的,听起来不错。我们作为人类可以非常轻松地切换话题。我们现在开始在对话式 AI 中看到这一点了。对话式 AI 真正驱动着,这一代真正由为用户提供信息和帮助来驱动。过去很多对话式 AI 只是关于,“好吧,是的,这是关于天气的信息。”但现在有了对话式 AI,这一代,它更具信息量。好的,Alexa 或 Siri,天气是 4 度。你能推荐我今天应该穿什么,以及我应该去哪里吗?它更具信息量,并且能帮助用户。有很多共享信息。所以,在不同的 AI 和我们实际使用的不同工具之间共享信息。很多使用对话式 AI 的公司都在接入不同的上下文和数据。我们通过像 ChatGPT 这样的东西看到了这一点。你们都作为用户尝试过。社交互动能力。所以,我们现在看到 AI 能够拥有更多这种社交细微之处。它现在能够捕捉到更多我们作为人类会自然捕捉到的东西。所以,它感觉非常自然。它之所以如此强大,也是因为它解放了双手。以前,我们与这些其他 AI 互动的方式,我说的不是 Siri 或 Alexa,我指的是之前的对话。再次,都是打字。您需要双手放在键盘上。您需要清晰地表达您想要什么。如果您有拼写错误,就完了,或者现在,我们看到对话式 AI 能够识别拼写错误,因为您使用的上下文。我们看到 AI 能够做更多的事情。它之所以如此强大的另一个原因是它速度快,对吧?我们现在都开始体验到了,当我们使用像 ChatGPT 这样的东西时。答案很快,信息也更准确。我们可以看到,通过对话式 AI,我们可以将情感等东西融入我们所说的话中。我们可以像与人交流一样进行交流。我们不必担心,“哦,删掉那个,因为我错过了。”哦,这里有错别字。所以,这对于许多实时情况来说都非常好。而且它比典型的 AI 和我们过去与计算机交互的方式更易于访问。那么,有多少人受过伤?有几个人。是的。所以,受伤,对吧?我以前扭伤过手腕。无法打字。生产力直线下降。有了 AI 和对话式 AI,这都不重要。所以,任何类型的可访问性,我说的不仅仅是受伤和行动不便的人,还有孩子。有多少父母?艾米昨天在她的喜剧演讲中提供了一个统计数据,你知道,比如 60% 的父母大部分时间,或者 60 位父母 60% 的时间都有孩子,所以只有一只手是空的。所以,我们可以做更多的多任务处理,做晚饭。你知道,当我们做晚饭时,如果我们是两个人一起做饭,我们通常不会保持沉默。我们通常会与他们交流。所以,它能让你做更多多任务处理的事情。它真的,真的很有力量,对吧?但是,有一个问题。就像所有听起来太好以至于不像真的事情一样。AI 语音真的很难,或者直到现在都相对困难。有很多事情需要考虑,而且比它听起来要难得多。所以,当您与某人交谈时,当您坐在桌子旁,也许在伦敦的高级下午茶时间,我们进行的对话相当混乱。它们并不总是线性的。我们可能会偏离到另一个话题然后回来。服务员可能会打断我们说,“哦,您需要更多茶吗?您需要更多蛋糕吗?”我们可能会有一些填充词,嗯,啊,但是,嗯,我们可能会有一些不同的东西,我们会说,“哦,还记得那时候的故事,对吧?”人类的对话与我们通常与机器互动的方式非常非常不同。我现在确实说过这次演讲是关于万智牌的,所以让我们来看看一些万智牌的场景和情况,即使您没有玩过万智牌,也许像大富翁或 Uno。您有多少次想,“嗯,这种情况会发生什么?我们是否在使用家庭规则?我们是否在使用家庭规则?”如果我问一个关于我应该做什么的问题,是我们在使用哪个规则?我们目前正在使用哪个元游戏?所以,元游戏是当前情境下的玩法。事情清楚吗?我需要打断某人吗?我需要停下来搜索东西吗?玩游戏时可能会非常困难。还有很多歧义,对吧?“我能做某事”和“我应该做某事”之间有区别。所以,我能在万智牌中打出这张牌吗?嗯,是的,你可以打出这张牌。你的法力足够了。现在还是你的回合。这是一张瞬息牌。你可以随时打出它。但你应该打出它吗?这是一个策略问题。我们作为人类,通常可以理解一些上下文,对吧?尤其是在多人游戏中。通常会有很多争论,你就像,“哦,我不想打断这场争论。我可能会被骂死。”或者,你知道,我是新来的玩家,我应该听专家的。对吧?玩游戏时,与人交谈时,有很多事情会发生。所以,现在你可能在想,“嗯,语音听起来真的很好。我们可以做很多事情,而且它非常易于访问,但它听起来真的很难,Mish。我们真的应该费心吗?我们真的应该考虑做语音吗?它重要吗?它有什么好处?我知道你谈到了,你知道,可访问性方面,但也许还有其他方法可以做到这一点,但我们真的应该担心语音,因为它实际上可以解决许多现实世界的问题。有多少人打过求助电话?你们有多少人打过求助电话?你们在电话里,你们在那里大约半个小时,你们在解释你们的情况,然后电话断了,然后有人回电话给你,你必须从头开始。通常,呼叫中心不理解您的情况,您的上下文。你知道,我们很多人都是房间里的开发者,所以我们是相当精通技术的人。当我们遇到问题和麻烦时,我们会自己处理所有事情,对吧?但然后你打电话求助,因为你已经尽力了,他们说,“你试过关掉再打开吗?”就像,“你认为我做的第一件事是什么?”嗯,你看,正如我 10 分钟前告诉你的,我试过关掉再打开。我试过重置我的路由器。我清除了我的 C 盘。我导出了数据。我卸载并重新安装了应用程序。我还能做什么?它说,“你看,我们在这里卡住了。你试过卸载应用程序吗?”我刚才说了。你知道,我们都有这些令人沮丧的经历,对吧?那么,当我们查看公司网站并查找信息时呢?也许是一家保险公司,我们想选择一家,一家新的抵押贷款,我们想看看。很多信息都有些令人困惑。它可能不完全符合我的具体情况。所以,我想打电话。我想和某人谈谈。我想问他们一些建议。他们能给我指个方向吗?你知道,通常我们打电话给公司,通常有两个原因。一,我们已经查看了信息,我们需要一些关于我们具体情况的建议。或者二,我们确切地知道我们想做什么,但网站不允许。比如更改个人信息。我几年前结婚了。你知道在大多数地方更改姓氏有多麻烦吗?哦,不。你不能在网站上这样做。你需要打电话给某人,就像,“嘿,你好,我是 Michelle。把我的信息发给你。”对吧?通常我们确切地知道我们想做什么,但当我们与某人通话,我们在呼叫中心时,要获得这些信息需要花费很长时间。那么,当我们试图同时处理多项任务并做不同的事情时呢?你知道,很多公司,我知道我们生活在 21 世纪,或者我们现在处于哪个世纪,但很多公司仍然不支持在电话上重新安排约会和事情。我必须打电话说,“我那天去不了。还有什么可用的?还有什么可以来的?”你知道,我们必须做这些事情。有多少人飞到 NDC?有几个人飞来了。有人之前乘坐过被取消的航班吗?你在机场,航班被取消了。400、500 人。发生了什么?他们都冲向服务台。哦,我需要修理我的航班。我需要这个。你知道,我需要担心我第二天的活动。哦,我正在转机通过这个国家或那个地方,对吧?现在,想象一下,如果我们能有人解决这个问题。回到我的万智牌例子。我去参加万智牌活动。我真的很喜欢它们,我还可以写关于它们并谈论它们。它们在我的 Instagram 上。所以,我参加了很多预发布活动,这就像在主网站上线前几天。你可以去参加预发布。你得到一副牌。你玩。现在,这真的很有趣,但我刚才说过,万智牌有很多规则和很多机制。当他们发布一套新牌时,会有更多的新规则和新机制。有些机制被淘汰了,有些新的机制被引入了,你就像,“好吧,这是怎么回事?我不确定。”想象一下,如果我能有人真正帮助我。如果我们有一些代理人来帮助处理事情,那不是很好吗?他们可以接续之前的对话。他们理解我们的上下文。他们理解我们的情况。他们可以给我们真实的信息并帮助我们。所以,这就是语音 AI 可以发挥作用的地方。现在,当我们进行语音 AI 时,作为开发者,在构建这些东西时,我们需要考虑一些事情。我们需要考虑的第一件事是语音转文本。所以,目前,我们不能直接与 AI 对话。我们需要将我们所说的内容从语音转换为文本,以便 LLM(大型语言模型)能够解释它,然后将其从它所说的和所想的内容转换为文本,然后将该文本发送回语音,以便我们作为用户能够收到它。所以,在构建语音 AI 时,我们需要考虑一些事情。所以,从工具的角度或用户流程的角度来看,它看起来是这样的,对吧?所以我打了个电话,然后它会转到语音转文本模型来翻译我说的内容。你好,我是 Michelle。我想谈谈房屋贷款,将我说的话翻译成文本。这样大型语言模型就可以解释它。现在,大型语言模型通常可以调用其他工具,或者它们可能可以调用数据。所以,我们正在交互的许多工具和数据,它们可以连接到数据,比如,“哦,它已经知道了,哦,Michelle 和电话号码,很酷,我已经连接到你了,我知道你是谁,你知道,当我们打电话给银行说,哦,Michelle,并通过我的电话号码验证,他们可以这样说,是的,我在这里有你的个人资料,对吧?那是有人在利用数据。所以,现在 LLM 也会这样做,然后我们必须把它们说的话,从文本转换回语音,这样我才能在电话的另一端听到。现在,这种语音转文本和文本转语音可能会变得非常复杂。有很多事情需要考虑。现在,有很多很棒的模型可以为您做到这一点。所以,微软有一些模型。OpenAI 有一些模型。您还可以使用很多开源模型。但作为开发者,您必须自己完成所有这些工作。您必须编程每一个。您必须让它处理所有对话和我们拥有的所有差异。我们稍后会谈到这一点。所以,在 Twilio,我们从开发者和听众那里了解到,他们说,“这相当难做。如果有人能解决这个问题就好了。”所以,Twilio 将其打包成一个名为 Conversation Relay 的产品。Conversation Relay 允许您,或者提供所有这些文本转语音和语音转文本,并允许您接入任何您想要的 AI 模型,也可以是开源的,然后它可以发送回来。所以,这个工具真的非常棒。我们也可以使用 websockets 来做到这一点。所以,Conversation Relay 非常适合做这类事情。现在,我认为 Conversation Relay 与万智牌这样的东西配合得很好,因为它可以为我做很多繁重的工作。所以,当我玩万智牌这样的游戏时,正如我之前所说的,它非常复杂。有很多规则。现在,当我参加这些游戏之夜或预发布之夜时,那里有一个叫 Tom 的家伙。Tom 很棒。他就像一个行走的万智牌大师。你问他关于任何事情的任何问题,即使它只是在那套牌中发布的,而且是在两天前,他都会说,“哦,是的,这是它的工作原理。这就是那个东西的玩法。”你就像,“太棒了。Tom 很棒,但 Tom 只有一个。Tom 每次只能帮助,比如说,我和我的对手。他无法帮助场地里的每个人。”而且 Tom 已经结婚了。我不能把 Tom 带回家,对吧?所以,我想,如果我能构建一个 AI 聊天机器人来帮助我做这件事,那不是很棒吗?现在,我把我的 AI 聊天机器人命名为 Jace,以 Jace Bellerin 的名字命名。所以,这里的万智牌粉丝可能知道我说的是谁,但本质上他是一个“旅法师”。所以,万智牌中,所有像英雄一样的魔法人物都叫做“旅法师”。所以,Jace 相对聪明。他很好奇。他专攻魔法、心灵感应、预知和幻觉。我认为这对于聊天机器人来说非常完美。他还能读心术。现在我的聊天机器人不能读心术,但 Jace 可以。所以,我觉得这也很酷。给你们一点万智牌的背景知识。所以,让我们来看看我们构建的代码,看看它到底在做什么。首先,我将确保我的防火墙已关闭,否则我的许多本地东西将无法工作。我将在屏幕上显示代码。完美。让我们看看这是什么代码。现在,我知道这是用 Python 编写的,所以 .NET 开发者和 C# 开发者不要太害怕。但 Twilio 的好处是,我们在网上有很多代码片段,所以您可以用不同的语言查看东西。现在,我在这里构建的,我构建的,所有这些也都可用。所以,我在最后有一个二维码,您可以去玩代码。您可以分叉它,复制它,自己玩,并构建您自己的东西。好了,让我们看看这里实际发生了什么。所以,我们在顶部导入了我们的库,并加载了我们的环境变量。现在,这是配置我们的万智牌聊天机器人工作的设置。所以,我们的域名,您也可以将域名放在环境变量中。所以,开源代码链接,域名将在环境变量中配置,因为这是更好的方法。但对我来说,因为我不想在屏幕上显示我的环境变量,而且你们都会窃取我的 OpenAI API 密钥,所以我把它留在这个文件中,因为我需要更改这个 URL,这个应用程序。它指向一个本地服务器,对吧?如果您访问那个网站,什么都不会发生。您可以看到的并不是真正敏感的信息。所以,好了。所以,URL 是从域名配置的。所以,它正在从那里拉取。所以,这通常会从环境变量文件中拉取。所以,这就是你们都会在你们那边看到的。我们可以看到我正在使用的模型是 GBT 40 mini。所以,您可以使用任何您喜欢的模型。因为我配置了我的 OpenAI API 环境变量,它已经知道它正在从 OpenAI 获取。所以,然后就是你想用哪个 OpenAI 模型。欢迎问候是一个专门编码的问候语。所以,这是一个硬编码的问候语。您可以添加一些变量,如果您愿意。比如,您可以添加一些内容来说,哦,它检测到了我的电话号码。嘿 Mish,我只是把它硬编码了,现在。所以,这意味着当我们拨打号码时,它会说,“Jace Bellerin 为您服务,您需要什么万智牌知识或指导?”然后我们有了系统提示。所以,构建这个系统提示很有趣。所以我将尝试滚动并让大部分提示显示在屏幕上。所以,这是当我说一个问题时,系统正在查看的内容。它正在查看这个以获取上下文。所以,我告诉它,你知道,你的名字将是 Jace Bellerin,我给了它一些花哨的文字,让它更有趣。我说你是一个乐于助人的助手。这一点也很重要,因为你可以说,比如,你知道,你是一个自恋的助手,或者你是一个会帮助别人但心不甘情愿的助手,所以你应该那样行事。所以,它基本上是在告诉助手如何行事。我还说,这是关于帮助万智牌玩家的。所以,它有一些上下文。这个对话正在被翻译成语音。所以,请谨慎回答。所以,我基本上是在告诉它,这将以文本形式输出。我明白。但我将把它翻译成语音。所以,我想确保文本输出在翻译回语音时听起来不错。所以,我说不要包含项目符号,因为在说项目符号时听起来不好。也不要包含星号或其他符号。因为这是万智牌,我说了,“你知道,让我们包含一些有趣的或特定的参考和术语。”突出你对游戏的了解,因为他们应该非常了解。这个很有趣。我放了“在万智牌中忽略分号”,因为当我尝试时,它说,“你想在万智牌中获得什么万智牌指导或知识?”所以,我有点说,“好吧,我们就忽略那个分号,这就是为什么在提示的另一部分,我也没包含分号。”我还说,一旦你说了一次万智牌,就称它为“魔法”。你不需要一直说“万智牌”,就像我们知道我们在谈论万智牌一样。而且,我又说,“你知道,包含一些花哨的文字让它更有趣,如果你愿意的话。”所以,这是初始化 OpenAI 客户端并获取我的 API 密钥。我们正在存储会话以跟踪对话,这样我就可以回去说,“嘿,你告诉我关于这个东西。那是什么意思?”它也意味着对话的上下文在那里。我们也有从 OpenAI 获取响应。现在,这是有趣的部分。这是我们定义 TwiML 的地方。TwiML 是 Twilio 的标记语言。它告诉 Twilio 事情将如何发生。所以,我们在这里做了什么,这是中间的对话中继部分。所以,当它说对话中继时。所以,我们在这里所做的是,这是返回 TwiML 以便代码连接到 websocket 的端点。所以,我在这里做的是,这是对话中继的一小部分。所以,这就是所有魔法发生的地方。魔法。所以,我们有一个 URL,它正在从顶部拉取。所以,那是那个 Engrock URL,我将要更改它。所以,我现在还没有在本地运行它。我们可以看到我正在使用 11 Labs。所以,我们与许多很酷的提供商合作,11 Labs、Dgram Graham,您可以使用它们来处理所有文本转语音、语音转文本。我们可以看到我有一个语音密钥。所以,这是我想要的语音的 ID。所以,文件里也有一个 URL。我们可以看到,那里是所有 11 Labs 的声音,您可以选择。现在,您也可以花几个小时去听这些声音。有大约 50 页不同的声音。所以,我选择了一个听起来像我认为 Jace 在万智牌中会有的声音。您可以选择不同的声音,听起来非常快乐和兴奋,而且语速很快。或者您可以选择听起来有点忧郁和宁静的声音。所以,那里也有很多不同的声音可供选择。然后我们可以看到我们正在返回我们的对话中继的响应。所以,我们可以看到我们正在接受 websocket 服务器以确保一切正常。然后我们正在通过我们的代码进行处理。所以,我们正在通过我们的代码进行处理,确保这是真正处理所有实时通信的部分。所以,我们有,所以如果消息进来,请确保您确实发送了它,并通过系统提示,解释用户所说的一切信息,对吧?如果没有,就说您正在处理提示,将用户的输入放入对话中。所以,我们将所有这些打印到控制台,这样当我运行时,你们都能看到我实际发生的对话,从文本方面来看。所以,您可以看到这一切都在运行。所以,我们可以看到我们正在获得 AI 的响应。所以,它用我放入系统提示的所有漂亮的描述和知识进行响应,然后我们将答案通过 websocket 发送回去。而且,我们再次确保打印响应。所以,再次,您可以看到所有这些。我添加了一些错误处理。所以,假设如果发生什么事,OpenAI 服务器宕机了,或者我的密钥不起作用,或者我用完了积分,或者其他什么,我又添加了一些万智牌的描述文字,但是,你知道,我们与永恒的连接被中断了。所以,再次,只是提供一些信息,以便另一端的用户会说,“哦,好的。所以,它没有连接到 API,我将不得不再次回拨。”而且,再次打印我们得到的任何错误。好了。所以,如果一切正常,为什么我们不实际运行它并给 Jace 打个电话看看会发生什么。所以,我做的第一件事是向您展示购买 Twilio 号码的完整过程,因为我今天早上刚拿到一个英国监管套餐。所以,我可以购买一个号码。现在,如果你们中的一些人以前从未使用过 Twilio,您可以去注册一个试用账户,我们会给您一个号码来试用。所以,让我们去买个号码。希望所有互联网和其他东西都在工作。一切都很好。太棒了。所以,我将购买一个英国号码。英国。再次。看,我们把所有东西都弄错了。英国。我必须一直输入。不。好了。我们将输入王国,这样我们就能得到我们的英国号码。所以,+44 国家号码。有人告诉我您的手机号码是七。是这样吗?我得到正确的信息了吗?完美。所以,如果我搜索它。所以,基本上我输入七是因为我说,如果我们匹配号码的前一部分,它会给我一个手机号码而不是座机号码。手机号码可能比座机号码贵一点,但手机号码的功能更多。所以我喜欢拿一个。我只是随便选第一个,或者第二个。那个号码看起来不错。所以,我们就买下它。然后我们说,我可以查看号码。是的,我同意您要求我做的所有事情。我们可以说,你知道,它设置为语音和传真,如果有人现在还发传真,但也有短信。所以,我们可以看到所有这些都设置好了。下一步,我们将说,我将成为一名企业,因为,你知道,万智牌是一项业务。然后我们点击它,确保它能通过。糟糕。上面有我的所有信息。耶。有趣。走开。我们将把它从录音中剪掉,对吧?上面有我所有的信息。我将为其分配一个套餐。所以,然后我将去购买它。耶,我成功购买了一个号码。所以,现在我可以几乎立即使用那个号码了。所以,我暂时把它放在那里。这是我的 +4 电话号码。它将在我的活动号码下。我们可以看到它就在那里。完美。现在,我们也可以给它起一个特殊的名字,因为当你开始在这里获得大量号码时,我们可以看到我们有很多号码,我已经给其中一些命名了。它只是让你在滚动浏览你的列表时有更多的理解。我将选择将在这里的号码。您实际上可以看到它的名称。所以,我们将进去并称之为,我们将给它起一个漂亮友好的名字。而不是号码,我们将把它命名为,只是让它变得简短。它将只是 Jace。很简单。好的,保存。完美。现在,让我们运行我们的代码。所以,在这里,我们将运行,确保我们打开它,这样您可以看到一些东西。所以,我们将首先使用我们的 Enro 来运行它。所以,Enro 是一个非常非常棒的服务。它基本上是指向,而且它可能失败了,因为我的防火墙又打开了。是的,它打开了。所以,我将关闭它,说我正在进行现场演示。我正在进行现场演示。请关闭。所以,我们将关闭它,然后我将重新启动它。所以我只是要杀死那个进程并重新启动。所以,Enro 是一个很棒的服务。它基本上将您的本地主机指向云端,这样您就可以在线进行操作,而不仅仅是在您的本地服务器上。所以,我们说我们有一个网关。我们有我们的 URL。所以,我将复制那个 URL。复制它。然后我们将把我们的 URL 放在代码中,我们说我们有。我将滚动到顶部,它就在那里。我们放域名的地方。所以,我们将替换掉我之前使用的这个。然后我们将把它放进去。现在,我将点击保存。始终记住保存您的文件。然后我们将打开一个新的控制台。在这里我们将运行这个主 Python 文件。所以,我们将运行 python.main。然后希望它将启动并运行。应用程序成功。完美。好了。所以,现在我们已经启动并运行了一切。但我们还没有做什么?我们还没有将其连接到电话号码。所以,如果您拨打我刚才购买的那个号码,什么都不会发生,因为我们还没有真正指向它。所以,我们将回到我们的电话号码。我们有一个友好的命名号码在这里,我们将进入所谓的 TwiML 应用。所以,这是我之前设置好的东西。所以,它是一个小应用程序。现在,我已经为万智牌助手设置了一个。所以,我将使用这个,因为它已经设置好了,而且准备就绪。所以,我们有我们的应用 SID。然后我们可以把我们的请求放进去。我们需要用我刚才创建的 URL 来替换它。这是在线的那个,因为这个不再在线了。所以,如果我们把它放进去,确保我们有斜杠。而且我们需要确保它是一个 post 方法。所以,我们需要确保我们实际上在发送信息。所以,我们将保存这个。但我们还没有将其连接到我拥有的那个号码。所以,这是我们的 Twilio 小型应用,但我们需要告诉我们正在拨打的号码,当我们拨打那个号码时,我们实际上想连接到这个应用。所以,我们必须回到我们的活动号码。所以,我们刚才重命名为友好名称的那个。所以,在控制台中很容易看到。所以,我们将打开它,然后我们将告诉它,当这个号码被拨打时,配置,我们有几个不同的选项。所以,我们可以直接配置 webhook。我们可以做 TwiML bin 函数工作室代理服务。我们可以将其更改为应用。所以,一个小 TwiML 应用意味着它使用起来很方便,而且一切都已设置好,我们只需要配置一件事。所以,我可以进去选择我刚才制作的万智牌助手。嗯,实际上,我刚刚添加了新的 URL。然后我们可以保存它。我不需要担心消息传递。我们现在不会在这次演讲中使用消息传递,但我也可以设置它,这样当您向号码发送消息时。所以,假设您不想使用语音,只想快速给 Jace 发条消息,您也可以这样做。我们现在只使用语音。好了。所以,让我们保存它,然后我想我已经做对了一切。所以,让我们打电话看看会议 Wi-Fi 是否真的能用。所以,我将打电话使用
有一个叫做 Twilio 开发者电话的东西。所以,如果你要做现场演示,这个真的很有用。它很棒,因为这意味着所有的音频都会通过我的笔记本电脑,而不是把手机举到麦克风前。但是,它也非常适合配置或测试一些你想在连接到服务之前尝试一下的东西。所以,祈祷好运。嗯,我们称它为 >> Jace Bellerin 为您服务。 >> 您寻求什么样的万智牌指导或知识? >> 你好 Jace。你今天怎么样? >> 你好 Jace。你能听到我吗?我不知道它是否能捕捉到我的麦克风。它说它正在被 Google Chrome 使用,而且我这里没有收到。所以,我们没有看到它在那里连接。等一秒钟。我们再试一次。有时候你再试一次,它就会奏效。 >> Jace Bellerin 为您服务。您寻求什么样的万智牌指导或知识? >> 你今天怎么样,Jace?来吧,Jace。我想是我的麦克风。我不确定。嗯,我们获得了麦克风访问权限。它实际上听不到我说话。所以,我们试试我的手机 [笑声] 即使它可能不会是最好的。希望这能在 Wi-Fi 通话中奏效。我们试试看这是否有效。否则,我也有一个备用方案。总是要有一个备用方案。 >> 0527 澳大利亚。 >> 好的。所以也许我们可以使用我的一个澳大利亚号码。如果不行,我会向你展示我上周实际工作时录制的演示。所以,我们回到我们的号码。实际上,我们试试,因为它是英国的,我还没有试过,我已经设置好了,我们可以看到这里有另一个。万智牌。我们试试美国号码,看看是否有效。有时候美国号码是有效的。 >> 哦不,没关系。我有其他几种方法可以尝试。不过我很感激。所以我可以看到呼叫确实在进行。只是我们一直在打电话。 >> Jace Bellerin 为您服务。您寻求什么样的万智牌指导或知识? >> 你好 Jace。我想组建一个万智牌套牌。你能帮我吗?它不起作用。哦,我太难过了。好的,我们要做的就是切换到我的备用方案,也就是预录制的演示。所以,很抱歉大家,我的麦克风现在就是不起作用。嗯,让我们看看这是否会奏效。所以,我们在这里再次展示代码。希望声音足够大。所以,我们再次打开服务器。我们去我们的电话。所以,我为你做好了这一切。 >> Jace Bellerin 为您服务。您寻求什么样的万智牌指导或知识? >> 是的,我打出了这张牌,它有敏捷。敏捷有什么作用?敏捷是万智牌中一种强大的异能,允许生物在进入战场的回合就可以攻击或使用需要横置的启动式异能。这可以在战场上造成突然的影响,可能会让你的对手措手不及。记住,最好的防守就是最好的进攻。您指的是哪张牌?我很乐意帮助您制定策略。敏捷是一种异能,允许生物在进入战场的回合就可以攻击或使用横置异能。通常情况下,生物在召唤的回合不能攻击或启动它们的横置异能,>> 但有了敏捷,它们就可以立即为战场做出贡献。这可以显著改变游戏的节奏。>> 它允许快速造成伤害或进行策略性游戏。>> 充分利用具有敏捷的生物总是明智的,特别是当你想要立即给对手施压时。所以,我打出了一张具有“辟邪”的牌。辟邪有什么作用?>> 似乎您可能指的是辟邪。>> 实际上,抱歉,我是说飞行。它有飞行。飞行有什么作用?>> 飞行是一种异能,允许生物躲避大多数地面生物。它只能被具有飞行或延缓异能的生物阻挡。这使得飞行生物能够有效地规避防御策略,直接对你的对手造成伤害。它给对手一方造成一种紧迫感,因为他们必须迅速找到应对这些空中威胁的方法。>> 迅速找到方法。是的。>> 天空不是极限。它只是开始。 [笑声] 飞行生物对你的游戏产生了什么影响?>> 我很喜欢飞行生物,但我打出了一张瞬间牌。我该如何实际施放一张瞬间牌?>> 在万智牌中施放瞬间牌非常简单。你几乎可以在任何时候施放瞬间牌,即使是在你对手的回合,这使得它成为一个多功能的工具。>> 好的,这很酷。所以,我打出了一张牌,上面有四种不同的颜色。红色、绿色、黄色和蓝色。那是什么意思?>> 你在牌上看到的颜色表明了施放法术所需的法术力费用。>> 它们代表了游戏中文明的不同领域。在万智牌中,主要的法术力颜色是红色、绿色、蓝色、白色和黑色。>> 好的。所以,如果我打出这张牌,上面有一个数字 2 旁边有一个红色法术力符号,那是什么意思?当你看到一个数字旁边有一个彩色法术力符号时,比如红色法术力旁边的数字 2,它表示施放该法术所需的红色法术力数量。>> 他很聪明。>> 在这种情况下,你需要支付两点红色法术力来施放这张牌。>> 好的。如果两个彩色框旁边有一个数字呢?所以,我有一个 4 旁边有一个蓝色和一个蓝色。当你看到一个数字旁边有这个。所以,那是实时 4 旁边有一个,而且很多都是因为我在澳大利亚。>> 这表示施放该法术的总法术力费用。>> 所以,你在澳大利亚听到的所有事情,你需要支付四点法术力,并且具体来说,它必须是两点蓝色法术力加上两点任意颜色的法术力。这意味着你可以支付两点蓝色法术力加上两点无色法术力,或者任何组合加起来总共是四点,同时仍然满足两点蓝色法术力的具体要求。理解这些费用对于最大化万智牌套牌调整的方面至关重要,这取决于你的法术力曲线和颜色要求。>> 平衡是持续施放法术的关键。>> 平衡是关键。第三,融入不同类型的牌。包括生物,一些选项,我应该如何以及结界来创造多样性。>> 你今天的目标是减少。>> 我会往回一点。>> 创造强大的进攻。>> 来了。>> 考虑加入可以让你抓牌的牌。所以,我问了一个关于直接的好套牌的问题,这样我就可以赢了。此外,产生价值或干扰对手计划的法术,如反击咒语或烧牌,也很适合这个原型。火与狡猾造就了完美的风暴。>> 完美的风暴。>> 你在考虑你的红蓝套牌中的哪些具体牌或策略?>> 我是红色的。>> 目前都在红蓝套牌里,但我确实想知道,我想我准备好玩了。那么,每个玩家有多少生命点?在一场标准的万智牌游戏中,每个玩家开始时有 20 点生命。>> 你的目标是今天我需要的所有东西。>> 我今天不需要他更多的东西了。>> 不客气。我很高兴能帮到你。>> 实际上,在我走之前,你是谁,你怎么知道这么多关于万智牌?作为一个鹏洛客,我穿越了无数的领域,[笑声] 体验了万智牌及其多元宇宙的错综复杂。我的知识涵盖了定义这款游戏的法术、策略和传说。我的使命是分享这些知识,并帮助像你一样的玩家在游戏中变得更加熟练和自信。每张牌都讲述一个故事,每场比赛都提供一个新的教训。>> 有点尴尬,>> 好奇心是让心灵保持活力的火焰。如果你有更多问题或需要指导,我随时都在这里提供帮助。感谢这次富有启发性的谈话。>> 好的,谢谢。你叫什么名字?>> 你叫什么名字?>> 我叫 Jace Bellerin。>> 他还说了一点,对吧?所以,我在这里所做的就是,当我输入提示时,我说,“也许你应该在你的回答结束时问一个问题,以保持对话的进行。”因为这非常人性化,对吧?当我们问一个问题时,我们正在进行对话,你可能会说,“Mish,你今天怎么样?”“哦,还不错。我起得很早。在酒店吃了顿不错的早餐。你今天怎么样?”就像,我们就是这样继续对话的。现在,我们可以看到嗯,嗯,现场演示没有成功,但谢天谢地,我为你准备了那个备用方案。但我们可以看到那里有很多不同的事情在发生。所以,对话中继为我处理了那些中断,它处理了我说的那些话,如果我说,嗯,是的,关于这个呢?所以,它能够为我做所有这些事情,而无需编写太多代码。所以,那个对话中继片段只有几行代码。那么,从架构上看它是什么样的?所以,我作为人类,我拨打了 Twilio voice。所以我使用的那个号码是 Twilio voice 号码。对话中继被调用,转到 web webs web socket 服务器,然后通过我构建的应用程序,我的 pi do main,它又以文本形式返回,然后它发送回来,为了非常非常人性化,我们听起来,你知道,正如我所说,我选择了一个听起来有点像 Jace 在现实生活中会有的声音的聊天语音,但你可以选择一个更活泼或者更快的,或者不同类型的声音。正如我所说,那里有超过 50 页的声音。然后你可以在这里连接它。所以,这个对话中继正在处理所有这些事情,比如那些生成的声音。我不需要自己去找模型。我确实需要弄清楚我想要哪种声音,但我不需要去找模型。我不需要编写所有那些中断。所以,如果有人听了内森的演讲,他不得不编写那些中断。还有那个低延迟。同样,我是在澳大利亚录制的,但考虑到 OpenAI 和 deep grammar 在美国的服务器,这已经是相当不错的延迟了。所以,那里相当不错。然后,构建我们自己的助手,我们可以引入很多我们自己的东西来插入对话中继。所以,正如我所说,我们可以通过添加关于我的数据和信息来让它更有吸引力或更有趣。所以,在对话中,你错过了,因为我跳过了它,但我说了我偏爱红蓝套牌。所以,当一个新的系列出来是红蓝色的,它可以给我发一条消息,说,“嘿,有一个新的红蓝系列。你想买吗?”这就是一种与客户互动的方式。所以,那里有 OpenAI,我们可以浏览,它为我们做了所有这些事情。所以,有了预测性 AI 或嗯,LLM,生产 LLM,我不需要单独编写所有这些东西。它为我们做了。如果我们插入工具,我们就有所有这些知识。我们有像嗯,身份,那里的 API。如果我们使用嗯,通信状态,我们的嗯,我们的 deepgram 正在为我们处理所有这些。所以,它正在处理执行。然后,再次,我们我们惊人的基础设施,你不需要自己托管它,是的,我正在本地运行它,但所有基础设施都已经托管好了。所以,语音 AI 可以用于生产力助手,AI 聊天机器人代理,就像我刚才向你展示的例子一样,学习助手。我们看到很多人使用 AI 语音作为学习工具,特别是在学习一门新语言时,因为现在有了语音,我们可以做到比如如何发音特定语言中的某个单词。家庭自动化和状态,比如谁进入了家庭自动化游戏,对吧?这很有趣。现在,我们可以使用语音 AI 来做到,“嘿,嗯,无论你给你的 AI 起什么名字,今天的天气会怎么样?我应该打开泳池加热器吗?我应该改变加湿器吗?我应该根据我们从家庭自动化获得的其他数据改变其他东西吗?健康伴侣。很多人正在使用这些 AI 作为伴侣,比如神经多样性,我们不必向人类披露大量敏感信息。AI 可以为我们处理这些,以及集思广益。所以,在过去的几分钟里,这对你们开发者意味着什么?现在,希望你们对万智牌至少有所了解,并且在屏幕上看到了一些牌,但作为开发者,这对你们意味着什么?语音仍然相对较新。它仍然是一项新技术。这是你们都可以去玩的新事物。我认为这是一个非常非常强大的工具,你们可以使用,作为开发者,如果你掌握了这些工具,你就可以成为第一批使用者。你可以帮助定义这些工具应该如何工作。你可以帮助塑造这些工具应该如何构建,一些指南,最佳用户体验。哦,抱歉,剧透警报,用户体验模式,期望。你可以将这些解决方案带到你的公司和你的客户,甚至你的个人项目。对吧?我肯定不是为我在 Twilio 的工作构建那个万智牌聊天机器人,对吧?我的意思是,有很多万智牌玩家,但我们可以为我们的个人项目做很多事情。现在,我真的认为 AI 的下一个时代已经到来,那就是语音,这就是 AI 的未来。它不是关于 AI 变得更聪明。它是关于 AI 理解更多上下文,因此更人性化。所以,这很酷,对吧?除了现场演示没有真正奏效之外,但这是我们可以使用的非常酷的技术。那么,我们接下来去哪里?上周,或者也许是两周前,Razer,有人喜欢 Razer 吗?就像那个游戏公司,他们发布了一个非常非常酷的项目。去年他们发布了他们的 AI,名为 Project Ava,这是一种帮助你玩游戏的方式,让你成为更好的玩家,同时作为开发者,能够使用 Razer 的 SDK 编程和构建游戏。在此基础上,从去年开始,几周前在 CES 上,他们推出了这个,我认为这很酷。醒醒,醒醒。早上好,乔伊。你又打呼噜了。一定要 [音乐] 穿你最喜欢的绿色夹克。>> 看,现在我们真的很有气氛了。 [音乐] 祝你有美好的一天。嘿,小可爱。>> 你好,阿曼达。昨晚的头脑风暴很棒。>> 实际上,[音乐] 我需要更多。>> 如果我们在这里翻转设计呢?你认为它能起作用吗?>> 很好。我认为你抓住了重点。>> 等一下。我们需要更多的空中支援。>> 是的。>> 哇。干净利落。干得漂亮。>> 哦。下次瞄准头部。打破视线。>> 在中距离切换到连发射击。>> 好的,你明白了,对吧?就像,这很酷。所以,我的下一个任务是让 Jace 进入这些小瓶子里,这样当我们玩万智牌时,它就可以放在桌子上,然后我们就可以说,你知道,它就可以给我们提供信息。但它很酷。这里有很多很酷的东西。它真的将技术带到了前沿。它真的模糊了人与机器之间的界限。是的,那里有一些伦理问题,这是我给的另一个讲座,但我们今天没有时间了。我认为这会非常非常有趣。我们终于以人类相互交流的方式与计算机互动了。所以,你们今天的收获是,第一,技术终于跟上了我们人与人交流的方式。AI 语音可以帮助解决你们公司和个人项目中遇到的许多问题。了解有许多工具可以帮助你们。像 Twilio Conversation Relay 这样的东西,但也有很多很棒的开源 AI 工具和 LLM。你们也可以在本地托管东西,对吧?有很多很酷的东西可以去玩。所以我鼓励你们去尝试一下。所以,再次,你们可以免费试用 Twilio。OpenAI 的 API 可能会有点贵,所以一定要管理好你们的令牌,但你们也可以在本地运行。查看我上传的代码。稍后会有链接。去编写规则。这是我们作为开发者编写 AI 语音应该如何做的规则的时候了。所以,如果我们走出去,我们正在构建它,使用它,告诉人们它应该如何被用作交互式工具,我们就在那里,在最前沿。所以,非常感谢你们听我的演讲。这是资源。这是代码,如果你想去玩一下,自己检查一下,我向你保证它确实有效。如果你想问一些问题,我们现在吃午饭。所以,我接下来一个小时都会在这里。我也会在 Twilio 展位。前面有很多贴纸。我想感谢大家今天来听我的演讲。谢谢大家。>> [掌声]