免提短信 开发_开发出色的免提应用程序-第1部分

免提短信 开发

This article started to get a little long, so I split it up. See Part 2.

这篇文章开始有点长了,所以我把它分开了。 参见 第2部分

I started working with Hands-Free wearable technology back in 2008. My tiny software consultancy was approached through some work we did on Windows SideShow (…long story). The requirement was:

我从2008年开始使用免提可穿戴技术。通过我们在Windows SideShow上所做的一些工作,我寻求了小的软件咨询服务(… 长话短说 )。 要求是:

How to control Microsoft PowerPoint Presentations using a Hands-Free Device?

如何使用免提设备控制Microsoft PowerPoint演示文稿?

We decided to take on the challenge and started working with Microsoft and the Kopin Golden-i 3.5 (sidebar, my company was later acquired by Kopin and we kept on working with them on great technology).

我们决定迎接挑战,并开始与Microsoft和Kopin Golden-i 3.5合作(侧边栏,我的公司后来被Kopin收购,并且我们继续与他们合作开发出色的技术)。

The Golden-i devices are completely Hands-Free, speech operated and, back in 2008 were running Microsoft Windows CE 5.

Golden-i设备完全免提,语音操作,并且早在2008年就运行Microsoft Windows CE 5。

Image for post
Kopin Golden-i 3.5 — circa. 2010
Kopin Golden-i 3.5-大约。 2010年

10+ years later, the platforms may have changed but the rules have not. I discovered that creating applications for these devices is completely different from developing for touch and here’s what I learned.

10多年后,平台可能已更改,但规则未更改。 我发现为这些设备创建应用程序与为触摸开发完全不同,这就是我所学到的。

1.仅语音 (1. Speech Only)

This is the big one so let’s get it out of the way first. There’s no touch screen. This may be obvious but it’s worth remembering and taking note. With no touch screen, your user interface might not make sense.

这是个大问题,所以让我们先解决它。 没有触摸屏。 这可能很明显,但是值得记住并记录下来。 如果没有触摸屏,则用户界面可能没有任何意义。

Wherever you have a button, this must be turned into a Speech Command.

无论您在何处有按钮,都必须将其转换为语音命令。

Fortunately, on the RealWear HMT-1, this is fairly straight forward. Being an Android device, your existing application will compile and run just fine (with a few exceptions, see below). Any buttons with text labels will be picked up by the Speech Recogniser and converted into commands.

幸运的是,在RealWear HMT-1上,这相当简单。 作为Android设备,您现有的应用程序将可以正常编译和运行(有一些例外,请参阅下文)。 任何带有文本标签的按钮都将被语音识别器拾取并转换为命令。

When the user speaks the command, the button will be “clicked” so your event handlers can work as expected.

当用户说出命令时,该按钮将被“单击”,因此您的事件处理程序可以按预期工作。

Forget about your parallax scrolling effects, pinch to zoom and rubber-band effects. They’re just not welcome here, sorry.

忘了视差滚动效果,捏缩放和橡皮筋效果。 对不起,他们在这里不受欢迎。

物理按钮 (Physical Buttons)

Backtracking slightly, Speech-Only isn’t technically true as many of the devices also support the occasional physical button. However, don’t rely on these. RealWear HMT-1 only offers “Home” and “Power” buttons. However, in the case of “Home”, the functionality is available through the “Navigate Home” command.

稍微回溯,仅语音技术在技术上并不正确,因为许多设备还支持偶尔的物理按钮。 但是,不要依赖这些。 RealWear HMT-1仅提供“主页”和“电源”按钮。 但是,在“主页”的情况下,可以通过“导航主页”命令使用该功能。

You might feel at first glance that this is limiting, but don’t worry. The Speech Recognition engine is excellent and you’ll forget all about those hardware keys.

乍一看,您可能会觉得这很有限,但是请放心。 语音识别引擎非常出色,您将忘记所有有关这些硬件键的信息。

触控板 (Touchpads)

Some devices (Google Glass and Vuzix M400) do support touchpads that sit on the side of the device. These are fine as a fallback but don’t assume your users will be comfortable using these.

某些设备(Google Glass和Vuzix M400)确实支持位于设备侧面的触摸板。 这些作为后备很好,但是不要以为您的用户会习惯使用它们。

At the end of the day, these devices are “Wearable Hands-Free Computers”, so make sure your UI can be navigated through speech primarily and use the touchpads as a backup.

归根结底,这些设备是“可穿戴式免提计算机”,因此请确保主要通过语音导航您的UI,并将触摸板用作备份。

A user won’t thank you if they have to take off their gloves to use your application.

如果用户必须脱下手套才能使用您的应用程序,则不会感谢您。

Image for post
Image for post
Vuzix and Google devices, with touchpads on the side
Vuzix和Google设备,侧面有触摸板

2.精心制作语音命令 (2. Carefully Craft Your Speech Commands)

Just because you have a speech command on the screen doesn’t mean that it’s a good speech command. If your user can’t pronounce the phrase easily, or, if the Speech Recognizer can easily mistake it for another command then you need to rethink your commands.

仅仅因为您在屏幕上有语音命令,并不意味着它是一个很好的语音命令。 如果您的用户无法轻松发音该短语,或者如果语音识别器很容易将其误认为另一个命令,则您需要重新考虑您的命令。

Internally, the Speech Recognizer is loaded with the phrases that your user-interface needs. This is known as “Grammar” and if you don’t tell the device about your grammar, it won’t know to listen for it. When the recognizer detects some grammar with a given threshold (ie: 60% confidence) then it will send a message to the user interface code.

在内部,语音识别器会加载用户界面所需的短语。 这就是所谓的“语法”, 如果您不告诉设备有关语法的信息,它将不会听 。 当识别器检测到具有给定阈值(即60%置信度)的某种语法时,它将向用户界面代码发送一条消息。

Your goal is to have the highest recognition confidence with the lowest amount of false positives

您的目标是拥有最高的识别信心和最少的误报率

For every layout in your application, write down all of the available speech commands. This will help you understand what you are asking your user to do. To help you easily identify what separates a good speech command from a bad speech command, here are some simple tips:

对于应用程序中的每个布局,写下所有可用的语音命令。 这将帮助您了解您要用户执行的操作。 为了帮助您轻松识别将语音命令与语音命令区别开的原因,以下是一些简单提示:

  • Every command should be “distant” from the other commands

    每个命令应与其他命令“相距较远”
  • Short Commands work well

    短命令效果很好
  • But, never (!) use commands with a single-syllable

    但是,切勿(!)使用带有单音节的命令

疏远您的命令 (Distancing your Commands)

Imagine you have an application which displays pages of a document. If the user wishes to navigate forward then the command available is “Next Page” and the command to go backwards is “Previous Page”.

假设您有一个显示文档页面的应用程序。 如果用户希望向前导航,则可用命令为“下一页”,而向后前进的命令为“上一页”。

On paper, this looks fine. However, there’s a subtle problem. The speech recognizer is listening in time-slices. 100–200ms of audio will be transmitted to the speech recognizer at a time and this means that there are cases where the beginning of the word may be chopped off.

在纸上,这看起来不错。 但是,存在一个细微的问题。 语音识别器正在按时间片监听。 一次将100-200毫秒的音频传输到语音识别器,这意味着在某些情况下可能会切断单词的开头。

In the scenario above, if you were to chop off the beginning of the 2 commands, you could be left with “xt Page” and “ous Page”.

在上述情况下,如果要截断这两个命令的开头,则可能会留下“ xt Page ”和“ ous Page ”。

In this case, the speech recogniser has to determine with some confidence; a) was a command uttered? b) which command was uttered?

在这种情况下,语音识别器必须有把握地确定。 a) 发出命令了吗? b) 发出了哪个命令?

This problem can be completely avoided if you reworded your commands slightly to “Page Right” and “Page Left”. The meaning of the commands has stayed exactly the same (“Page Right” and “Next Page” are equivalent), but as far as the Speech Recognizer is concerned, the distance between the commands has increased.

如果将命令稍微改写为“向右翻页”和“向左翻页”,则可以完全避免此问题。 命令的含义完全相同(“向右翻页”和“下一页”等效),但是就语音识别器而言,命令之间的距离已经增加。

Image for post
Distant Speech Commands in WorkfloPlus on HMT-1
HMT-1上WorkfloPlus中的遥远语音命令

短命令(多种) (Short Commands (sort of))

If your touch-based user interface contained a button that said: “Yes, I accept and understand the Terms and Conditions” then nobody would have an issue. However, in a speech-based user interface, this is an annoyance.

如果您的基于触摸的用户界面包含一个按钮:“ 是的,我接受并理解条款和条件 ”,那么没有人会遇到问题。 但是,在基于语音的用户界面中,这很烦人。

This phrase can be turned into “Accept Terms”, or perhaps just simply “Accept”. Much better.

该短语可以变成“ 接受条款 ”,或者可能只是“ 接受 ”。 好多了。

Take another example. On my Medium editor, I have a button for “Hints and Keyboard Shortcuts”. Again, nothing wrong with this on a touch-based user interface, but, I’m sure that “Show Hints” would be much easier to say.

再举一个例子。 在我的中型编辑器上,我有一个“ 提示和键盘快捷方式 ”的按钮。 同样,在基于触摸的用户界面上,这没有错,但是,我敢肯定,“ 显示提示 ”会更容易说出来。

切勿使用1-音节命令 (Never Use 1-Syllable Commands)

Yes, use Short Commands, but not too short. If you had a command “Yes”, “No”, “Up”, “Down” then there’s a chance that the device just won’t hear you.

是的,请使用“短命令”,但不要太短。 如果您有命令“是”,“否”,“上”,“下”,则设备可能听不到您的声音。

Remember that the device is always listening to what you say. It’s designed to discard conversations you’re having with somebody else, but, it’ll kick into action when you utter a command.

请记住,设备始终在听您说的话 。 它旨在丢弃您与其他人进行的对话,但是,当您说出命令时,它将立即生效。

A really short command may just be interpreted as background noise and ignored. Your users will get frustrated and won’t understand why their commands aren’t being accepted.

真正短的命令可能只是被解释为背景噪音而被忽略。 您的用户会感到沮丧,并且无法理解为什么不接受其命令。

Worse still, single-syllable commands are also likely to be picked up as false positives. This means that they might trigger even when you don’t say anything, or, the wrong command could be picked up. This has the potential to be catastrophic to the user if the action is destructive, so do whatever you can to avoid these.

更糟糕的是,单音节命令也有可能被误判。 这意味着即使您什么也不说,它们也可能触发,否则可能会收到错误的命令。 如果该操作具有破坏性,则可能对用户造成灾难性后果,因此请尽一切可能避免这些操作。

If you’re stuck, here’s a handy reference guide:

如果您遇到问题,可以参考以下指南:

  • Yes = Confirm / Positive / Accept

    =确认/肯定/接受

  • No = Cancel / Dismiss / Negative

    =取消/取消/否定

  • Up = Navigate Up / Go Up

    向上 = 向上导航/向上

  • Down = Navigate Down / Go Down

    向下 = 向下导航/向下

  • Back = Go Back / Navigate Back

    返回 =返回/导航

  • Left = Page Left / Go Left

    = 页/左移

  • Right = Page Right / Go Right

    =页面右/右移

One word of warning for “Navigate Back”. The HMT-1 will override this command and interpret it as the Android “Back” button. As with touch-based Android, you’re welcome to override the Back button functionality in your activity, but, make sure the user understands what is happening.

警告词“向后导航”。 HMT-1将覆盖此命令,并将其解释为Android“后退”按钮。 与基于触摸的Android一样,我们欢迎您在活动中覆盖“后退”按钮的功能,但是请确保用户了解正在发生的事情。

3.删除按钮图标 (3. Remove Button Icons)

The last tip on speech commands, avoid using icons. Decorative icons that are generally placed in your UI are fine, but button icons don’t make any sense.

关于语音命令的最后提示,请避免使用图标。 通常放在用户界面中的装饰性图标很好,但是按钮图标没有任何意义。

In the screenshot below of an Android Smartphone application, what does the button do?

在以下Android Smartphone应用程序的屏幕截图中,该按钮有什么作用?

Image for post
The unknown button
未知按钮
  • If this was an email compose screen, it might mean “Send”.

    如果这是电子邮件撰写屏幕,则可能表示“发送”。
  • Or, for an inbox, it could mean “Compose” or “New”

    或者,对于收件箱,它可能表示“撰写”或“新建”
  • With a “field service” tool it could mean “Complete” or “Finished”

    使用“现场服务”工具可能意味着“完成”或“完成”
  • For Medium, perhaps it means “Publish”, or “Save to Drafts”

    对于中型,可能意味着“发布”或“保存到草稿”

You get the point. In a touch-based device, the user would simply tap the button, but without a speech command hint, your users will be confused.

你明白了。 在基于触摸的设备中,用户只需轻按按钮,但是如果没有语音命令提示,您的用户就会感到困惑。

Buttons with icons are great for mobile button experiences, but for Hands-free wearable devices, they’re impossible.

带有图标的按钮非常适合移动按钮体验,但是对于免提可穿戴设备来说,这是不可能的。

Convert all of your icon buttons to clear, legible speech commands. Yes, this means refactoring your UI, but, if you want your users to understand what they’re meant to do, it’s the least you can do.

将所有图标按钮转换为清晰易读的语音命令。 是的,这意味着重构您的UI,但是,如果您希望用户了解他们的意图,那是您最少可以做的事情。

Take an example from the WorkfloPlus Dashboard. The user is clearly presented with 5 main commands in the middle of the screen.

以WorkfloPlus仪表板为例。 屏幕中间清楚地向用户显示了5条主要命令。

Image for post
WorkfloPlus Dashboard on HMT-1
HMT-1上的WorkfloPlus仪表板

Each of these commands is well labelled, distanced and short.

这些命令中的每一个都标记良好,相距很远且很短。

The icons hint to the user what needs to be done, but the speech commands explain how they’re going to do interact with the application.

这些图标向用户提示需要做什么,但是语音命令解释了他们将如何与应用程序交互。

Without the icons, some of the commands may not make sense (What does “Scan Code” mean if the QR Code symbol was missing?). By combining both the text and the icon we are being clear to the user every step of the way.

如果没有这些图标,则某些命令可能没有任何意义(如果缺少QR Code符号,“ Scan Code”是什么意思?)。 通过将文本和图标结合起来,我们在每一步中都对用户很清楚。

4.音频反馈 (4. Audio Feedback)

The opposite of the Speech Recognizer is Text-to-Speech. When you press a button in a touch-based app you get a nice visual cue such as a hover-state on the button.

语音识别器的相反是“文本到语音”。 当您在基于触摸的应用程序中按下按钮时,您会获得漂亮的视觉提示,例如按钮上的悬停状态。

Some devices (like the HMT-1) allow you to move the display boom out of the way. In this scenario the user is navigating the app completely through voice, so, without audio feedback, how will they know what they’re doing.

某些设备(例如HMT-1)使您可以将显示臂移开。 在这种情况下,用户将通过语音完全导航应用程序,因此,在没有音频反馈的情况下,他们将如何知道自己在做什么。

WorkfloPlus is a step-by-step instruction platform. The goal of the solution is to guide the user through a series of tasks and record the output along the way (ie: fixing an engine, inspecting a pump). In WorkfloPlus we implemented a mode where the device will speak to the user the title and description of the step they’re currently at. From here, the usual speech commands are available to progress through the work instruction, but crucially, the user isn’t required to look at the screen in order to use the software.

WorkfloPlus是一个循序渐进的指导平台。 该解决方案的目标是指导用户完成一系列任务,并沿途记录输出(即:固定发动机,检查泵) 在WorkfloPlus中,我们实现了一种模式,该设备将向用户说出他们当前所处步骤的标题和说明 。 从这里开始,可以使用普通的语音命令来执行工作指令,但是至关重要的是,不需要用户查看屏幕即可使用该软件。

Clearly this won’t work for all applications, but, if your application can be described through speech then users are free to use (or not use) the physical display throughout their daily tasks.

显然,这不适用于所有应用程序,但是,如果可以通过语音描述您的应用程序,则用户可以在日常工作中自由使用(或不使用)物理显示器。

5.避开边缘 (5. Avoid the Edges)

This seems like strange advice, but, avoid the edges of your user interface. Some users will find it hard at first to adjust to these hands-free wearable devices. And, depending on how the displays are positioned, it’s likely that not all users will be able to see the full screen.

这似乎是奇怪的建议,但是请避免使用用户界面的边缘 。 某些用户一开始会发现很难适应这些免提可穿戴设备。 并且,根据显示器的放置方式,可能并非所有用户都可以看到全屏。

If you have any speech commands, hints or indications, try and move them slightly inward. Your users will be less likely to miss important information if you keep it front and centre, so use the edges for secondary UI elements.

如果您有任何语音命令,提示或指示,请尝试将其向内微移。 如果您将重要信息放在首位和居中,则您的用户不太可能会错过重要信息,因此请将边缘用作辅助UI元素。

This is in complete contrast to mobile applications who frequently sport sidebars. A good tip is to move secondary information to its own screen. Perhaps create a “Show Info” UI for the extra information and make it obvious to your user where to find these other items.

这与经常使用侧边栏的移动应用程序形成了鲜明的对比。 一个很好的技巧是将辅助信息移至其自己的屏幕。 也许为额外的信息创建一个“显示信息” UI,并使您的用户在哪里可以找到这些其他项目。

Notice how in the screenshot below that all options are set away slightly from the edge of the screen, and “More Options” is available should the user need them.

请注意,在下面的屏幕截图中,所有选项如何都稍微远离屏幕边缘设置了,如果用户需要,“更多选项”可用。

Image for post
HMT-1 “My Camera” User Interface
HMT-1“我的相机”用户界面

下一步 (Next Steps)

In the next article I’ll cover:

在下一篇文章中,我将介绍:

  • Localisation

    本土化
  • UI Scaling and Contrast

    UI缩放和对比度
  • “Don’t rely on the Play Store”

    “不要依赖Play商店”
  • Motion Tracking

    运动追踪
  • Performance

    性能

翻译自: https://levelup.gitconnected.com/developing-great-hands-free-applications-part-1-58844395b048

免提短信 开发

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值