<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>All the Cool Developers use Speech APIs</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/chuckop/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/chuckop/feed.xml</link>
    <description>A forum for information about Microsoft Speech technologies, including the Speech API (SAPI) and the Managed Speech API.</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:20:33 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Cool Developers STILL use Speech APIs</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/cool-developers-still-use-speech-apis</link>
      <pubDate>Mon, 10 Aug 2009 18:12:02 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2009/08/10/cool-developers-still-use-speech-apis/</guid>
      <description><![CDATA[My apologies that there have been no new posts on this blog for nearly a year.&#160; Because my...]]></description>
      <content:encoded><![CDATA[<p>My apologies that there have been no new posts on this blog for nearly a year.&#160; Because my personal and professional lives have taken a new direction, my Microsoft blog will be closing.</p>  <p>I highly recommend the <a href="https://blogs.msdn.com/speech/" target="_blank"><strong>Speech @ Microsoft</strong></a><strong> </strong>blog for more up-to-date information on Microsoft’s speech technologies.</p>  <p>Also, <a href="https://blogs.msdn.com/robch/" target="_blank"><strong>Rob’s Rhapsody</strong></a><strong> </strong>is a good blog maintained by Microsoft’s Rob Chambers.</p>  <p>You can to email the Speech product team at Microsoft as well: <a href="mailto:listen@microsoft.com"><strong>listen@microsoft.com</strong></a> for speech recognition questions, and <a href="mailto:speak@microsoft.com"><strong>speak@microsoft.com</strong></a> for speech synthesis and Text-to-Speech (TTS) queries.</p>  <p>The best place for developers to get the Speech SDK <a href="https://msdn.microsoft.com/en-us/library/ms720406(VS.85).aspx" target="_blank">samples</a> and <a href="https://msdn.microsoft.com/en-us/library/ms723627(VS.85).aspx" target="_blank">documentation</a> is the Windows SDK.&#160; <a href="https://msdn.microsoft.com/en-us/speech/bb980924.aspx" target="_blank">Download all or just part of it</a>.&#160; You can email your SAPI related questions to <a href="mailto:sapitech@microsoft.com">sapitech@microsoft.com</a>.</p>  <blockquote>   <p align="left"><em>If you’re interested in contacting me personally, you can email me at </em><a href="mailto:chuckop@gmail.com"><em>chuckop@gmail.com</em></a><em> or </em><a href="mailto:chuckop@live.com"><em>chuckop@live.com</em></a><em>.&#160; Search the internet for </em><a href="https://www.bing.com/search?q=Charles+Oppermann+OR+ChuckOp" target="_blank"><em>Charles Oppermann OR ChuckOp</em></a><em> and you’ll generally find me.&#160; I hope to hear from you!</em></p> </blockquote>  <p><strong>Speech technology is incredibly enabling and is now mainstream and accepted by users.&#160; The technology is easily available to developers, so go forth and add the power of the human voice to your application!</strong></p>  <p align="center"><a href="https://chuckop.spaces.live.com" target="_blank"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Charles Oppermann giving presentation on Microsoft Windows" border="0" alt="Charles Oppermann giving presentation on Microsoft Windows" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/BlogFileStorage/blogs_msdn/chuckop/WindowsLiveWriter/CoolDevelopersSTILLuseSpeechAPIs_FFED/image002_3.png" original-url="https://blogs.msdn.com/blogfiles/chuckop/WindowsLiveWriter/CoolDevelopersSTILLuseSpeechAPIs_FFED/image002_3.png" width="240" height="231" /></a></p>  <p>Thank you,   <br />Charles Oppermann    <br /><font color="#808080">Program Manager, Microsoft Corporation     <br />Microsoft Bob, Windows 95, Internet Explorer 3.0, Active Accessibility, Internet Explorer 4.0/4.01, Windows 98, Windows 2000, Windows 2000 Active Directory Programming (author), Windows Vista, Office Communication Server 2007, Windows Speech Recognition Profile Tool, Windows 7      <br /></font></p>  <p align="center"><strong>“<em>A computer on every desk and in everyone home…       <br />…usable by everyone!”</em></strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Our Users Are Leading Authorities</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/our-users-are-leading-authorities</link>
      <pubDate>Tue, 26 Aug 2008 04:26:53 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/08/26/our-users-are-leading-authorities/</guid>
      <description><![CDATA[Throughout my career at Microsoft, I've eagerly participated in mailing lists, newsgroups, and web...]]></description>
      <content:encoded><![CDATA[<p>Throughout my career at Microsoft, I've eagerly participated in mailing lists, newsgroups, and web forums to engage customers and learn more about their needs and foster direct communication.</p>  <p>One of the better forums for speech recognition is run by <strong>Professor Itamar Even-Zohar </strong>of Tel Aviv University, where he teaches Culture Research.&#160; Itamar has been a long time user of speech recognition and vocal in feedback regarding Windows Speech Recognition.&#160; His <a href="https://www.tau.ac.il/~itamarez/sr/" target="_blank">web site on speech recognition</a> contains useful information on WSR and speech recognition included in Office XP and Office 2003.&#160; In particular, his <a href="https://tech.groups.yahoo.com/group/ms-speech" target="_blank">ms-speech forum</a> is invaluable.</p>  <p>Recently when David Pogue of the New York Times wrote about the newest version of NaturallySpeaking, Itamar was quick to write David and set him straight on a few matters, including a plug about Windows Speech Recognition Macros!</p>  <p>David <a href="https://pogue.blogs.nytimes.com/2008/08/22/windows-speech-recognition-does-more/" target="_blank">wrote of Itamar</a>, &quot;<strong><em>Clearly, I&#8217;ve unearthed the world&#8217;s leading authority on speech-recognition foreign-language versions,</em></strong>&quot;</p>  <p>If you read the links I'm providing, you'll see that Professor Even-Zohar is <strong>not</strong> enamored of all that we do.&#160; He's critical of several aspects of WSR and while he &quot;gets it&quot; regarding <a href="https://www.microsoft.com/downloads/details.aspx?FamilyID=fad62198-220c-4717-b044-829ae4f7c125" target="_blank">WSR Macros</a>, he's quick to point out flaws and features.</p>  <p>It's users like this that we need more of; people who are highly experienced and unafraid to share their opinions.&#160; The information provided is valuable to me and the rest of the product teams.&#160; On the flip side, we have to be careful regarding users expectations.&#160; Bending our ear doesn't mean you'll get whatever feature you asked for, and within a particular timeframe.</p>  <p>Oftentimes we'll have more features than time or people available.&#160; We have to be very choosy about where to spend our resources.&#160; Even things that are a number #1 priority sometimes have to take a backseat to a lesser feature because it was one that we could do in the time or resources available.</p>  <p>Having the feedback from experienced users though help us make the most of the resources we have.&#160; We can prioritize better and have confidence that what we're doing will have the greatest impact.</p>  <p><strong>To everyone who writes us at </strong><a href="mailto:listen@microsoft.com" target="_blank"><strong>listen</strong></a><strong>, </strong><a href="mailto:speak@microsoft.com" target="_blank"><strong>speak</strong></a><strong> and </strong><a href="mailto:sapitech@microsoft.com" target="_blank"><strong>sapitech</strong></a><strong> - we thank you and keep the feedback rolling!</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>WSR Accuracy Survey</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/wsr-accuracy-survey</link>
      <pubDate>Mon, 11 Aug 2008 21:14:23 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/08/11/wsr-accuracy-survey/</guid>
      <description><![CDATA[We're always looking for feedback on how to improve Windows Speech Recognition.&#160; If you are a...]]></description>
      <content:encoded><![CDATA[<style></style>  <p>We're always looking for feedback on how to improve Windows Speech Recognition.&#160; If you are a frequent user, please take a moment to respond with your experiences.&#160; You can <a href="mailto:listen@microsoft.com?subject=WSR Accuracy Survey at API blog" target="_blank">email us</a>, or leave a comment below.</p>  <ol>   <li>What mode of microphone control do you use most often?      <ol type="a">       <li>I use &#8220;start listening&#8221; and &#8220;stop listening&#8221; </li>        <li>I press CTRL+WIN to change listening modes </li>        <li>I use my headset/microphone mute button </li>     </ol>   </li>    <li>If you use &#8220;start listening&#8221; (or have in the past), how reliable is it for your environment?      <ol type="a">       <li>Very reliable: WSR only listens when I say &#8220;start listening&#8221; </li>        <li>Somewhat reliable: WSR occasionally wakes up even if I did not say, &#8220;start listening&#8221;, but it&#8217;s not a problem for me. </li>        <li>Not reliable: I cannot use the Sleep mode because &#8220;start listening&#8221; is recognized too frequently. </li>     </ol>   </li>    <li>Were you aware that pressing CTRL+WIN was a possible means of controlling the listening state?      <ol type="a">       <li>No </li>        <li>Yes </li>     </ol>   </li>    <li>When you add words to the speech dictionary, do you also record a pronunciation?      <ol type="a">       <li>Yes, always </li>        <li>Sometimes </li>        <li>Only if after adding the word WSR still does not recognize it correctly </li>        <li>What&#8217;s the speech dictionary? </li>     </ol>   </li>    <li>Do you find that while correcting misrecognized phrases, that WSR still misrecognizes the phrase, even after one or more corrections?      <ol type="a">       <li>Always </li>        <li>Frequently </li>        <li>Enough that I notice </li>        <li>Occasionally </li>        <li>Rarely </li>     </ol>   </li>    <li>What is your favorite feature or aspect of Windows Speech Recognition?      <br /></li>    <li>Conversely, what is the one thing you&#8217;d like to change? </li> </ol>  <p>&#160;</p>  <p>Thanks for taking the time to share your feedback!&#160; We do value your feedback and use it to help guide future development.</p>]]></content:encoded>
    </item>
    <item>
      <title>Enumerating TTS Engines using System.Speech.Synthesizer</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/enumerating-tts-engines-using-system-speech-synthesizer</link>
      <pubDate>Wed, 30 Jul 2008 17:48:21 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/07/30/enumerating-tts-engines-using-system-speech-synthesizer/</guid>
      <description><![CDATA[Here is a quick and dirty C# console application that will list out the installed TTS engines and...]]></description>
      <content:encoded><![CDATA[<p>Here is a quick and dirty C# console application that will list out the installed TTS engines and associated properties.&#160; Make sure you add System.Speech to your project's list of references.</p>  <pre class="code"><span style="color: blue">using </span>System;
<span style="color: blue">using </span>System.Collections.Generic;
<span style="color: blue">using </span>System.Speech;
<span style="color: blue">using </span>System.Speech.Synthesis;
<span style="color: blue">using </span>System.Speech.AudioFormat;

<span style="color: blue">namespace </span>SelectVoice
{
  <span style="color: blue">class </span><span style="color: #2b91af">SelectVoice
  </span>{
    <span style="color: blue">static void </span>Main(<span style="color: blue">string</span>[] args)
    {
      <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;SelectVoice Example&quot;</span>);
      <span style="color: #2b91af">SpeechSynthesizer </span>ttsSynth = <span style="color: blue">new </span><span style="color: #2b91af">SpeechSynthesizer</span>();

      <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Listing installed speech synthesizer voices...&quot;</span>);
      <span style="color: blue">foreach </span>(<span style="color: #2b91af">InstalledVoice </span>ttsVoice <span style="color: blue">in </span>ttsSynth.GetInstalledVoices())
      {
        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Name:\t{0}&quot;</span>, ttsVoice.VoiceInfo.Name);
        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Desc:\t{0}&quot;</span>, ttsVoice.VoiceInfo.Description);
        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Id:\t{0}&quot;</span>, ttsVoice.VoiceInfo.Id);
        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Gender:\t{0}&quot;</span>, ttsVoice.VoiceInfo.Gender);
        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Age:\t{0}&quot;</span>, ttsVoice.VoiceInfo.Age);

        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Supported Audio Formats:&quot;</span>);
        <span style="color: blue">foreach </span>(<span style="color: #2b91af">SpeechAudioFormatInfo </span>audioFormat <span style="color: blue">in </span>ttsVoice.VoiceInfo.SupportedAudioFormats)
        {
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tEncodingFormat:\t{0}&quot;</span>, audioFormat.EncodingFormat);
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tChannelCount:\t{0}&quot;</span>, audioFormat.ChannelCount);
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tBits/sec:\t{0}&quot;</span>, audioFormat.BitsPerSample);
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tAvg Bytes/sec:\t{0}&quot;</span>, audioFormat.AverageBytesPerSecond);
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tSamples/sec:\t{0}&quot;</span>, audioFormat.SamplesPerSecond);
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\tBlockAlign:\t{0}&quot;</span>, audioFormat.BlockAlign);
        }

        <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Additional Information:&quot;</span>);
        <span style="color: blue">foreach</span>(<span style="color: #2b91af">KeyValuePair</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">string</span>&gt; kvp <span style="color: blue">in </span>ttsVoice.VoiceInfo.AdditionalInfo)
          <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;\t{0}:  {1}&quot;</span>, kvp.Key, kvp.Value);
        <span style="color: #2b91af">Console</span>.WriteLine();
      }
    <span style="color: #2b91af">Console</span>.WriteLine(<span style="color: #a31515">&quot;Finished listing installed voices.&quot;</span>);

    ttsSynth.SelectVoice(<span style="color: #a31515">&quot;Microsoft Anna&quot;</span>);
    ttsSynth.Speak(<span style="color: #a31515">&quot;Greetings, my name is &quot; </span>+ ttsSynth.Voice.Name);<br />    }
  }
}</pre>
<a href="https://11011.net/software/vspaste"></a>]]></content:encoded>
    </item>
    <item>
      <title>The "Mojave Experiment"</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/the-mojave-experiment</link>
      <pubDate>Wed, 30 Jul 2008 13:12:24 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/07/30/the-mojave-experiment/</guid>
      <description><![CDATA[Check out the &quot;Mojave Experiment&quot;, where Microsoft brought in people to show them a...]]></description>
      <content:encoded><![CDATA[<p>Check out the <a href="https://www.mojaveexperiment.com/">&quot;Mojave Experiment&quot;</a>, where Microsoft brought in people to show them a un-released version of Windows.</p>  <p>Having been part of the <a href="https://en.wikipedia.org/wiki/Easter_eggs_in_Microsoft_products#Windows_95" target="_blank">Windows 95 team</a>, and then shipped components in Windows 98, Windows 2000 and Windows Vista, I'm used to people complaining that the newest version of Windows is not as good at the previous version.</p>  <p>There are a lot of misconceptions about Windows Vista - that's it's slow, that feature X is not as good as it was in Windows XP, or any number of possible excuses.&#160; Many of the people doing the complaining haven't used Vista, or installed it on hardware that didn't meet have the recommended system requirements.</p>  <p>If you have Windows XP and are concerned that Windows Vista won't work with your hardware of existing applications, check out the very useful &quot;<a title="Download the Windows Vista Upgrade Advisor" href="https://www.microsoft.com/windows/windows-vista/get/upgrade-advisor.aspx" target="_blank">Windows Vista Upgrade Advisor</a>&quot; tool.</p>  <p><strong><u>What's your favorite Windows Vista feature?</u></strong>&#160; Of course, I'm partial to <a href="https://www.microsoft.com/enable/products/windowsvista/speech.aspx" target="_blank">Speech Recognition</a> and the <a href="https://blogs.msdn.com/robch/archive/2006/08/29/730032.aspx" target="_blank">Microsoft Anna TTS</a> voice, but <a href="https://www.microsoft.com/windows/windows-vista/compare-editions/compare-to-windows-xp.aspx" target="_blank">there are many new features</a>, tell me yours.</p>  <p>&#160;</p>  <p>Update:&#160; <a href="https://www.nytimes.com/2008/08/04/technology/04vista.html" target="_blank">The New York Times collects some reaction</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Where can I get the Microsoft Bob SDK?</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/where-can-i-get-the-microsoft-bob-sdk</link>
      <pubDate>Mon, 28 Jul 2008 16:32:24 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/07/28/where-can-i-get-the-microsoft-bob-sdk/</guid>
      <description><![CDATA[My friend and colleague Karin Meier is the person I work with when putting updated speech content...]]></description>
      <content:encoded><![CDATA[<p>My friend and colleague <a href="https://blogs.msdn.com/karinm/" target="_blank">Karin Meier</a> is the person I work with when putting <a href="https://blogs.msdn.com/chuckop/archive/2008/02/26/speech-content-in-the-windows-sdk.aspx" target="_blank">updated speech content</a> into the Windows SDK.</p>  <p>She recently blogged about some odd requests she's gotten for old software.&#160; One of them was &quot;<a title="where can I get the Microsoft Bob SDK?" href="https://blogs.msdn.com/karinm/archive/2008/06/07/where-can-i-get-the-microsoft-bob-sdk.aspx">where can I get the Microsoft Bob SDK?</a>&quot;.&#160; I've been feeling nostalgic about Bob recently, as I visited Dan Rose's exhibit on <a title="Link to Microsoft Bob information" href="https://www.d2ca.org/ms-bob.html" target="_blank">Microsoft Bob</a>, part of <a href="https://www.d2ca.org" target="_blank">Dan's 20th Century Abandonware</a> site.</p>  <p>My first job at Microsoft in 1994 was working on Microsoft Bob which was code-named Utopia.&#160; My contribution to the product was minor, but in my opinion, it never deserved the trashing it got by the industry and pundits at the time and ever since.&#160; Someday I'll write more regarding what went right and what went wrong with Microsoft Bob.</p>  <p>In the meantime, and for a stroll down memory lane, check out <a href="https://www.d2ca.org/" target="_blank">Dan's website</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>SAPI Documentation Errata: ISpRecoGrammar::SetRuleState</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/sapi-documentation-errata-isprecogrammarsetrulestate</link>
      <pubDate>Fri, 25 Apr 2008 15:46:09 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/04/25/sapi-documentation-errata-isprecogrammarsetrulestate/</guid>
      <description><![CDATA[There is a typo in the documentation for the ISpRecoGrammar::SetRuleState method in SAPI 5.3.&#160;...]]></description>
      <content:encoded><![CDATA[<p>There is a typo in the documentation for the <a href="https://msdnstage.dns.microsoft.com/en-us/library/ms718922(VS.85).aspx" target="_blank">ISpRecoGrammar::SetRuleState</a> method in <a href="https://msdnstage.dns.microsoft.com/en-us/library/ms723627(VS.85).aspx" target="_blank">SAPI 5.3</a>.&#160; The input parameters are listed as:</p>  <blockquote>   <pre><b>HRESULT SetRuleState(</b>
 <b>  LPCWSTR</b>       <strong><font color="#ff0000">*</font></strong><i>pszName</i>,
 <b>  void       </b>   *<i>pReserved</i>,
   <a href="https://msdnstage.dns.microsoft.com/en-us/library/ms717272(VS.85).aspx"><b>SPRULESTATE</b></a>   <i>NewState</i>
<b>);</b></pre>
</blockquote>

<p>This instead it should be:</p>

<blockquote>
  <pre><b>HRESULT SetRuleState(</b>
 <b>  LPCWSTR</b>       <i>pszName</i>,
 <b>  void       </b>   *<i>pReserved</i>,
   <a href="https://msdnstage.dns.microsoft.com/en-us/library/ms717272(VS.85).aspx"><b>SPRULESTATE</b></a>   <i>NewState</i>
<b>);</b></pre>
</blockquote>

<p>Note that instead of <code>&quot;*pszName&quot;</code> the parameter should be <code>&quot;pszName&quot;</code>.</p>

<p>We'll update MSDN and the Windows SDK documentation, but in the meantime we wanted to publish this errata.</p>]]></content:encoded>
    </item>
    <item>
      <title>Speech Content in the Windows SDK</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/speech-content-in-the-windows-sdk</link>
      <pubDate>Tue, 26 Feb 2008 04:46:00 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2008/02/26/speech-content-in-the-windows-sdk/</guid>
      <description><![CDATA[I'm happy to announce the availability of the RTM release of the Windows SDK.&nbsp; This release -...]]></description>
      <content:encoded><![CDATA[<P mce_keep="true">I'm happy to announce the availability of the RTM release of the Windows SDK.&nbsp; This release - the first RTM one since Vista - contains the following speech-related items:</P>
<UL>
<LI><I>Updated</I>: SAPI 5.3 documentation</LI>
<LI><I>Updated</I>: System.Speech documentation</LI>
<LI><I>Updated</I>: Sample source code</LI>
<UL>
<LI>8 C++ projects</LI>
<LI>3 C# projects</LI>
<LI>2 sample engines - TTS and SR</LI></UL>
<LI><I>New</I>: Grammar Compiler (GC.EXE) tool now part of the tool binaries included in the SDK</LI></UL>
<P mce_keep="true">The Windows SDK completely replaces the older SAPI 5.1 SDK and supports development on Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008.</P>
<P mce_keep="true">Customers can download this SDK as a DVD image (1,330MB ISO file) from this location:<BR><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF">https://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF</A></P>
<P mce_keep="true">Or go through a guided setup process where only the components they need are downloaded.&nbsp; Speech is part of the base install.<BR><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC">https://www.microsoft.com/downloads/details.aspx?FamilyId=E6E1C3DF-A74F-4207-8586-711EBE331CDC</A></P>
<P mce_keep="true">&nbsp;I'm particularly interested in <A class="" title="Email Charles Oppermann" href="mailto:chuckop@microsoft.com" mce_href="mailto:chuckop@microsoft.com">your feedback</A> regarding the Windows SDK as a whole and in particular getting speech information.</P>]]></content:encoded>
    </item>
    <item>
      <title>Display Context Menus Where The Cursor Is, Not Where the Mouse Is</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/display-context-menus-where-the-cursor-is-not-where-the-mouse-is</link>
      <pubDate>Thu, 06 Sep 2007 16:39:15 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2007/09/06/display-context-menus-where-the-cursor-is-not-where-the-mouse-is/</guid>
      <description><![CDATA[This is a little user interface rant of mine since I'm speech and keyboard-oriented.&nbsp;...]]></description>
      <content:encoded><![CDATA[<p>This is a little user interface rant of mine since I'm speech and keyboard-oriented.&nbsp; While&nbsp;editing text, when I say "Press Shift F Ten" or press the Application Key (to the right of the spacebar on Windows keyboards), I expect the context menu to appear at the text cursor location, since that's where the action is going to take place.</p> <p>However, some applications assume the mouse activitated the functionality and positions the context menu wherever the mouse is.&nbsp; Since I'm using speech or typing and haven't touched the mouse in a while, the menu appears nowhere near where the cursor or selection is.</p> <p>A more common variant of this is when the menu appears in the upper-left corner of the edit box when activated by keyboard.&nbsp; </p> <p>The article titled&nbsp;<a href="https://msdn2.microsoft.com/en-us/library/ms647558.aspx" target="_blank"><em>Using Menus</em></a>&nbsp;on MSDN contains sample code that always uses lParam for the X/Y location to display the menu.&nbsp;&nbsp;The documentation on <a href="https://msdn2.microsoft.com/en-us/library/ms647592.aspx" target="_blank">WM_CONTEXTMENU</a> is clear:</p> <blockquote> <p><em>If the context menu is generated from the keyboard—for example, if the user types SHIFT+F10—then the x- and y-coordinates are -1 and the application should display the context menu at the location of the current selection rather than at (xPos, yPos).</em></p></blockquote> <p>That advice is ignored in the <em>Using Menus </em>topic, so I used the "Add Community Content" to add a note, and I'll file a bug on this so that it can be fixed in the future.</p> <p>Using MSDN's Community Content feature, I added the following to the&nbsp;<a href="https://msdn2.microsoft.com/en-us/library/ms647558.aspx" target="_blank"><em>Using Menus</em></a> article:</p> <blockquote> <p>Remember when processing the WM_CONTEXTMENU message, that the X/Y coordinates might be -1/-1 which indicates that the keyboard generated the menu, thus, the menu should be shown at the cursor location or at the location of the selection - NOT at -1/-1 or the mouse pointer location.</p> <p>The samples currently in this article do not account for this and will attempt to display the menu at -1/-1, which is confusing to the keyboard user.&nbsp; Pressing the Application Key on Windows keyboards (to the right of the spacebar) generates a VK_APPS virtual scan code which by default generates a WM_CONTEXTMENU.&nbsp; You can also get this if the user presses SHIFT+F10. <p>Never handle SHIFT+F10 or VK_APPS to popup a context menu, rely on the WM_CONTEXTMENU message and if the location given is -1/-1, revert to using the text cursor and/or selection information to place the menu.</p></blockquote>]]></content:encoded>
    </item>
    <item>
      <title>The Desktop Is Not For Programs</title>
      <link>https://docs.microsoft.com/archive/blogs/chuckop/the-desktop-is-not-for-programs</link>
      <pubDate>Tue, 04 Sep 2007 04:11:29 GMT</pubDate>
      <dc:creator><![CDATA[MSDN Archive]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/chuckop/2007/09/04/the-desktop-is-not-for-programs/</guid>
      <description><![CDATA[I'm constantly amazed that people think that putting shortcuts to programs on the desktop makes...]]></description>
      <content:encoded><![CDATA[<p></p>  <p>I'm constantly amazed that people think that putting shortcuts to programs on the desktop makes accessing that program &quot;easier&quot;. </p>  <p>For the second time in about a week, I've encountered people asking how to put shortcuts to programs on the desktop.&#xA0; </p>  <p>The desktop is ill-suited for this. To start with, items located on it are often not visible because other windows are placed in front of the desktop.&#xA0; Depending on the current window layout, you might have to make one or more mouse or keyboard operations to select the desktop item you want.&#xA0; </p>  <p>To make matters worse, the location of the items will shift positions as screen resolutions change (because of games, connecting monitors, etc.) and items are added. </p>  <p>While oftentimes commercial software will litter the desktop with shortcuts, the purpose is to increase visibility, not ease of use. </p>  <p>Why not use the Start Menu? If WordPad is a program you use often, just &quot;Pin&quot; it to the Start Menu and it'll always be there, available in less keystrokes than trying to use it off the desktop. </p>  <p>If you really want quick access, pin the item to the Start Menu and then modify the item's properties to have a shortcut key assigned. <strike>Only items in the Start Menu can have shortcut keys assigned to them.</strike></p>  <p><strong>Update 9/4/2007</strong>: My bad, shortcut keys can be assigned to shortcut file that are located on the desktop.&#xA0; My initial test of this failed, and since I knew that only certain locations respect shortcut keys, I figured that the desktop was not one of them.&#xA0; I'll try to find a definitive list, but it appears that any of the Start Menu locations and the Desktop are valid places for a shortcut file to have a shortcut key assigned.&#xA0; Interestingly, shortcut keys for items in the Quick Launch toolbar location are not respected.</p>]]></content:encoded>
    </item>
  </channel>
</rss>