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 Services, 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 Services subscription.
A single Speech Services 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 Services are largely similar to Bing Speech, with the following differences.
|Feature||Bing Speech||Speech Services||Details|
|C++ SDK||➖||✔️||Speech Services supports Windows and Linux.|
|Java SDK||✔️||✔️||Speech Services supports Android and Speech Devices.|
|C# SDK||✔️||✔️||Speech Services supports Windows 10, Universal Windows Platform (UWP), and .NET Standard 2.0.|
|Continuous speech recognition||10 minutes||Unlimited (with SDK)||Both Bing Speech and Speech Services 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 Speech Service.|
|Endpoint locality||Global||Regional||Regional endpoints improve latency.|
|REST APIs||✔️||✔️||The Speech Services 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 Services 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.|
|Open source SDK||✔️||➖|
The Speech Services use a time-based pricing model (rather than a transaction-based model). See Speech Services 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 Services as soon as possible. See the Speech Services documentation for available SDKs, code samples, and tutorials.
The Speech Services 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 Services subscription key.
The Speech Services 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 Services don'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 Services 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 Services quickstart guides and tutorials. Also look at the code samples to get experience with the new APIs.
- Update your application to use the Speech Services.
For Speech Service, SDK, and API support, visit the Speech Services support page.