Bing Speech Recognition Control for Windows 8.1

Microsoft Free

Integrate speech recognition into your Windows 8.1 Store apps with the Bing Speech Recognition Control. The control accepts voice input through the microphone and returns the recognized text to the application.

Microsoft
(0) Review
Visual Studio
2012
Download (3,215)
4/15/2014
1.1
View
E-mail Twitter del.icio.us Digg Facebook
Add to favorites
Description
Reviews
Q and A (4)
Sign in to write a review

Be the first to write a review.

Sign in to start a discussion


  • Timeouts when rejecting too much...
    9 Posts | Last post June 15, 2014
    • Are you guys using some kind of denial of service checks that causes timeouts in situations where the recognizer gets invoked repeatedly and returns with rejected results? That's what I'm seeing right now. If so, what's that timeout, so I can work around it? It seems to be something like blocking of IPs after 10 failed attempts in a minute...
    • Actually, it seems to happen JUST when calling RecognizeSpeechToTextAsync() too soon after having previously called it...
    • Hi Affiliate,
      Because the RecognizeSpeechToTextAsync() method runs asynchronously, you will need to structure your code in such a way as to prevent more than one instance from running at the same time. This may require disabling the UI elements that invoke it until you receive a result or until RequestCancelOperation() is called.
      I believe the UI control does this automatically.
    • I should have been more clear. My only running thread is, in fact, awaiting the RecognizeSpeechToTextAsync method; I'm not using this method concurrently in multiple threads. Just one thread at a time. So what I mean to say is...if thread A calls RecognizeSpeechToTextAsync, awaits it, has it return, then quickly calls it again, it will fail. If you guys require extra time to do cleanup after an invocation of RecognizeSpeechToTextAsync, I suggest you await that in the same method so that a quick re-invocation of RecognizeSpeechToTextAsync fires properly.
    • Three questions: 
      - What exception do you encounter? 
      - Are you enabling the UX component as well?
      - Can you share a snippet of the code? I guess that you are trying to use a scenario that is not really supported, yet I would not expect us to fail ;) We are looking into this but we could not find a repro with or without the UX being enabled. 
    • Sorry for the delay; just thought to check the messages again now! Gabriel, here is the exception:
      
      exeption.Message: Timeout waiting for service response
      
      exception.StackTrace:    
      
         at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
         at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
         at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
         at Bing.Speech.API.NlApiOperation.<>c__DisplayClass2`1.<<Run>b__0>d__9.MoveNext()
      --- End of stack trace from previous location where exception was thrown ---
         at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
         at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
         at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
         at Snippet.MainPage.<ListenForSpeech>d__32.MoveNext()
      
      Code to Reproduce:
      
      private async void ListenForSpeech()
              {
                  string exceptionMessage = null;
                  try
                  {
                      SpeechRecognitionResult result = await speechRecognizer.RecognizeSpeechToTextAsync();
                      if (result.TextConfidence != SpeechRecognitionConfidence.Rejected && !String.IsNullOrWhiteSpace(result.Text))
                      {
                          await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
                          {
                              textBox.Text += result.Text;
                          });
                      }
                  }
                  catch (Exception exception) {
                      exceptionMessage = exception.Message;
                  }
                  if (exceptionMessage != null)
                  {
                      MessageDialog dialog = new MessageDialog("Speech recognition failed: " + exceptionMessage + ".");
                      await dialog.ShowAsync();
                      StopSpeechRecognition(true);
                  }
                  ListenForSpeech();
              }
    • Frate, 3 more things for my Romanian brothers at MS. I live in Canada. Maybe the delay is causing issues in propagation timing between control and servers? Also, my speech recognition problem can be reproduced if you just run the above code and simply walk away from the microphone for a bit. Also, I'm not binding it to a UX control. Just creating the Speech Recognizer like this: speechRecognizer = new SpeechRecognizer("en-US", credentials);
      
    • I managed to repro the issue. It might be the service but most probably is the client code. The design of the control was focused on push to talk scenarios and correct continuous recognition can't be realized by repetitive calls into the RecognizeAsync. We are looking into providing this feature in future releases.   
    • Nice. Well, the hack for now is to add about a 1-second delay between invocations. I use it like this on my Typewriter+ app for Windows on the Microsoft Store: http://apps.microsoft.com/windows/en-ca/app/typewriter/d3398b84-e809-4312-aa53-7f90a4426989
  • Changelog of the 1.1 update ?
    2 Posts | Last post April 25, 2014
    • Hello,
      
      Is there a changelog associated with the 1.1 update ?
      
      Thanks,
      Jeremy
    • Hello Jeremy,
      
      Detailed documentation is on its way. A quick chenagelog is as follows:
      
      1. Added support for strong named applications
      2. Added support for 6 new languages apart from English (US) - English (UK), French, German, Italian, Spanish, Simplified Chinese
      3. Some performance imporovements
      
      Thanks
  • Post .wav to bing.speech web service
    3 Posts | Last post April 25, 2014
    • I assume somewhere under the covers there is a web service that processes voice recognition requests.  Is it possible to access this web service and pass it a .wav file or stream rather than using the microphone?  I have voicemails that I would like to transcribe.
    • Just an idea, but maybe try using WireShark (http://www.wireshark.org/) to sniff the requests you're sending out?
    • Our backend web service is not accessible by any other means except through the API. At this point, the API does not provide the functionality to read the input from a .wav file. In future releases we will consider this functionality. 
  • Bing Speech Recognition Installation Problems
    3 Posts | Last post February 03, 2014
    • I asked this question in the Bing Ads API Forum a week ago or so but maybe that was in the wrong Forum so I am trying this again here with hope of better luck in getting an answer.
      
      In installed the 8.1 version of the Speech Recognition Control on Win 8.1 Enterprise on two different machine with the same bad result.  When I downloaded the Bing Speech Recognition Control custom UI sample and opened it in both VS 2012 and VS 2013 I see unresolved references in the project References to Bing.Speech and Microsoft Visual C++ Runtime Package reference and when I compile it confirms the reference are bad when it says, "Warning 3 The referenced component 'Bing.Speech' could not be found.  SpeechCustomUi" and same for C++ Runtime.
      
      I assume these references are pointing to the GAC and that these libs were not properly installed when I ran the Bing Speech Recognition Control installer for Windows 8.1.vsix that I got from  http://visualstudiogallery.msdn.microsoft.com/521cf616-a9a8-4d99-b5d9-92b539d9df82
      
      Any ideas on what is going wrong here?
      
      Happy to move this question to an MSDN Forum if there is one for this control.
      
      I'd love to give this control a try if I could only get past this issue.
      
      -Russ
      
    • Yeah, I ran into something like this. Make sure that you target x64 on your build settings and also try to ensure that you're referencing the latest version of the Visual C++ runtime.
    • For Windows 8.1 you should be able to refer the control only in VS 2013 not in VS 2012. Once you have installed the vsix package you need to restart the IDE. I am not sure about the samples but with a new project you should be able to find the Bing.Speech in the Reference Manager/Windows/Extensions and add it as a reference to your project and that should add the correct reference to the Visual C++ Runtime as well. Building a WinRT app you will have to create each of the 3 platforms as you need it: x86, x64, Arm, Any CPU will not work. Hope it helps.