草庐IT

使用人工智能来改善您嵌入式UI的用户体验

Crank软件 2023-07-25 原文

如今,许多人逐渐将人工智能(AI)技术加入到了他们的嵌入式设备的开发中。特别是在用户体验(UX)方面,人工智能在创造一个周到和直观的界面方面做得很好。

迄今为止,许多嵌入式人工智能活动都是围绕着数字语音助手和它们为我们的设备增加自然对话的能力。虽然我们以前写过关于Google Assistant和亚马逊Alexa语音集成是下一代设备的关键部分,但这很快就成为一种预期,而不是一种差异化。

对您的嵌入式GUI进行更持久的用户体验改进,可以通过添加一个使用您公司所在领域专业知识定制的AI来实现。虽然这需要一些数据科学的专业知识,但这是增加难以复制的特定行业价值的最佳方式。
 

您的嵌入式GUI如何通过使用人工智能获益


人工智能是由机器学习驱动的,需要用大量的数据进行训练。因此,您目前拥有或可以收集大量数据的业务领域——产品使用、传感器输入和诊断日志,是人工智能可以发挥作用的最佳位置

让我们看一下人工智能可以为您的产品增加价值的一些UI功能的例子。
 

1. 视觉处理

允许设备看到,使其拥有一个额外的感觉来与用户交互。结合一个便宜的摄像头传感器,一点点人工智能就能发挥出神奇的作用
 

  • 在智能家居中标记家庭成员,进行个性化设置

  • 分析医疗扫描并标记出有问题的状况

  • 为需要授权使用的设备识别指纹

  • 理解自动取款机或文件扫描器中的笔迹

2. 模式识别


经过适当训练的人工智能可以变得非常善于识别隐藏在从地震分析仪到自动驾驶汽车的数据中的模式。通过筛选嘈杂和安静的信号,人工智能可以对重要数据进行自动分类,简化其他系统的输入,甚至模仿人类的专业知识。

这些模式识别的人工智能解释的是什么数据?通常是基本的传感器读数——温度、位置、方向、大气压力、雷达或红外线,用于各种工业、医疗和消费电子应用。然而,另一个丰富的数据领域是用户的行为:他们如何使用设备和操作它。

支持人工智能的设备可以学习他们特定主人的习惯,让智能设备自动猜测其主人的意图并符合他们的喜好。这些细微的改进可以给用户界面和用户体验带来巨大的变化
 

3. 自然语言处理


自然语言处理(NLP)是指设备理解人类语言背后的意图的能力。语音助手通常使用自然语言处理将意义注入他们从音频语音中创建的文本转录中,然而自然语言处理也可以为其他应用解释文本。
 

  • 为导航和物流解决方案定位街道地址

  • 为设备上的支持功能提供聊天机器人

  • 发送扫描语音到文本请求到物联网和智能家居设备

  • 解释自由格式电子邮件中的预定时间或地点

4. 自动化


计算机在自动化方面一直都很出色。然而,它们并不擅长执行每次发生的事情并不总是相同的任务。这就是人工智能的作用;它可以使计算机有能力以适应不断变化的环境的方式执行快速、大量或高度重复的任务。

人工智能驱动的自动化是自动驾驶汽车背后的本质。驾驶任务既是令人头疼的重复性工作,但也是不断变化的,需要快速适应,这种情况非常适合由智能计算机来管理。

过程自动化也是如此,允许工业机器人对其编程的内容变得智能,并灵活地实现它。通过将机器人更多地集中在它需要做的事情上,而不是如何去做,自动化的用户界面可以被大大简化。
 

如何在您的嵌入式GUI中设计人工智能


现在,我们已经涵盖了您的设备可能会拿人工智能做的一些事,您会如何围绕它设计您的用户界面?

很少有资源会讨论人工智能的添加要如何对您的UI设计产生影响。有一位高级用户体验设计师Naïma van Esch讨论了这个问题,虽然她的建议是针对消费类设备的,但对嵌入式系统也有普遍意义:
 

  1. 管理预期。设定用户对设备能做什么和不能做什么的期望值,这样他们就不会失望了。错位的期望可能会导致用户在使用产品时出现意外,您应该为此做好准备。

  2. 为宽恕而设计。人工智能不会是完美的,所以设计用户界面,使用户倾向于原谅它。这可以包括用户界面的处理,如友好的语气、令人愉快的功能,或功能方面,比如不需要连接就可以进行操作的能力。

  3. 数据透明和量身定做。对您所收集的关于用户的数据要透明,并为他们提供定制的能力。这有助于解决隐私问题以及对“老大哥”的担忧。但它也可以让您的用户使用户体验更加智能,例如,如果多人共享用户界面而设备并不知情的话。

  4. 隐私、安全和控制。在使用用户的个人数据时,要获得用户的信任,没有用户的同意不要做事情。

使用人工智能进行嵌入式系统测试


人工智能改善您的产品的另一种方式是隐藏的,那就是通过改善您的UI测试的方式。在您的测试程序中使用人工智能不会消除对人类测试人员的需求,但您可以减少工作中的繁琐程度,并为您的人类团队保留更多的创造性测试。由人工智能支持您的UI测试的一些优势包括:
 

  • 提高对可重复回归测试的信心

  • 更彻底的测试,提高产品质量

  • 减少人类测试人员的无聊感


值得庆幸的是,有很多人在解决这个问题,现在有一大堆工具可以应用于建立一个智能测试平台。
 

用AI变得智能

通过所有这些讨论,您可能迫不及待地想开始为您的产品加入人工智能能力。有许多预制的工具可用于构建人工智能:TensorFlow、SageMaker Neo和PyTorch是几个比较流行的工具。所有这些资源都包括教程和支持它们的开发者和数据科学家社区。为了建立所需的数据科学基础,您可以尝试像Scikit这样的资源,这是一个Python工具包,对每个不同的数学模型和它们的最佳使用时间提供了简洁的视觉解释。

当然,如果您想探索人工智能如何帮助您创造更好的用户界面/用户体验,我们很乐意与您交谈,欢迎后台留言。

有关使用人工智能来改善您嵌入式UI的用户体验的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  8. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  9. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  10. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

随机推荐