UNPKG

unfluff

Version:
269 lines (254 loc) 14.2 kB
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <script>var _sf_startpt=(new Date()).getTime()</script> <title>Voice interfaces</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="https://dtu1xr3i3b2a1.cloudfront.net/cargo/favicon-21f6b9978f356b4fb56cb18b7ed5df0b.ico"> <meta name="generator" content="Svbtle.com" /> <meta name="description" content="Current voice interfaces are horrible. They try to imitate intelligence and fail so badly that they make computers even more frustrating to use. Most people have no idea how to use things like Siri. They ask it perfectly reasonable questions like,... | Dustin Curtis | Villain."/> <link rel="canonical" href="http://dcurt.is/voice-interfaces" /> <meta name="og:url" content="http://dcurt.is/voice-interfaces" /> <meta property="twitter:card" content="summary" /> <meta property="twitter:site" content="@svbtle" /> <meta property="twitter:title" content="Voice interfaces" /> <meta property="twitter:description" content="Current voice interfaces are horrible. They try to imitate intelligence and fail so badly that they make computers even more frustrating to use. Most people have no idea how to use things like Siri. They ask it perfectly reasonable questions like,... | Dustin Curtis | Villain." /> <meta property="twitter:creator" content="@dcurtis" /> <meta property="twitter:image:src" content="https://d27kszptu8mqwl.cloudfront.net/GhOtcum4rbpO2RRCDXxaJDTBfc_large.png" /> <meta property="twitter:domain" content="http://dcurt.is" /> <meta property="og:title" content="Voice interfaces &bull; Dustin Curtis" /> <meta property="og:type" content="article" /> <meta property="og:description" content="Current voice interfaces are horrible. They try to imitate intelligence and fail so badly that they make computers even more frustrating to use. Most people have no idea how to use things like Siri. They ask it perfectly reasonable questions like,... | Dustin Curtis | Villain."/> <meta property="og:image" content="https://d27kszptu8mqwl.cloudfront.net/GhOtcum4rbpO2RRCDXxaJDTBfc_large.png" /> <meta property="og:site_name" content="Dustin Curtis on Svbtle" /> <meta property="fb:app_id" content="346346195413177" /> <link rel="author" href="https://plus.google.com/+DustinCurtisUgh" /> <link rel="alternate" type="application/rss+xml" href="http://feeds.feedburner.com/dcurtis" /> <link data-turbolinks-track="true" href="https://dtu1xr3i3b2a1.cloudfront.net/cargo/build.blog-76b17698b5484b5bf87761afdf0042b3.css" media="all" rel="stylesheet" /> <script src="//use.typekit.com/rjg0ips.js"></script> <script>try{Typekit.load();}catch(e){}</script> <script data-turbolinks-track="true" src="https://dtu1xr3i3b2a1.cloudfront.net/cargo/build.blog-abeaf0037c14d50524cdd242000772df.js"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-41994323-1'); ga('send', 'pageview'); // Create a new tracker for the user on analytics.js and send the pageview ga('create', 'UA-5805610-13', {'name': 'userTracker'}); ga('userTracker.send', 'pageview'); // Backwards compatibility--create an old ga.js for the user var _gaq = _gaq || []; _gaq.push( ['_setAccount', 'UA-41994323-1'],['_setDomainName', 'none'],['_setAllowLinker', true],['_trackPageview'],['b._setAccount', 'UA-5805610-13'],['b._setDomainName', 'dcurt.is'],['b._setAllowLinker', true],['b._trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);})(); </script> </head> <body class="overlord blog"> <style scoped> figure.avatar a, figure#user_logo a, figure#user_foot a, nav#overlord.user_top figure#logo_top a, figure.kudo.complete div.filling { background-image: url('https://d27kszptu8mqwl.cloudfront.net/GhOtcum4rbpO2RRCDXxaJDTBfc_medium.png') } figure.kudo.activated div.filling, figure.kudo.complete div.filling { background-color: #FF0000; } figure.kudo.activated a, figure.kudo.complete a { border-color: #FF0000; } blockquote, a blockquote, div#readnext:hover span.flank_title, div#foot_more:hover a, div#foot_userbar a#bottom_tagline span:hover, article.linked h1.article_title a:hover, a.continue_button:hover, article p a:hover, ul#lightning_drop, section#subscribe div.input_box, section#subscribe div.input_box input, figure#user_logo, figure#user_foot, ul#user_links li a:hover, ul#foot_links li a:hover, a.buttonize:hover, button.buttonize:hover, a.buttonize.outline:hover, button.buttonize.outline:hover, nav.pagination span.next a:hover, nav.pagination span.prev a:hover, section#readnext:hover p span, nav#overlord.user_top figure#logo_top { border-color: #FF0000; } figure.avatar, nav#overlord.user_top figure#logo_top a, ul#user_links li a:hover, ul#foot_links li a:hover, a.buttonize:hover, button.buttonize:hover, a.buttonize.outline:hover, button.buttonize.outline:hover, nav.pagination span.next a:hover, nav.pagination span.prev a:hover, figure#user_logo a, figure#user_foot a { background-color: #FF0000; } h6.separator_title.read_first, header#user_top h2 a, footer#blog_foot h5 a, article.post h1 a:hover, div.preview strong, nav#overlord h2#nav_title.user_top a, section#readnext:hover h3, section#readnext:hover p span { color: #FF0000; } @keyframes titlePulse { 0% { color: #000000; } 50% { color: #FF0000; } 100% { color: #000000; } } @-moz-keyframes titlePulse { 0% { color: #000000; } 50% { color: #FF0000; } 100% { color: #000000; } } @-webkit-keyframes titlePulse { 0% { color: #000000; } 50% { color: #FF0000; } 100% { color: #000000; } } </style> <figure id="loading">&nbsp;</figure> <nav id="overlord" class="user_top"> <figure id="logo_top" class=""> <a href="/">Svbtle</a> </figure> <h2 id="nav_title" class="user_top"><a href="http://dcurt.is">Dustin Curtis</a></h2> <figure id="hamburger"> <a href="#menu" id="hamburger_button">Menu</a> </figure> <ul id="dropdown" class="onblog"> <li class="dropdown_message"> <a href="https://svbtle.com">Dustin Curtis is writing on the <span class="logoize">Svbtle</span> network.</a> </li> <li><a href="https://twitter.com/dcurtis">@dcurtis</a></li> <li><a href="http://dustincurtis.com" target="_blank">dustincurtis.com</a></li> <li><a href="mailto:hi@dustincurtis.com?subject=hi%20from%20svbtle">say&nbsp;hello</a></li> <li><a href="/feed">rss feed</a></li> <li style="margin: 0; padding: 0;"><hr class="overlord_nav" /></li> <li><a href="https://svbtle.com/about">about svbtle</a></li> <li><a href="https://svbtle.com/signup">sign up</a></li> </ul> </nav> <div id="whiteout"></div> <section id="container" class="blog user_post"> <article id="teUxTvhX0K7SJfkbcAoF" class="post "> <time datetime="2014-09-15" class="article_time">September 15, 2014</time> <h1 class="article_title"> <a href="http://dcurt.is/voice-interfaces">Voice interfaces</a> </h1> <p>Current voice interfaces are horrible. They try to imitate intelligence and fail so badly that they make computers even more frustrating to use. Most people have no idea how to use things like Siri. They ask it perfectly reasonable questions like, &ldquo;Who invented the lightbulb?&rdquo; and it responds with junk from Google. The answer to that particular question is not straightforward&ndash;at least <a href="http://en.wikipedia.org/wiki/Joseph_Swan">three</a> <a href="http://en.wikipedia.org/wiki/Thomas_Edison">people</a>, <a href="http://en.wikipedia.org/wiki/Hiram_Maxim">independently</a>, invented different types of light bulbs&ndash;and computers are really bad at deciphering and communicating absolute answers from complex information like that. Because they are still so frustratingly limited, Siri and Google Now are simply not yet ready to exist. They are not artificially intelligent by any stretch of the imagination. </p> <p>That being said, current voice recognition technology is incredibly good at certain things. It&rsquo;s great at detecting and transcribing words, listening for specific commands, and making matches against expected inputs. So why does literally no software take advantage of voice technology in the way it works best? For example it boggles my mind that I cannot do the following things:</p> <ul> <li>When I&rsquo;m inputting my home address in a web browser (on mobile or desktop), I should be able to tap the &ldquo;State&rdquo; dropdown and just say &ldquo;California&rdquo; and it have it select that option for me.</li> <li>When I highlight the browser address bar, I should be able to just say &ldquo;The Economist&rdquo; and have it automatically find the address in my favorites and go there.</li> <li>When I open to the home screen on my phone, I should be able to just say &ldquo;Instagram&rdquo; and have that app open. </li> <li>On iOS, when I get a notification that covers the top of the screen, I should be able to just say &ldquo;ignore&rdquo; and have the notification instantly disappear.</li> <li>When I click the &ldquo;To&rdquo; field in a mail app or in Gmail, I should be able to just say a person&rsquo;s name and have it fill in automatically (and maybe show me a dropdown to select which email address to send to).</li> </ul> <p>All of these possible cases have one important thing in common&ndash;something specific has to happen before the voice control works. I have to tap a dropdown and <em>then</em> say &ldquo;California&rdquo;. I have to have just received a text message to say &ldquo;ignore&rdquo; and it have it disappear. The reason current voice interfaces suck is because they force the speaker to consciously enter a &ldquo;voice&rdquo; mode and then create context around the action they want the computer to perform. This makes no sense; the computer should just always be listening for potential commands within the context of whatever the user is doing. Siri has no context, which makes it very difficult for the computer to accurately predict what the user whats to do. It also makes it very difficult for a user to know when using Siri would be helpful. But within specific context, there are only a few possibilities, which makes it far easier to use and much easier for a developer to build.</p> <p>In general, voice interfaces would work great for things that are easy to vocally describe but hard to do on input devices like touch screens, keyboards, and mice. Like selecting &ldquo;California&rdquo; from a dropdown list. Or paging through icons to find an app to open. I only listed five possible use cases above, but I think they would dramatically improve the computing experience. Imagine what other things could be done.</p> <figure class="postend kudo able clearfix" id="kudo_teUxTvhX0K7SJfkbcAoF"> <a href="#kudo"> <div class="filling">&nbsp;</div> </a> <div class="num">861</div> <div class="txt">Kudos</div> </figure> <figure class="side kudo able clearfix" id="kudo_side_teUxTvhX0K7SJfkbcAoF"> <a href="#kudo"> <div class="filling">&nbsp;</div> </a> <div class="num">861</div> <div class="txt">Kudos</div> </figure> </article> </section> <section id="readnext"> <a href="http://dcurt.is/rim-ceos-quit"> <h4 class="readnext_header">Read this next</h4> <h3 class="readnext_title">RIM CEOs quit</h3> <p class="readnext_content">From The Wall Street Journal: WATERLOO, Ontario—After 20 years together at the helm of Research In Motion Ltd., Jim Balsillie and Mike Lazaridis, the companys co-chief executives, said they planned to turn over the top job early Monday... <span class="continue_btn">Continue&nbsp;&rarr;</span></p> </a> </section> <section id="subscribe" class="cf"> <p class="title">Get updated when Dustin Curtis publishes</p> <form accept-charset="UTF-8" action="/subscriptions" class="new_subscription" data-remote="true" id="new_subscription" method="post"><div style="display:none"><input name="utf8" type="hidden" value="&#x2713;" /></div> <div class="input_box cf"> <input class="pane_input" id="subscription_email" name="subscription[email]" placeholder="What&#39;s your email?" type="email" /> </div> <p class="notify">Don&rsquo;t worry; we hate spam with a passion.<br/> You can unsubscribe with one click.</p> <span id="user_extid">GhOtcum4rbpO2RRCD</span> <a href="#subscribe" class="buttonize submit_form subscribe_submit">Subscribe</a> </form></section> <footer id="blog_foot" class="cf"> <ul id="foot_links"> <li><a href="https://twitter.com/dcurtis">@dcurtis</a></li> <li><a href="mailto:hi@dustincurtis.com?subject=Svbtle">say hello</a></li> <li><a href="http://dustincurtis.com">dustincurtis.com</a></li> </ul> <figure id="user_foot"><a href="/">Svbtle</a></figure> <h5><a href="http://dcurt.is">Dustin Curtis</a></h5> </footer> <footer id="foot"> <figure id="logo_foot"><a href="https://svbtle.com">Svbtle</a></figure> </footer><div id="lights">&nbsp;</div> <script> var _sf_async_config = { uid: 1721, domain: 'svbtle.com'}; (function() { function loadChartbeat() { window._sf_endpt = (new Date()).getTime(); var e = document.createElement('script'); e.setAttribute('language', 'javascript'); e.setAttribute('type', 'text/javascript'); e.setAttribute('src','//static.chartbeat.com/js/chartbeat.js'); document.body.appendChild(e); }; var oldonload = window.onload; window.onload = (typeof window.onload != 'function') ? loadChartbeat : function() { oldonload(); loadChartbeat(); }; })(); </script> </body> </html>