<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>TSF Aware : WSR</title><link>http://blogs.msdn.com/tsfaware/archive/tags/WSR/default.aspx</link><description>Tags: WSR</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Finding out when WSR shows a window (or, a concise guide to IUIAutomationRegistrar)</title><link>http://blogs.msdn.com/tsfaware/archive/2009/08/25/finding-out-when-wsr-shows-a-window-or-a-concise-guide-to-iuiautomationregistrar.aspx</link><pubDate>Tue, 25 Aug 2009 21:53:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9883979</guid><dc:creator>Eric Brown</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/tsfaware/comments/9883979.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tsfaware/commentrss.aspx?PostID=9883979</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tsfaware/rsscomments.aspx?PostID=9883979</wfw:comment><description>&lt;p&gt;When WSR shows a window (for example, the alternates dialog, the Disambiguation Numbers UI, or the dictation scratchpad), that window does not take focus.&amp;#160; &lt;/p&gt;  &lt;p&gt;These windows do not take focus because these windows could alter the state of the application that WSR is talking to.&amp;#160; For example, if you’re renaming a file in Windows Explorer, when the focus goes away, the file gets renamed.&lt;/p&gt;  &lt;p&gt;Unfortunately, though, accessibility applications often have problems finding these windows, even though these windows fire the standard WinEvents (several types of windows are plain dialogs, for example).&lt;/p&gt;  &lt;p&gt;In Windows 7, WSR fires a custom UI Automation event when it shows or hides one of its custom windows (Disambiguation Numbers, dictation scratchpad, Alternates, Spelling, Pronunciation, Switch Windows, or Launch Application).&lt;/p&gt;  &lt;p&gt;To do this, WSR uses the &lt;a href="http://msdn.microsoft.com/en-us/library/dd388290(VS.85).aspx"&gt;IUIAutomationRegistrar&lt;/a&gt; interface.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/dd388291(VS.85).aspx"&gt;IUIAutomationRegistrar::RegisterEvent&lt;/a&gt; defines a new event ID given a GUID and a name.&amp;#160; If multiple applications register an event using the same GUID and name, they all get the same event ID.&amp;#160; The event ID can also be used in a call to &lt;a href="http://msdn.microsoft.com/en-us/library/dd373640(VS.85).aspx"&gt;SetWinEventHook&lt;/a&gt;, if your application is using WinEvents.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Beware&lt;/strong&gt;: all registrations are &lt;em&gt;invalidated&lt;/em&gt; when you release the IUIAutomationRegistrar interface pointer!&amp;#160; So you &lt;strong&gt;must&lt;/strong&gt; retain the interface pointer until you no longer wish to process events.&amp;#160; (MSDN doesn’t make this clear.)&lt;/p&gt;  &lt;p&gt;So, if you want to find out when WSR is showing one of its custom windows, call &lt;a href="http://msdn.microsoft.com/en-us/library/dd388291(VS.85).aspx"&gt;IUIAutomationRegistrar::RegisterEvent&lt;/a&gt; with these two event declarations, and check for these events in your event processing code.&lt;/p&gt;  &lt;p&gt;const GUID GUID_ShowEvent = {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; 0x3891149e, 0x7190, 0x47d0, {0xa5, 0x18, 0xca, 0x1c, 0xdb, 0x40, 0xf7, 0xe3}    &lt;br /&gt;&amp;#160; };    &lt;br /&gt;#define UI_SHOW&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; L&amp;quot;Microsoft.Speech.UI.Shown&amp;quot; &lt;/p&gt;  &lt;p&gt;const GUID GUID_HideEvent = {&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; 0x987a1c35, 0x597b, 0x4947, {0x9e, 0xf8, 0xe7, 0xa6, 0x81, 0x42, 0xfd, 0x11}    &lt;br /&gt;&amp;#160; };    &lt;br /&gt;#define UI_HIDDEN&amp;#160;&amp;#160;&amp;#160; L&amp;quot;Microsoft.Speech.UI.Hidden&amp;quot;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9883979" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tsfaware/archive/tags/WSR/default.aspx">WSR</category><category domain="http://blogs.msdn.com/tsfaware/archive/tags/Accessibility/default.aspx">Accessibility</category></item><item><title>What’s new in Windows Speech Recognition?</title><link>http://blogs.msdn.com/tsfaware/archive/2009/01/29/what-s-new-in-windows-speech-recognition.aspx</link><pubDate>Thu, 29 Jan 2009 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9378890</guid><dc:creator>Eric Brown</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tsfaware/comments/9378890.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tsfaware/commentrss.aspx?PostID=9378890</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tsfaware/rsscomments.aspx?PostID=9378890</wfw:comment><description>&lt;P&gt;Now that the Beta of Windows 7 is out, it’s time to talk about the improvements and new features in Windows Speech Recognition.&lt;/P&gt;
&lt;P&gt;For Windows 7, we focused primarily on improving the user experience and removing the “rough spots” that we did not have time to fix in Vista.&lt;/P&gt;
&lt;P&gt;First and foremost, we focused on performance.&amp;nbsp; &lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;We rewrote the logic that builds the “say what you see” grammar to use the new native UI Automation API (instead of the MSAA IAccessible API).&amp;nbsp; This dramatically reduces the number of cross-process COM calls (by an order of magnitude), and speeds up the grammar generation by about 5-6 times. &lt;/LI&gt;
&lt;LI&gt;The document harvester also has substantial performance improvements; &lt;/LI&gt;
&lt;LI&gt;Building the “start application” grammar also runs much faster, as well. &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Second, we focused on usability.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Dictation into TSF-unaware applications works &lt;STRONG&gt;much&lt;/STRONG&gt; better than it did before.&amp;nbsp; Now, when you dictate into an unaware application, the dictation scratchpad appears. 
&lt;UL&gt;
&lt;LI&gt;You can use the scratchpad as a temporary document, and it is even voice, mouse, and keyboard-enabled; you can type, use the arrow keys for navigation, or use the mouse or voice commands to select and correct text before inserting the finished text into the unaware application. &lt;/LI&gt;
&lt;LI&gt;If you don’t like the scratchpad, you can turn it off, and your dictations will be directly inserted into the unaware application. &lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;
&lt;LI&gt;Sleep mode works &lt;STRONG&gt;much&lt;/STRONG&gt; better than it did before; false recognitions of “start listening” have been greatly reduced. &lt;/LI&gt;
&lt;LI&gt;We simplified the transitions between OFF and SLEEP mode; for security reasons, we now default to OFF after “stop listening”; although users can change the default to SLEEP mode.&amp;nbsp; (We call this “voice activation” in the Control Panel and First Time User Experience.) &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Third, we looked at accuracy.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;The SR engine now uses the WASAPI audio stack, so we support array microphones and echo cancellation; this vastly improves WSR’s accuracy when used without a headset. &lt;/LI&gt;
&lt;LI&gt;Document harvesting runs periodically, rather than just at startup; this lets the harvester pick up new documents as you create them, rather than having to wait for you to reload speech. &lt;/LI&gt;
&lt;LI&gt;You can upload your training data to Microsoft, so that we can improve the recognizers in the future.&amp;nbsp; (You have to initiate this, incidentally; we will not upload any data without your explicit consent.)&lt;/LI&gt;
&lt;LI&gt;The Chinese recognizer has substantial accuracy improvements as well.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Lastly, we did a few tweaks to the recognizer.&amp;nbsp; In Vista, 3rd party applications couldn’t tell whether the shared recognizer was ON or SLEEPing.&amp;nbsp; For Win7, there are new APIs that expose SLEEP mode.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9378890" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tsfaware/archive/tags/dictation/default.aspx">dictation</category><category domain="http://blogs.msdn.com/tsfaware/archive/tags/WSR/default.aspx">WSR</category></item></channel></rss>