- Update vulnerable dependencies
- feat(recognize-stream): add new websocket parameter character_insertion_bias
- Update vulnerable dependencies
- Update example dependencies (removed vulenerable express-browserify)
- BREAKING CHANGES INTRODUCED:
- All options parameters for all methods are coverted to be lowerCamelCase
- For example:
access_token
is nowaccessToken
andcontent-type
is nowcontentType
- Response data from the service is not affected by this change
- Add support for guessing .mp3 (via file name & header) & .webm (via filename) content-types
- Re-factored content-type guessing to check filename first, and file header second
- Restore support for environments that pre-date Buffer.from()
- Remove continuous param
- Add support for vorbis, webm
- Send audio earlier - #26
- Add customization support to STT synthesize()
- Fixed bower main file to be unminified instead of minified
- Added bower support
- Switched dist/ bundler from browserify to webpack (saves sevral hundred bytes)
- Added UMD support to dist scripts
- No internal changes
- Added support for a mediaStream argument to recognizeMicrophone() for advanced usages
- Fixed error message when source ends before WebSocket connection is opened.
- added recognizeMicrophone.isSupported flag (checks for getUserMedia, assumes other features will be there if that one is)
- Added setStartTime() method to TimingStream to facilitate syncing wit when files loaded via URL actually begin playing
- Updated recognizeFile() to automatically sync timing stream to playback
- BREAKING: recognizeFile()'s data option renamed to file
- File option may be a string URL. This enables streaming transcription/playback and mobile Safari support.
- Added support for 'X-Watson-Learning-Opt-Out' and 'accept' params in TTS synthesize()
- Prevent RecognizeStream from sending a blank content-type header - now emits an error if content-type is unset and unable to be automatically determined.
- Made SpeakerStream put keywords_result and word_alternatives on the correct result
- Fix regression introduced in v0.23 with playback-error change - transcription now continues after a playback error.
- Significantly simplified TimingStream, fixing one bug in the process
- stream from recognizeMicrophone emits an
end
event when microphone access is not avaliable
- TimingStream rewrite - now emits exact results received from the service, always in the exact order recieved
- old version created extra interim results and could emit speaker_labels before their matching final result in certain circumstances
- emitAt now defaults to END to allow for interim results even when final is cached
- SpeakerStream now emits keywords, alternatives, etc, although sometimes on a slightly earlier result then where the word is mentioned
- SpeakerStream now gracefully handles situations where labels arrive before the matching final result
- Renamed RecognizeStream 'connect' event to 'open' to match 'close' event
- Removed deprecated connection-close event
- Corrected deprecation notices for unsupported events (results, result, speaker_labels, connect, connection-close)
- Tweaked error handling to still fire
end
event when possible - FormatStream: Changed default %HESITATION replacement from '\u2026' (ellipse - ...) to ''
- FormatStream: add space to end of interim transcripts to match service behavior
- SpeakerStream: add speakerlessInterim option to allow faster UI updating
- Workaround for browser bug that was breaking automatic content-type detection in certain cases
- Fixed bug with recognizeStream failing to auto-detect content-type
- RecognizeStream no longer sets any default options
- recognizeMicrophone() and recognizeFile() methods now do set default options that were previously set by RecognizeStream
- added new 'message' event to RecognizeStream that emits any message received over the WebSocket (mainly for debugging and demo usage)
- exposed recognizeStream property on any stream returned from recognizeMicrophone() or recognizeFile() (for debugging)
- Renamed
ResultExtractor
toResultStream
, exposed it in speech-to-text/index.js - Added new SpeakerStream class to split results by speaker
- Added new
resultsBySpeaker
option torecognizeFile()
andrecognizeMicrophone()
to enable SpeakerStream - Fixed a bug in TimingStream where result_indexes would be lost (introduced in v0.22.0)
- Changed file player error.name from
UNRECOGNIZED_FORMAT
toUNSUPPORTED_FORMAT
(There are now two potential errors with this name: the file is recognized but the browser cannot play it, and the file type is not recognized.) - Changed the
playback-error
event to justerror
- Automatically stop file playback in the event of a RecognizeStream error
- Breaking: RecognizeStream now emits the original JSON message rather than the extracted results objects.
- New ResultExtractor stream that can provide the old behavior
- New
extract_results
option on recogniseFile/Microphone enables this. - Removed deprecated
result
andresults
events from RecognizeStream. - Removed
receive-json
event from RecognizeStream because it now duplicates the behavior of thedata
event. - Added support for
speaker_labels
option in RecognizeStream, updated other streams to handle speaker_labels correctly - Added a simple speaker_labels stream-to-console example
- Added support for
X-Watson-Learning-Opt-Out
option in RecognizeStream
- Made FormatStream formatting methods available outside of streaming interface
- Fix looping error propagation when not using FormatStream in recognizeMicrophone
- Fixed broken model query param in STT RecognizeStream
- Fixed bug where errors were not propagated to final stream (#10)
- Fixed bug where RecognizeStream could attempt to send data on non-open WebSocket (#17)
- Fixed bug with ellipses at the ends of sentences
- Documented RecognizeStream's options.token
- Added support for customization_id in SDK (not yet supported in public STT service)
- Added support for STT's
smart_formatting
option
- Enabled interim_results by default for text mode because the service now buffers final results until the end otherwise. (They are not emitted in text mode, just used for the side effect of faster final results.)
- Added examples to log data to console in text and object modes
- Fixed a couple of bugs in .stop() behavior
- Added STT.getModels() method to fetch the list of available voice models
- Added support for STT profanity_filter & documented keywords and words_alternatives options
- Removed
SpeechToText.recognizeElement()
due to quality issues - Added
options.element
to TextToSpeech.synthesize() to support playing through exiting elements - Fixed a couple of bugs in the TimingStream
- Moved getUserMedia shim to a standalone library
- added a python token server example
- Fixed bug where
continuous: false
didn't close the microphone at end of recognition - Added
keepMic
option torecognizeMicrophone()
to prevent multiple permission popups in firefox
- Added
autoPlay
option tosynthesize()
- Added proper parameter filtering to
synthesize()
- renamed
recognizeBlob
torecognizeFile
to make the primary usage more apparent - Added support for
<input>
and<textarea>
elements when using thetargetElement
option (or aWritableElementStream
) - For objectMode, changed defaults for
word_confidence
tofalse
,alternatives
to1
, andtiming
to off unless required forrealtime
option. - Fixed bug with calling
.promise()
onobjectMode
streams - Fixed bug with calling
.promise()
onrecognizeFile({play: true})
- Added ability to write text directly to targetElement, updated examples to use this
- converted examples from jQuery to vanilla JS (w/ fetch pollyfill when necessary)
- significantly improved JSDoc
- Added basic text to speech support
- deprecated
result
events in favor ofobjectMode
. - renamed the
autoplay
option toautoPlay
onrecognizeElement()
(capital P)
- Changed
playFile
option ofrecognizeBlob()
to justplay
, corrected default - Added
options.format=true
torecognize*()
to pipe text through a FormatStream - Added
options.realtime=options.play
torecognizeBlob()
to automatically pipe results through a TimingStream when playing locally - Added
close
andend
events to TimingStream - Added
delay
option toTimingStream
- Moved compiled binary to GitHub Releases (in addition to uncompiled source on npm).
- Misc. doc and internal improvements