UNPKG

watson-speech

Version:

IBM Watson Speech to Text and Text to Speech SDK for web browsers.

116 lines (89 loc) 4.26 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>JSDoc: Source: recognize-blob.js</title> <script src="scripts/prettify/prettify.js"> </script> <script src="scripts/prettify/lang-css.js"> </script> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css"> <link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css"> </head> <body> <div id="main"> <h1 class="page-title">Source: recognize-blob.js</h1> <section> <article> <pre class="prettyprint source linenums"><code>/** * Copyright 2015 IBM Corp. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict'; var BlobStream = require('readable-blob-stream'); var RecognizeStream = require('./recognize-stream.js'); var FilePlayer = require('./file-player.js'); var FormatStream = require('./format-stream.js'); var TimingStream = require('./timing-stream.js'); /** * Create and return a RecognizeStream from a File or Blob * (e.g. from a file &lt;input>, a dtagdrop targe, or an ajax request) * * @param {Object} options - Also passed to {MediaElementAudioStream} and to {RecognizeStream} * @param {String} options.token - Auth Token - see https://github.com/watson-developer-cloud/node-sdk#authorization * @param {Blob|File} options.data - the raw audio data as a Blob or File instance * @param {Boolean} [options.play=false] - If a file is set, play it locally as it's being uploaded * @param {Boolena} [options.format=true] - pipe the text through a {FormatStream} which performs light formatting * @param {Boolena} [options.realtime=options.play] - pipe the text through a {TimingStream} which slows the output down to real-time to match the audio playback. * * @returns {RecognizeStream} */ module.exports = function recognizeBlob(options) { if (!options || !options.token) { throw new Error("WatsonSpeechToText: missing required parameter: opts.token"); } var recognizeStream = new RecognizeStream(options); var stream = new BlobStream(options.data).pipe(recognizeStream); if (options.format !== false) { stream = stream.pipe(new FormatStream(options)); } if (options.realtime || typeof options.realtime === 'undefined' &amp;&amp; options.play) { stream = stream.pipe(new TimingStream(options)); start = Date.now(); } if (options.play) { FilePlayer.playFile(options.data).then(function (player) { recognizeStream.on('stop', player.stop.bind(player)); }).catch(function (err) { recognizeStream.emit('playback-error', err); }); } return stream; }; </code></pre> </article> </section> </div> <nav> <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="FormatStream.html">FormatStream</a></li><li><a href="MediaElementAudioStream.html">MediaElementAudioStream</a></li><li><a href="RecognizeStream.html">RecognizeStream</a></li><li><a href="TimingStream.html">TimingStream</a></li><li><a href="WebAudioL16Stream.html">WebAudioL16Stream</a></li></ul><h3>Events</h3><ul><li><a href="RecognizeStream.html#event:connection-close">connection-close</a></li><li><a href="RecognizeStream.html#event:data">data</a></li><li><a href="RecognizeStream.html#event:error">error</a></li><li><a href="RecognizeStream.html#event:results">results</a></li></ul> </nav> <br class="clear"> <footer> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.4.0</a> on Mon Feb 08 2016 19:56:04 GMT+0000 (UTC) </footer> <script> prettyPrint(); </script> <script src="scripts/linenumber.js"> </script> </body> </html>