Migrate from Bing Speech to the Speech service
Use this article to migrate your applications from the Bing Speech API to the Speech service.
This article outlines the differences between the Bing Speech APIs and the Speech service, and suggests strategies for migrating your applications. Your Bing Speech API subscription key won't work with the Speech service; you'll need a new Speech service subscription.
A single Speech service subscription key grants access to the following features. Each is metered separately, so you're charged only for the features you use.
- Custom speech-to-text
- Custom text-to-speech voices
- Speech translation (does not include Text translation)
The Speech SDK is a functional replacement for the Bing Speech client libraries, but uses a different API.
Comparison of features
The Speech service is largely similar to Bing Speech, with the following differences.
|Feature||Bing Speech||Speech service||Details|
|C# SDK||✔️||✔️||Speech service supports Windows 10, Universal Windows Platform (UWP), and .NET Standard 2.0.|
|C++ SDK||➖||✔️||Speech service supports Windows and Linux.|
|Java SDK||✔️||✔️||Speech service supports Android and Speech Devices.|
|Continuous speech recognition||10 minutes||Unlimited (with SDK)||Both Bing Speech and Speech service WebSockets protocols support up to 10 minutes per call. However, the Speech SDK automatically reconnects on timeout or disconnect.|
|Partial or interim results||✔️||✔️||With WebSockets protocol or SDK.|
|Custom speech models||✔️||✔️||Bing Speech requires a separate Custom Speech subscription.|
|Custom voice fonts||✔️||✔️||Bing Speech requires a separate Custom Voice subscription.|
|Speech intent recognition||Requires separate LUIS API call||Integrated (with SDK)||You can use a LUIS key with the Speech service.|
|Simple intent recognition||➖||✔️|
|Batch transcription of long audio files||➖||✔️|
|Recognition mode||Manual via endpoint URI||Automatic||Recognition mode is not available in the Speech service.|
|Endpoint locality||Global||Regional||Regional endpoints improve latency.|
|REST APIs||✔️||✔️||The Speech service REST APIs are compatible with Bing Speech (different endpoint). REST APIs support text-to-speech and limited speech-to-text functionality.|
|WebSockets protocols||✔️||✔️||The Speech service WebSockets API is compatible with Bing Speech (different endpoint). Migrate to the Speech SDK if possible, to simplify your code.|
|Service-to-service API calls||✔️||➖||Provided in Bing Speech via the C# Service Library.|
The Speech service uses a time-based pricing model (rather than a transaction-based model). See Speech service pricing for details.
If you or your organization have applications in development or production that use a Bing Speech API, you should update them to use the Speech service as soon as possible. See the Speech service documentation for available SDKs, code samples, and tutorials.
The Speech service REST APIs are compatible with the Bing Speech APIs. If you're currently using the Bing Speech REST APIs, you need only change the REST endpoint, and switch to a Speech service subscription key.
The Speech service WebSockets protocols are also compatible with those used by Bing Speech. We recommend that for new development, you use the Speech SDK rather than WebSockets. It's a good idea to migrate existing code to the SDK as well. However, as with the REST APIs, existing code that uses Bing Speech via WebSockets requires only a change in endpoint and an updated key.
If you're using a Bing Speech client library for a specific programming language, migrating to the Speech SDK requires changes to your application, because the API is different. The Speech SDK can make your code simpler, while also giving you access to new features. The Speech SDK is available in a wide variety of programming languages. APIs on all platforms are similar, easing multi-platform development.
The Speech service doesn't offer a global endpoint. Determine if your application functions efficiently when it uses a single regional endpoint for all of its traffic. If not, use geolocation to determine the most efficient endpoint. You need a separate Speech service subscription in each region you use.
If your application uses long-lived connections and can't use an available SDK, you can use a WebSockets connection. Manage the 10-minute timeout limit by reconnecting at the appropriate times.
To get started with the Speech SDK:
- Download the Speech SDK.
- Work through the Speech service quickstart guides and tutorials. Also look at the code samples to get experience with the new APIs.
- Update your application to use the Speech service.
For Speech service, SDK, and API support, visit the Speech service support page.