How to set the input device for voice recognition - microsoft-speech-platform

Is there a possibility to set another microphone input than the systems default for recognizing speech with either the System.Speech or Microsoft.Speech on Windows 8 and Windows Server 2012 machines?
I surfed the docs and I have not found an obvious way. But maybe there is a workaround or maybe I have missed something?

Related

Programmatically turn off the system sound for NFC proximity on Windows 10 phone

I'm developing a Universal Windows Platform (UWP) app for use on Windows 10 phones (e.g., Lumia 950/950XL). Part of the app requires that an NFC tag is tapped to allow the user to indicate their presence at a particular location.
When the phone comes into range of a tag, a system generated sound plays. This is independent of the app. I'd like to be able to turn this sound off, because when the tag is tapped, I want to indicate success or failure by my own sounds. The system sound is quite long, and as far as I can see there's no way to change it.
Is there any way to turn off the system sound from within the app?
At this time, the Universal Windows Platform cannot change system settings for the user. There are, of course, operating system API used by the Windows Settings apps, but those are not public and have not been announced to be made so. This includes sounds. Sorry.

Play audio as microphone input

I am to test voice recognition programs. Some which I have access to the code and others where I don't.
Sadly my (beautiful) voice is not perfect, so when I am reading a text it sounds slightly different each time. Which makes the testing difficult and time consuming. Giving that I can tweak a lot of parameters.
So I was wondering if there was a way to record my own voice (already done). And then play it as normal microphone input so the voice recognition program I am testing will see it as microphone input.
This would also help greatly if it could be done programatically in C#. So I can in my own code specify when to play what.
To play it from speakers and have the voice recognition programs listen to the microphone is not an option, because it is not the same sound on different computers/speakers/microphones.
Thanks.
Edit:
What i have found so far is to use a software sound Card simulator. But I haven't been able to find a suitable one.
Just as there are printer drivers that do not connect to a printer at all but rather write to a PDF file, analogously there are virtual audio drivers available that do not connect to a physical microphone at all but can pipe input from other sources such as files or other programs.
I hope I'm not breaking any rules by recommending free/donation software, but VB-Audio Virtual Cable should let you create a pair of virtual input and output audio devices. Then you could play an MP3 into the virtual output device and then set the virtual input device as your "microphone". In theory I think that should work.
If all else fails, you could always roll your own virtual audio driver. Microsoft provides some sample code but unfortunately it is not applicable to the older Windows XP audio model. There is probably sample code available for XP too.

How to redirect audio stream from microphone to headphone instantly

I need to open the incoming audio stream from the microphone and address it instantly to the headphones so you hear what is being acquired by the microphone.
it is not possible to do this using xna microphone, because it is necessary to pass through a buffer that slows down the headphone listening. I think needs to use Windows.Phone.Media.Capture as AudioDevice and perhaps AudioSink but do not understand how. Do you have any suggestions?
thanks
It looks you've got tighter latency requirements than the a previous question in this area. For phone 8 the best latency result is probably going to be to use the DirectX audio APIs from C++.
The documentation on MSDN will tell you which APIs you can use from the phone, but if I know MSDN I expect you will need to go digging to find examples of how to use them - and when you find them you'll need to be familiar with C/C++, and how to set up a "hybrid" C#/C++ project in Visual Studio.
Even then you'll have to try and it out on a real phone to see if the latency performance is good enough for your purposes.

Bluetooth debugging tools

Linux has hcidump which is a very handy tool for debugging bluetooth problems.
Can anyone recommend similar tools for Windows? I'd also be interested in other tools for Linux if anyone knows anything good.
I'm trying to investigate why my BT device disconnects after a couple of seconds. I expect its a crappy mini-dongle, but would like to find out more about where the disconnection originated from.
You can capture the USB interface with a Windows USB sniffer, e.g. Usbtrace or Usblyzer and convert the captured output to btsnoop file format which can then be loaded and analyzed in Wireshark or FTS4BT viewer (free tool from ww.fte.com).
I don't think that you have something similar for Windows desktop, but for Windows CE there is a tool called BTDC Tool. If you read Wireshark wiki they say that there isn't something for Windows: http://wiki.wireshark.org/CaptureSetup/Bluetooth and http://wiki.wireshark.org/Bluetooth
You could capture the traffic, by going deep into the driver, but for this you should study the Windows DDK. It allows you to add extensions of your own.

Auto Detect Windows Mobile Device programmatically

I am writing a windows application (written entirely in C++) which reads files from a storage card on a mobile phone running Windows Mobile. The tough part is, I don't know how to make my application detect the event that a user has connected the mobile phone to the USB of laptop. I did some reading on MSDN and have written a small code using RegisterDeviceNotification, which detects whenever a USB disk is attached/removed from the laptop. However, I am unable to tweak this to make it work for phone type devices. Please help me out through any links/tutroials which explains this(preferrably C++, as I don't know .NET or C#).
Thanks
Alok
According to this article you can use RegisterDeviceNotification to get notifications when activesync detects a device has been plugged/unplugged. (See option 3 at the end of the article)
It may just be a matter of setting up the correct notification filter.
Windows Mobile devices use RNDIS, a network interface protocol behind the scenes. Hence, the RegisterDeviceNotification method still works, but you're looking for a DEV_BROADCAST_DEVICEINTERFACE, not DEV_BROADCAST_VOLUME. (i.e. dbch_devicetype==DBT_DEVTYP_DEVICEINTERFACE)
You can use RAPI or RAPI2 to detect when a Windows Mobile device connects to a PC via Active Sync or Windows Mobile Device Center. RAPI can also be used to read the files on the storage card and much more.
RAPI is simpler to program because it is a C based API. RAPI2 has more functionality than RAPI, but is an object oriented COM API. If your needs are simple and you only care about one device/connection at a time then RAPI is good enough. There are two RAPI functions used to detect connections: CeRapiInit (blocking), and CeRapiInitEx (signals an event upon connection).

Resources