Following up on the promise to make Bing into a platform that developers can use to improve their apps, Microsoft has released new controls for speech recognition, OCR and translation.
The whole "Bing as platform" idea is a little strange. Bing used to be a search engine, now it seems to be developing into something like Google Play Services. Earlier in the month the Bing Maps SDK was updated to make it easier for Windows Store Apps or WinRT apps to make use of maps. Now we have a set of new XAML controls which add speech recognition, OCR and translation.
The first question is what is a XAML control?
It appears that this is Microsoft's way of saying it's a WinRT control. You can't use any of these new controls in a classic .NET desktop application - well you probably can, but it isn't straightforward and it isn't going to be supported. The announcement makes it very clear that the new features target Windows 8/ 8.1 or WP8 only, but you have to look more carefully to discover that this rules out desktop app use.
Microsoft's publicity stresses the way that these new controls can be used together to build an app that does it all - listens to what you say, translates it into another language and then reads the terms and conditions of using the app. This is all true, but what if you don't want to just create a WinRT or Windows Store App?
Windows has had a managed code speech recognition API since Windows XP (it is currently at version 5.4). For OCR there is no Microsoft API for general apps or web sites, only third party products. The Microsoft Translator API is also available from the Azure Data Marketplace and this can be used to build ASP.NET and managed applications. You can also use Web widget, AJAX, HTTP, SOAP, or OData and it has the same 2 million character limits.
The new controls fit in well with Microsoft becoming a services and devices company. It really only has competition from Google in the translation service and Google doesn't offer a free quota. Google does have an OCR API, but it is part of Google Docs and not so generally applicable and the only speech recognition API that is supported is part of the Chrome browser. So it seems Microsoft is currently better at getting its advanced technology out to the programmer.
The big problem is that Microsoft is being selective about what technologies its services support - i.e. WinRT. A true "services" company would be attempting to get its services as widely used as possible and not using them as a lever to make its OS look more attractive.