Skip to content

Latest commit

 

History

History
402 lines (327 loc) · 28.1 KB

CHANGELOG.md

File metadata and controls

402 lines (327 loc) · 28.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Unreleased]

Changed

[7.1.3] - 2022-11-29

Changed

[7.1.2] - 2022-09-27

Changed

[7.1.1] - 2021-07-20

Changed

[7.1.0] - 2021-02-01

Changed

[7.0.1] - 2020-08-06

Changed

[7.0.0] - 2020-05-27

Breaking changes

  • To enable developers to select their version of Cognitive Services Speech SDK and use newer features, we are moving microsoft-cognitiveservices-speech-sdk to peerDependencies.
    • When you install web-speech-cognitive-services, you will also need to install a compatible version of microsoft-cognitiveservices-speech-sdk.

Changed

[6.3.0] - 2020-03-28

Changed

[6.2.0] - 2020-03-27

Breaking changes

  • Temporarily reverting breaking changes by reintroducing Bing Speech and fetchAuthorizationToken, by @compulim in PR #92.

[6.1.0] - 2020-03-26

Breaking changes

Added

Removed

Changed

[6.0.0] - 2019-12-03

Breaking changes

Unifying options to pass credentials

authorizationToken, region, and subscriptionKey are being deprecated in favor of credentials options. credentials can be one of the following types:

  • { authorizationToken: string, region: string? }
  • { region: string?, subscriptionKey: string }
  • Promise<{ authorizationToken: string, region: string? }>
  • Promise<{ region: string?, subscriptionKey: string }>
  • () => { authorizationToken: string, region: string? }
  • () => { region: string?, subscriptionKey: string }
  • () => Promise<{ authorizationToken: string, region: string? }>
  • () => Promise<{ region: string?, subscriptionKey: string }>

If credentials is a function, it will be called just before the credentials is needed and may be called very frequently. This behavior matches the deprecating authorizationToken. The result of the call is also expected to be cached.

If region is not returned, the default value of "westus" will be used.

Fixed

  • Speech recognition: Removed extraneous finalized result event in continuous mode, by @compulim, in PR #79

Removed

  • 🔥 authorizationToken, region, and subscriptionKey are being deprecated in favor of credentials options, by @compulim in PR #80

Added

  • playground: Add delayed start to playground for testing speech recognition initiated outside of user gestures, in PR #78
  • Speech recognition: New looseEvents option, default is false. When enabled, we will no longer follow observed browser event order. We will send finalized result event as early as possible. This will not break conformance to W3C specifications. By @compulim, in PR #79
  • Speech recognition: Create ponyfill using SpeechRecognizer object from microsoft-cognitiveservices-speech-sdk, by @compulim, in PR #73
  • credentials option is added for obtaining authorization token and region, or subscription key and region, in a single object or function call, by @compulim in PR #80
  • Speech recognition: Polyfill will have abort/stop function set to undefined if the underlying recognizer from Cognitive Services SDK does not support stop/abort, in PR #81

Changed

[5.0.1] - 2019-10-25

Changed

  • Fixed dependences in PR #76
    • bundle package
      • dependencies: Moved eslint to development dependencies
    • component package
      • peerDependencies: No longer requires react
      • dependencies
        • Moved eslint to development dependencies
        • Removed event-target-shim because incompatibility with ES5
      • devDependencies: Removed react
    • Removed import '@babel/runtime' explicitly

[5.0.0] - 2019-10-23

Breaking changes

  • Instead of stopping AudioContext after all pending utterances are finished, the AudioContext is now persisted. If this is not desirable in your application and would like to control the lifetime of AudioContext object, please create your own instance and pass it as an option named audioContext when creating the ponyfill
  • createSpeechServicesPonyfill function is no longer asynchronous
    • Immediate after the ponyfill is created, we will fetch voice list from the services and emit voiceschanged event on completion

Added

  • Speech recognition: Fix #23 and #24, support audiostart/audioend/soundstart/soundend event, in PR #33
  • Speech recognition: Fix #25 and #26, support true abort and stop function, in PR #33
  • Speech recognition: Fix #29, support continuous mode, in PR #33
    • Quirks: in continuous mode, calling stop in-between recognizing and recognized will not emit final result event
  • Speech recognition: New audioConfig option to override the default AudioConfig.fromDefaultMicrophoneInput, in PR #33
  • Speech synthesis: Fix #32, fetch voices from services, in PR #35
  • Speech synthesis: Fix #34, in PR #36 and PR #44
    • Support user-controlled AudioContext object to be passed as an option named audioContext
    • If no audioContext option is passed, will create a new AudioContext object on first synthesis
  • Speech synthesis: If an empty utterance is being synthesized, will play an local empty audio clip, in PR #36
  • Speech recognition: Fix #30, support dynamic phrases, in PR #37
    • Pass it as an array to SpeechRecognition.grammars.phrases
  • Speech recognition: Fix #31, support reference grammars, in PR #37
    • When creating the ponyfill, pass it as an array to referenceGrammars options
  • Speech recognition: Fix #27, support custom speech, in PR #41
    • Use option speechRecognitionEndpointId
  • Speech synthesis: Fix #28 and #62, support custom voice font, in PR #41 and PR #67
    • Use option speechSynthesisDeploymentId
    • Voice list is only fetch when using subscription key
  • Speech synthesis: Fix #48, support output format through outputFormat option, in PR #49
  • *: Fix #47, add enableTelemetry option for disabling collecting telemetry data in Speech SDK, in PR #51 and PR #66
  • *: Fix #53, added ESLint, in PR #54
  • Speech synthesis: Fix #39, support SSML utterance, in PR #57
  • Speech recognition: Fix #59, support stop() function by finalizing partial speech, in PR #60
  • Fix #67, add warning when using subscription key instead of authorization token, in PR #69
  • Fix #70, fetch authorization token before every synthesis, in PR #71

Changed

Fixed

  • Fix #45. Speech synthesize should emit "start" and "error" if the synthesized audio clip cannot be fetch over the network, in PR #46

[4.0.0] - 2018-12-10

Added

  • New playground for better debuggability
  • Support of Speech Services SDK, with automated unit tests for speech recognition
  • Speech recognition: Support stop on Speech Services
  • Speech synthesis: Support pause and resume (with pause and resume event)
  • Speech synthesis: Support speaking property

Changed

  • Ponyfill are now constructed based on options (authorization token, region, and subscription key)
    • A new set of ponyfill will be created every time an option has changed

Fixed

  • Fix #13 Speech recognition: SpeechRecognitionResult should be iterable

[3.0.0] - 2018-10-31

Added

  • Speech Synthesis: Will async fetch speech token instead of throwing exception

Changed

  • Use @babel/runtime and @babel/plugin-tranform-runtime, in favor of babel-polyfill
  • Better error handling on null token
  • Updated voice list from https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/supported-languages
  • Reliability around cancelling a playing utterance
    • Instead of shutting down the AudioContext, we will stop the AudioBufferSourceNode for a graceful stop
  • Simplify speech token authorization
    • recognition.fetchToken = async () => return await 'your subscription key';
    • recognition.fetchToken = createFetchTokenUsingSubscriptionKey('your subscription key');
    • fetchToken will be called every time a token is required, implementor should cache the token as needed
  • Bump to @babel/core@7.1.2 and jest@^23.6.0
  • Bump to react-scripts@2.0.4
  • Publish /packages/component/ instead of /
  • Bump to event-as-promise@1.0.5

[2.1.0] - 2018-07-09

Added

  • Speech priming via custom SpeechGrammarList

[2.0.0] - 2018-07-09

Added

  • SpeechSynthesis polyfill with Cognitive Services

Changed

  • Removed CognitiveServices prefix
    • Renamed CognitiveServicesSpeechGrammarList to SpeechGrammarList
    • Renamed CognitiveServicesSpeechRecognition to SpeechRecognition
    • Removed default export, now must use import { SpeechRecognition } from 'web-speech-cognitive-services';
  • Speech Recognition: changed speech token authorization
    • recognition.speechToken = new SubscriptionKey('your subscription key');

[1.0.0] - 2018-06-29

Added

  • Initial release
  • SpeechRecognition polyfill with Cognitive Services