{"_id":"@bottlenose/rxtranscribe","_rev":"7-e6907d4f092569ee2f0c6bbb72d59a37","name":"@bottlenose/rxtranscribe","dist-tags":{"canary":"0.7.1-beta.1","latest":"0.7.0"},"versions":{"0.2.1-beta.3":{"name":"@bottlenose/rxtranscribe","version":"0.2.1-beta.3","description":"👂 Realtime speech-to-text (S2T) transcription with AWS Transcribe and RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"type":"module","bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.2.1-beta.3+9c29114","lodash":"^4.17.15","qs":"^6.9.1","rxjs":"^6.5.4"},"browserslist":[],"scripts":{"build":"rm -rf ./build/* && babel ./src -d ./build --ignore *.test.js","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build"},"gitHead":"9c29114e43a42d5c0caa41a3e4e1d457e8d84f4f","_id":"@bottlenose/rxtranscribe@0.2.1-beta.3","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-lnXGF5hLj0Dfdt7WMJ03h2I6Ud7gzaDE0ZVVzROHagb9iJOWCO1j81TSYg4VLJR40aOFHkW4k3+v/b8Jx+23og==","shasum":"edb9dd454796d3c69fdcf05511d0d1fb64705e33","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.2.1-beta.3.tgz","fileCount":14,"unpackedSize":16209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeJw5XCRA9TVsSAnZWagAAb9gP/0qYJM7xX0FKvPwPEB+t\n3073b2/6QZwWoAV6e4E8ADQ+I/6tMMgLrB/BxA39ctRMoTPlgy+c+v++P15/\nQ+5sC1LRHKiKGxm/wJEsrZux9UHJvbqW/+XdTvmNU+dUps9W6mog9R4Mjp5U\nXSNMyfKmfdGoBsUmHYYtc06r+PsXUK/lMeoqWGqsY8VlPh2hZB5e3DTUyZwn\nKh6CQXJS8u3sGezl+Gqsjl8O441dJsVEAEKS4zhoLKVF2YvosPl7NlU93TuW\nPibNf6dnb7kVmGbiNNPdIIducN+PlqGY2sI72HLcHL+LujORimupgyrTutzh\nCcLs+R3wdGeqNm/obmwG/QmGH4gCZqHsJlrmjKp6fdxpewg+8cP8YaSmC3DJ\nGIU8mKf9Xcsr2L+YmZ0sGZ2m+4aVeVtq3RODvYI6pHANvA7fiBo1mu8bM6aM\nGWsXZCK3QVxpO8LItGlUkNnj2FfoOgnjcHEXLTZ6XqZNBawV94TIQUn2wjAW\nIYpxHcK8hvN9jhy0L9Mvy6Il60dBCF38vkXcuZC/JSeXzvu3zrFxsJOtmKtx\ndtgXmcRixCJuHR42hs2ozi4/D4R0uSyna0sxUTpfnuVW5FHqahsKczVyJBWj\nvVIXPYG8CYrfoNpRJZs7wifLBWwuxHVq65IgWp9PE+grYA8hB2D8DcdkC5zu\nx1j8\r\n=4GBa\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCID61FVwaVE9iHLzgsjiSkyPHEGIRKWVwZin6u9r8GedYAiEAjWI1oGuSIUkhg6jBUNZ48OInWElbvuR1WsCmhixvkbA="}]},"maintainers":[{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.2.1-beta.3_1579617878719_0.02770901710002205"},"_hasShrinkwrap":false},"0.6.0":{"name":"@bottlenose/rxtranscribe","version":"0.6.0","description":"👂 Realtime speech-to-text (S2T) transcription with AWS Transcribe and RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"type":"module","bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.6.0","lodash":"^4.17.15","qs":"^6.9.1","rxjs":"^6.5.4"},"devDependencies":{"@bottlenose/rxfs":"^0.6.0","optimist":"^0.6.1","prompt":"^1.0.0"},"browserslist":[],"scripts":{"build":"rm -rf ./build/* && babel ./src -d ./build --ignore *.test.js","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build","demo:run":"BABEL_ENV=script yarn babel-node --config-file ../../babel.config.js ./demo/runDemo.js"},"gitHead":"1965941211ad529a5067910f43ba2c782cbbb5ac","readme":"[![CircleCI](https://circleci.com/gh/buccaneerai/bottlenose/tree/master.svg?style=shield)](https://circleci.com/gh/buccaneerai/bottlenose/tree/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n<a href=\"https://www.npmjs.com/package/@bottlenose/rxtranscribe\">\n  <img src=\"https://img.shields.io/npm/v/@bottlenose/rxtranscribe.svg\" alt=\"Version\">\n</a>\n\n## Description\nThis package allows real-time speech-to-text (S2T) functionality using a WebSocket which streams audio data to AWS Transcribe. Two reasons why the team at [Buccaneer](https://www.buccaneer.ai) decided to write a package for it:\n\n1. At the time this was written in Fall 2019, the [Transcribe API](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/TranscribeService.html) in `aws-sdk` did not support real-time audio streaming and Amazon did not provide an official JavaScript client for real-time subscription.  For many speech-to-text use cases, real-time transcription is mandatory.  (**Tip**: If your goal is to transcribe an audio file in its entirety and you can wait for the entire file to be processed, then you can use the `aws-sdk` and you don't need this library!)\n\n2. This implementation makes it easy to plug AWS Transcribe into [RxJS 6](https://rxjs-dev.firebaseapp.com/api) pipelines.\n\n3. This package encapsulates the business logic of AWS Transcribe streaming into a separate `npm` package so that applications can focus on what they're good at and don't need to worry about the internals of how AWS Transcribe processes audio data streams.\n\n## Installation\n```bash\nyarn add @bottlenose/rxtranscribe\n```\n\n```bash\nnpm i --save @bottlenose/rxtranscribe\n```\n\n## Compatibility\n\n|Platform|Support|\n|--------------|:-----------:|\n|node.js (>10.8)|✅|\n|Browsers|❓|\n|React Native|❓|\n|Electron|❓|\n\n💡 This package has only been tested in the node.js environment.  If it doesn't work isomorphically, it could probably be modified to do so without much effort.  The authors haven't one so because running it on client devices does not seem like an advisable design for production situations.  But if you want to take a stab at implementing isomorphic support, [contact us](mailto:opensource@buccaneer.ai)!\n\n## Basic Usage\n```javascript\nimport { transcribe } from '@bottlenose/rxtranscribe';\n\n// The pipeline takes a stream of .wav audio chunks (Buffer, String, Blob or Typed Array)\nconst buffer$ = chunk$.pipe(\n  map(chunkStr => Buffer.from(chunkString, 'base64')),\n  transcribe({})\n);\n```\n\n💡 One limitation of the current package is that it currently only supports `.wav` files as inputs, which are [encoded as](https://cloud.google.com/speech-to-text/docs/encoding) .mp4 files.  It would be nice to support a wider variety of file types.  If you know how to do this and want to help implement this functionality, please [contact us](opensource@buccaneer.ai).\n\n## Documentation & Guides\n- [Documentation](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe)\n- [Full list of operators](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/operators)\n- [Guides](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/guides)","readmeFilename":"README.md","_id":"@bottlenose/rxtranscribe@0.6.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-dxZWMcZCGgW/m3qB5wGw/gIW3qPVIHk+4TJbV74qmjfm2ZkFfkce1vGI6+wzT9/LfCNwYtS/qbaNYeV74Oa40g==","shasum":"459f4608ddb3f3b380da53a9dbedae3c61b027f0","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.6.0.tgz","fileCount":16,"unpackedSize":20768,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJei3FSCRA9TVsSAnZWagAA1KwQAJ3r/D1+PE+JOmpIHTYr\nj9HdCKappdSpQIyqyGp7crqETXFX1IAS4F5+hhHwhk2HixgR+7FpPZ28SdQv\nlSKN4Oz2n4xsvJZJetaIvjkCGnBM1EQ/CTyzY1mTZR70ipIselr++Mrq1tPu\ndH+BkX+MBGq0rSWi6KYfRPUQsxRcnJLZM+nY0MED9jqX0WPaupT1WYbuMvRh\nYiTCDpYncLY8P6iKzWFEMLdUeI2mJ1QlcEV5LMsf6ola6tsc9J3YobBzsktC\nuVNsw1s93N/ai7mK+qQz6Y/lg21kvmI/71ydgvtO/F+tRDxLemggWxuefHvS\nvoA5eqb3N+L2YeWvR9RX6RyNSoTwuMfBiHr6fM3nJwHsAO0qQqkp//aI9cdF\nj62W/jpoogLlZkwZYjG6C+dRvBE6ouLGlscyl4C4qHzdgH8vDJg3mFXWZkeH\nnTADDow8hS1eTXOl3fAkjb/AuGZVR82jy9prtT7uPTlsBp+0WbwGqGgghRJo\n+wWmPMDpJk2RsLZmkIXOjt7i33muDxILwA0v0WHyZSVbuxWUYHo//tRuylAs\npLb52GwccudbXc/DeZKhEi2DH54wXcMywPWOncxderLQI0S3EAY6rZCKlUtl\njUUded+Af4rMEicDRBje4ioIwsnAVJSWG6boZEnFeGNg97e9rc8F+QlkuRJx\n+SF8\r\n=DwzP\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDj1F2CJ+vb89JeW1zH4VUA+LBtkxRLSjH2XfggEmPRpAIhAOnkPTyyYufozsBejmiQoFJuo0xt4cXK9JGCdoofa6SG"}]},"maintainers":[{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.6.0_1586196818322_0.365418394140133"},"_hasShrinkwrap":false},"0.1.1-beta.19":{"name":"@bottlenose/rxtranscribe","version":"0.1.1-beta.19","description":"👂 Realtime speech-to-text (S2T) transcription with RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.1.1-beta.19+071a6b4","deepspeech":"^0.6.1","lodash":"^4.17.15","qs":"^6.9.1","rxjs":"^6.5.4"},"devDependencies":{"@bottlenose/rxfs":"^0.1.1-beta.19+071a6b4","optimist":"^0.6.1","prompt":"^1.0.0"},"browserslist":[],"scripts":{"build":"BABEL_ENV=build babel src --out-dir build --source-maps --extensions .js --config-file ../../babel.config.js --delete-dir-on-start --no-comments","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build","demo:run":"yarn build && BABEL_ENV=build yarn babel-node --config-file ../../babel.config.js ./demo/runDemo.js"},"gitHead":"071a6b4e557dd18ed7591ad2da5ba4cb7316e9a6","readme":"[![CircleCI](https://circleci.com/gh/buccaneerai/bottlenose/tree/master.svg?style=shield)](https://circleci.com/gh/buccaneerai/bottlenose/tree/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n<a href=\"https://www.npmjs.com/package/@bottlenose/rxtranscribe\">\n  <img src=\"https://img.shields.io/npm/v/@bottlenose/rxtranscribe.svg\" alt=\"Version\">\n</a>\n\n## Description\nThis package allows real-time speech-to-text (STT) functionality to be performed on audio streams.  It offers numerous strategies for how the STT can be performed including the following pipelines: the opensource [DeepSpeech]() architecture, the [Amazon Transcribe API](https://aws.amazon.com/transcribe/) and [Google Speech-to-text API](https://cloud.google.com/speech-to-text/).\n\nCurrently, audio can be passed in as a stream of Buffer objects containing audio data encoded using one of the following \n\n## Installation\n```bash\nyarn add @bottlenose/rxtranscribe\n```\n\n```bash\nnpm i --save @bottlenose/rxtranscribe\n```\n\n### DeepSpeech\nTo run the DeepSpeech pipeline, [download the DeepSpeech model](https://github.com/mozilla/DeepSpeech/releases), unzip it and pass the model directory to the `toDeepSpeech` operator like this: `toDeepSpeech({modelDir: 'path/to/deepseech-models-0.7.0'})`.\n\n### AWS Transcribe\nTo run the AWS Transcribe pipeline, you'll need a valid ACCESS_KEY_ID and SECRET_ACCESS_KEY with permissions to run AWS Transcribe.\n\n### GCP Speech-to-text\n- To run the GCP speech-to-text pipeline, you'll need a valid JSON file containing GCP credentials. \n- The project will need to have the speech-to-text API enabled.\n- You may need to set [GOOGLE_APPLICATION_CREDENTIALS environment variable](https://cloud.google.com/docs/authentication) so that it contains the path of your credentials file.\n\n:bulb: In the future, it would be nicer to have an npm library that can install Sox so that `yarn install` would handle all the dependencies.\n\n## Compatibility\n\n|Platform|Support|\n|--------------|:-----------:|\n|node.js (>12)|✅|\n|Browsers|❓|\n|React Native|❓|\n|Electron|❓|\n\n💡 This package has only been tested in the node.js environment.  If it doesn't work isomorphically, it could probably be modified to do so without much effort.  The authors haven't done so because running it on client devices does not seem like an advisable design for production situations.  But if you want to take a stab at implementing isomorphic support, [contact us](mailto:opensource@buccaneer.ai)!\n\n## Basic Usage\n```javascript\nimport {map} from 'rxjs/operators';\nimport {toDeepSpeech} from '@bottlenose/rxtranscribe';\n\n// The pipeline takes a stream of .wav audio chunks (Buffer, String, Blob or Typed Array)\nconst buffer$ = pcmChunkEncodedAs16BitIntegers$.pipe(\n  map(chunk => Buffer.from(chunk, 'base64')),\n  toDeepSpeech({modelDir: '/path/to/deepspeech-models-0.7.0'})\n);\n```\n\n## Documentation & Guides\n- [Documentation](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe)\n- [Full list of operators](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/operators)\n- [Guides](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/guides)\n- [Introduction to audio data](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_concepts)","readmeFilename":"README.md","_id":"@bottlenose/rxtranscribe@0.1.1-beta.19","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-jVFJBbd8K3ItjbN6buRJ/51Yj8119KB0AlxlvnmonuRd8DCttWF2jzZ8aYYwdEGDIzVRldTT/Ow4imU72AyPQQ==","shasum":"b0954bcf4be22b9bb815de3861afcf955b34ab9f","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.1.1-beta.19.tgz","fileCount":35,"unpackedSize":50190,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeq4EYCRA9TVsSAnZWagAAChYP/09ztUt9C/Zz3tX+zw/g\ngdTTrm+8oEdZVLcs0B+SPSVUpxj1khVupOevrA0GsKYSAxkXZZml/6uSYOmV\nvGCm/M4PDDigB2/VNOhdeHJZS5L58vJKjJKFDosfJf/kzlmcuT8jK/XsJT/i\nCavStb9H5JpDlJfuSwc1uG9bNGIofCOgEDc9bOFRe7kPkp7G3BlxZwUdeJJv\nBhdu9ZP1eA0oGGiponcxAaMbk2VO1r1vP5L5MTqQkdjvYREG2Pi0VEQpAuAK\nRQYAk7SL1wuyI1iuPO+vljFLLYLPEhB1l9wDSgnEUq3AmtkSf9YlvoUYdA5r\nY6hznl3bx2UnoEmX9eTB7EBAn/45sdH0JToDCsYDADTb1JS38pzr8fBfEqD6\nwaxAtn6Z7QAF7cGb03WLa1uydZ2VJKRkw3LbM9og4yqQkwEIuqhUm6vK3UYw\nCc6+1wNkUWmQ3iqOxUey1LMfglAQw+QYxsGLQ20sRaQXOO83G/mzeOn/K/YV\nn/3TID/ol/Vqo3gYtG5zCQHLfl7q9UTp97PXGXb6JWN0GJ3H8n2WzTh21NTg\nEEVyJDsifh9Kol71wV5Sb0sOtEg6MiM8Iguoalkc8aMkBwtnTZW5TMv26iGq\nMQPP7SVSl20qALDnzVeCoPTBCrMTbqyRNj6eNqkK46+AU5ghXPlImijzCH2H\npA9G\r\n=4x81\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC3KnuAeTCryweOzxXrkXVHDg63fnlDWF9uQr881E/PdQIhAOBdAfmtY7ak0bIA9q/fXDzugWuIiWgaz3CHxyZsKCtu"}]},"maintainers":[{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.1.1-beta.19_1588298008518_0.5508479723006454"},"_hasShrinkwrap":false},"0.7.1-beta.0":{"name":"@bottlenose/rxtranscribe","version":"0.7.1-beta.0","description":"👂 Realtime speech-to-text (S2T) transcription with RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.7.0","@google-cloud/speech":"^3.6.0","deepspeech":"0.7.4","lodash":"^4.17.15","node-vad":"^1.1.4","qs":"^6.9.1","rxjs":"^6.5.4"},"devDependencies":{"@bottlenose/rxfs":"^0.7.0","moment":"^2.26.0","optimist":"^0.6.1","prompt":"^1.0.0"},"browserslist":[],"scripts":{"build":"BABEL_ENV=build babel src --out-dir build --source-maps --extensions .js --config-file ../../babel.config.js --delete-dir-on-start --no-comments","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build","demo:run":"yarn build && BABEL_ENV=build yarn babel-node --config-file ../../babel.config.js ./demo/runDemo.js"},"gitHead":"013e5277a9622ae0f0c7a0952e1417371992d83f","readme":"[![CircleCI](https://circleci.com/gh/buccaneerai/bottlenose/tree/master.svg?style=shield)](https://circleci.com/gh/buccaneerai/bottlenose/tree/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n<a href=\"https://www.npmjs.com/package/@bottlenose/rxtranscribe\">\n  <img src=\"https://img.shields.io/npm/v/@bottlenose/rxtranscribe.svg\" alt=\"Version\">\n</a>\n\n## Description\nThis package allows real-time speech-to-text (STT) functionality to be performed on audio streams.  It offers numerous strategies for how the STT can be performed including the following pipelines: the opensource [DeepSpeech]() architecture, the [Amazon Transcribe API](https://aws.amazon.com/transcribe/) and [Google Speech-to-text API](https://cloud.google.com/speech-to-text/).\n\nCurrently, audio can be passed in as a stream of Buffer objects containing audio data encoded using one of the following \n\n## Installation\n```bash\nyarn add @bottlenose/rxtranscribe\n```\n\n```bash\nnpm i --save @bottlenose/rxtranscribe\n```\n\n### DeepSpeech\nTo run the DeepSpeech pipeline, [download the DeepSpeech model](https://github.com/mozilla/DeepSpeech/releases), unzip it and pass the model directory to the `toDeepSpeech` operator like this: `toDeepSpeech({modelDir: 'path/to/deepseech-models-0.7.0'})`.\n\n### AWS Transcribe\nTo run the AWS Transcribe pipeline, you'll need a valid ACCESS_KEY_ID and SECRET_ACCESS_KEY with permissions to run AWS Transcribe.\n\n### GCP Speech-to-text\n- To run the GCP speech-to-text pipeline, you'll need a valid JSON file containing GCP credentials. \n- The project will need to have the speech-to-text API enabled.\n- You may need to set [GOOGLE_APPLICATION_CREDENTIALS environment variable](https://cloud.google.com/docs/authentication) so that it contains the path of your credentials file.\n\n:bulb: In the future, it would be nicer to have an npm library that can install Sox so that `yarn install` would handle all the dependencies.\n\n## Compatibility\n\n|Platform|Support|\n|--------------|:-----------:|\n|node.js (>12)|✅|\n|Browsers|❓|\n|React Native|❓|\n|Electron|❓|\n\n💡 This package has only been tested in the node.js environment.  If it doesn't work isomorphically, it could probably be modified to do so without much effort.  The authors haven't done so because running it on client devices does not seem like an advisable design for production situations.  But if you want to take a stab at implementing isomorphic support, [contact us](mailto:opensource@buccaneer.ai)!\n\n## Basic Usage\n```javascript\nimport {map} from 'rxjs/operators';\nimport {toDeepSpeech} from '@bottlenose/rxtranscribe';\n\n// The pipeline takes a stream of .wav audio chunks (Buffer, String, Blob or Typed Array)\nconst buffer$ = pcmChunkEncodedAs16BitIntegers$.pipe(\n  map(chunk => Buffer.from(chunk, 'base64')),\n  toDeepSpeech({modelDir: '/path/to/deepspeech-models-0.7.0'})\n);\n```\n\n## Documentation & Guides\n- [Documentation](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe)\n- [Full list of operators](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/operators)\n- [Guides](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/guides)\n- [Introduction to audio data](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_concepts)","readmeFilename":"README.md","_id":"@bottlenose/rxtranscribe@0.7.1-beta.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-Q9jpdPcr9egtO6vSxszQJwZmTsoervSL0ku9U5nuh09HuSyrxccpBCOnXx96gYwxeDmuqocvQfdFX2xeWj8VrA==","shasum":"2d54be07b49de00a9f5172e24e272eff8967c45e","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.7.1-beta.0.tgz","fileCount":35,"unpackedSize":69993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO/IDCRA9TVsSAnZWagAAAR8P+wWgMVh++MsKHTq2be2n\n+f9sNjSy/f5Y8GR0H9HZ/HzdkbmFXtcEHPeCjiGKJ7UHJLCylRWguRmKb0tD\ndKdRM3MhE3YwWccxU5qxkKdhGqxdheqOGH+DRZcxOYryPmQ+NiBh1m9Oh9lF\nhHSmBHYkpWypLXNVGgXO8pw4fqavVaY+bzkcSpKS8kfu3X6cYY9QRaZqozXm\nHo/4U8to6hpVesJSYzQnC9TLuTBBd8YCyDJwrqSZRdsFQZ45rxtLlyQj9W+W\nO4npPn/nrbyfBKEBLlqg/raF82kP599yIFEf6claLYR3ra/BHJ13uEZKRNeV\nAkMoytz16O0lT7NLBtL14k0TpmPKzvbNo6wnu3Tj9E3h6z3DwkB2MeHyMHOB\nU9xRW2LzVTVlqQEAjzyt9g5po/Mq19fyzcHKC3WGqr37xwtzmH0GOlKzQjVC\nXsRaBlkEMPiX2yhgZDQPHNnpCn8k1TkPDvF4irUNehTaTeeOcd8iGCjeuotH\nzFCEn/eOG4K4S221m1byJ+oPrJsJYV6720cSfyuVL6NSCydN/+XPGyrZQdUJ\nOgNg5Ys0963HbAk0nYi3Sj+X5DhPoB4y6iaUvalftq/UzHdzVru/G5/gIgFd\n5Li/T0B2RZ0Z2jvmsC/4ynmSbITqDiHuJ1GqImSbQnyZPNKzhB6Q+Xn+1tNh\n0vPF\r\n=aIe0\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDtJ/MtQaJGBNN49JCzMOvB8eiDlOTE6M72AwBnJqntkQIgKQ1F34aSr5vodcAeazrNSdZ/NmorzeIIPzK+TIeAqvI="}]},"maintainers":[{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.7.1-beta.0_1597764098715_0.3307744618510695"},"_hasShrinkwrap":false},"0.7.1-beta.1":{"name":"@bottlenose/rxtranscribe","version":"0.7.1-beta.1","description":"👂 Realtime speech-to-text (S2T) transcription with RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.7.0","@google-cloud/speech":"^3.6.0","deepspeech":"0.7.4","lodash":"^4.17.15","node-vad":"^1.1.4","qs":"^6.9.1","rxjs":"^6.5.4"},"devDependencies":{"@bottlenose/rxfs":"^0.7.0","moment":"^2.26.0","optimist":"^0.6.1","prompt":"^1.0.0"},"browserslist":[],"scripts":{"build":"BABEL_ENV=build babel src --out-dir build --source-maps --extensions .js --config-file ../../babel.config.js --delete-dir-on-start --no-comments","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build","demo:run":"yarn build && BABEL_ENV=build yarn babel-node --config-file ../../babel.config.js ./demo/runDemo.js"},"gitHead":"d1ea1cd2e26ff03dba47d981c6befc5ef3c82d77","readme":"[![CircleCI](https://circleci.com/gh/buccaneerai/bottlenose/tree/master.svg?style=shield)](https://circleci.com/gh/buccaneerai/bottlenose/tree/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n<a href=\"https://www.npmjs.com/package/@bottlenose/rxtranscribe\">\n  <img src=\"https://img.shields.io/npm/v/@bottlenose/rxtranscribe.svg\" alt=\"Version\">\n</a>\n\n## Description\nThis package allows real-time speech-to-text (STT) functionality to be performed on audio streams.  It offers numerous strategies for how the STT can be performed including the following pipelines: the opensource [DeepSpeech]() architecture, the [Amazon Transcribe API](https://aws.amazon.com/transcribe/) and [Google Speech-to-text API](https://cloud.google.com/speech-to-text/).\n\nCurrently, audio can be passed in as a stream of Buffer objects containing audio data encoded using one of the following \n\n## Installation\n```bash\nyarn add @bottlenose/rxtranscribe\n```\n\n```bash\nnpm i --save @bottlenose/rxtranscribe\n```\n\n### DeepSpeech\nTo run the DeepSpeech pipeline, [download the DeepSpeech model](https://github.com/mozilla/DeepSpeech/releases), unzip it and pass the model directory to the `toDeepSpeech` operator like this: `toDeepSpeech({modelDir: 'path/to/deepseech-models-0.7.0'})`.\n\n### AWS Transcribe\nTo run the AWS Transcribe pipeline, you'll need a valid ACCESS_KEY_ID and SECRET_ACCESS_KEY with permissions to run AWS Transcribe.\n\n### GCP Speech-to-text\n- To run the GCP speech-to-text pipeline, you'll need a valid JSON file containing GCP credentials. \n- The project will need to have the speech-to-text API enabled.\n- You may need to set [GOOGLE_APPLICATION_CREDENTIALS environment variable](https://cloud.google.com/docs/authentication) so that it contains the path of your credentials file.\n\n:bulb: In the future, it would be nicer to have an npm library that can install Sox so that `yarn install` would handle all the dependencies.\n\n## Compatibility\n\n|Platform|Support|\n|--------------|:-----------:|\n|node.js (>12)|✅|\n|Browsers|❓|\n|React Native|❓|\n|Electron|❓|\n\n💡 This package has only been tested in the node.js environment.  If it doesn't work isomorphically, it could probably be modified to do so without much effort.  The authors haven't done so because running it on client devices does not seem like an advisable design for production situations.  But if you want to take a stab at implementing isomorphic support, [contact us](mailto:opensource@buccaneer.ai)!\n\n## Basic Usage\n```javascript\nimport {map} from 'rxjs/operators';\nimport {toDeepSpeech} from '@bottlenose/rxtranscribe';\n\n// The pipeline takes a stream of .wav audio chunks (Buffer, String, Blob or Typed Array)\nconst buffer$ = pcmChunkEncodedAs16BitIntegers$.pipe(\n  map(chunk => Buffer.from(chunk, 'base64')),\n  toDeepSpeech({modelDir: '/path/to/deepspeech-models-0.7.0'})\n);\n```\n\n## Documentation & Guides\n- [Documentation](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe)\n- [Full list of operators](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/operators)\n- [Guides](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/guides)\n- [Introduction to audio data](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_concepts)","readmeFilename":"README.md","_id":"@bottlenose/rxtranscribe@0.7.1-beta.1","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-upTKKyZFW1D3wagmvlxS9Pk4TjDje4DdsJL2/HuxgZ16DnEEcfgfvun0YTvKheyAUhN8OycxFAplSWmZyjFbeg==","shasum":"e065bd9c962e19a781147397439af90f7e0f1363","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.7.1-beta.1.tgz","fileCount":35,"unpackedSize":69993,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfO/UKCRA9TVsSAnZWagAACzoP/3DjSJWQI+Wa0QjR0QrT\nbxqe60cLJem6ZRZ91k7UjOyU2tj317FNt920tBmTOBlp8PcrG1jI0yFU9TRx\nUzZ3ShbCft0IKz9klr+96aSPvlvRHw4/Za/JfKdq3+wF51RE+DB+i9CUG2jN\na5BRdKtZ1xZ/RNiVk0iNBzdhoqnnRmSPooF1bwli3ZA1gxhAy4tLlzXZAtBN\nVuD24he5Pn8Ku7ehB92mBeuoeOhj9f3rMs0G1uQ54ZqXTR2suiIP5cNi7hrj\nv8yhD4JndbXUditYmcG9H4IacVcXewQhHd/CDZVpnIPIIeZ4Zj3WotGtwyjd\nm0BioUGNoX4S7iLtM1rDbvg+8p792xhbhcIXOjVRD2K2lMb/UDYy21Y9R1j5\ne/YynRREuE43c0LpygwEV5/oSmCyOvKu5isN+mRe5tHsWjEqTsJkuYJW76Kw\nynMJ+gdf0SLDMJ+mVVc8DVXiBn1PtPat8bNpGWrpN+XW1qkwmDuBBF1Uursw\na3ieoZnA/TahqeGOwG7zeu+eGYpEmRk2BTtPJAVFrlUMb3U2smrBuvRZ83Qi\nyDKUGkQcsyW0yRf7YUOMyXOBK2jynT2jlnYSEn5hcAA3CQyR6z9uAvXynIdu\nUmbm6cvuF362Vku2y5CW1IH7WZAsu5Ra7p7BLoTHjoFhKRjOTdIS6Z56/gLV\nC1F4\r\n=Eabi\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDNPiiPNEHUSpD/EVnNG5Y6M1j99EagdEMeIvfV7iMGdAiEA764gjsGR8RRP09BJYKG5Uy+55ye6wulMX1W6Pts8F/4="}]},"maintainers":[{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.7.1-beta.1_1597764874350_0.5157612517383072"},"_hasShrinkwrap":false},"0.7.0":{"name":"@bottlenose/rxtranscribe","version":"0.7.0","description":"👂 Realtime speech-to-text (S2T) transcription with RxJS","main":"build/index.js","repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"publishConfig":{"access":"public"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"license":"MIT","private":false,"bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"dependencies":{"@aws-sdk/eventstream-marshaller":"^0.1.0-preview.2","@aws-sdk/util-utf8-node":"^0.1.0-preview.1","@bottlenose/rxws":"^0.7.0","@google-cloud/speech":"^3.6.0","deepspeech":"0.7.4","lodash":"^4.17.15","node-vad":"^1.1.4","qs":"^6.9.1","rxjs":"^6.5.4"},"devDependencies":{"@bottlenose/rxfs":"^0.7.0","moment":"^2.26.0","optimist":"^0.6.1","prompt":"^1.0.0"},"browserslist":[],"scripts":{"build":"BABEL_ENV=build babel src --out-dir build --source-maps --extensions .js --config-file ../../babel.config.js --delete-dir-on-start --no-comments","lint":"eslint -c ../../.eslintrc ./src","test":"mocha --exit ./src/**/*.test.js ./src/*.test.js","test:watch":"yarn test -- --watch","prepublishOnly":"yarn lint && yarn test && yarn build","demo:run":"yarn build && BABEL_ENV=build yarn babel-node --config-file ../../babel.config.js ./demo/runDemo.js"},"gitHead":"231edd3b748bf569af6e54fdc0506390264ef21f","_id":"@bottlenose/rxtranscribe@0.7.0","_nodeVersion":"12.13.0","_npmVersion":"lerna/3.20.2/node@v12.13.0+x64 (darwin)","dist":{"integrity":"sha512-30SApObU6pfQo/jTO4MrnMqovSSYjGekVVrKzOZlb3QaKAggCwhV15sxkPk+NIgI7iQEEIcv6b5MLo6aqBk83Q==","shasum":"c52074027a4bc19a2cfae073a44f4def260e9ad5","tarball":"https://registry.npmjs.org/@bottlenose/rxtranscribe/-/rxtranscribe-0.7.0.tgz","fileCount":35,"unpackedSize":69453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfZSqUCRA9TVsSAnZWagAAYf0P/0JH3lBAV+CtcVTIWS9n\nLLby3kQSD1ZhymdWO/EJLCEbw4wYoNxWM66xO6n4wmR/l422NRbV6NpKsG15\n1KWN6NWUDTzQl4zDknD7eq2QsjdQzktAFW3LZxkvw3jIT65RDpuXGEXBVbfl\nldPToAGKOr8VrG3NgLp1w+3ZzN4bCrpNF+zlb0tVElRqhRgAd48+aQ31tHl+\nhKloy7GwbYKMZBxHLP7Sbex+V8Rce9/havl9gsQ6zwmWbs+1ETDjwesiOdoK\ntK3QnJHgngvoVNzCvCunt91iOMtPyzHjx8UkJUIzvs8AZVm0sBBtNfWFwk2h\nPOkNvLk9mEVWzQ0DdqbCxoX0QJuEBfVHbr03GgMELpXAvd9AMlK5m1LQKEL5\nCR1+J/kpgrXN7uAeWnwRtRwub/WkpUwHV2c0CsBKAlwUpKH/88QdBmLa/1Fs\nJCitD4l8iW44aXqIW+JnRNe1WiehsvQcm9bMGdPvC/8oglOCDxsDJA1YNDht\n7VhoFq3KQLDgjatd4mxX9ZttwK7MeRXJt5t4USICcWkH9YzOQl+Zl2CB3W63\nIMK1gJJuJKR3lcULiTUzZYqOsn7/2fgZThyOUAJC6unSVAvhPwnUyWYeCJK4\nl7n96EO9cKZ/Q9RYoCYkYXNqfdPnxt6hveEzUbkWhI0hGdpmridHAF9tjaJc\n/6n2\r\n=Gaq6\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEC2E4JPajUrKDEYIAX5Hm/yc/y5rU+z+DmMuiS4N0lcAiEAlKFUbBg5QzYWh+vMwbnPX9zhSPOrgz3xdJGfpOTnk7Y="}]},"maintainers":[{"name":"cvhooser","email":"cvhooser@gmail.com"},{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"_npmUser":{"name":"brianbuccaneer","email":"brian@buccaneer.ai"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/rxtranscribe_0.7.0_1600465556142_0.7471162855019353"},"_hasShrinkwrap":false}},"time":{"created":"2020-01-21T14:44:38.498Z","0.2.1-beta.3":"2020-01-21T14:44:38.836Z","modified":"2022-04-04T20:15:29.834Z","0.6.0":"2020-04-06T18:13:38.469Z","0.1.1-beta.19":"2020-05-01T01:53:28.629Z","0.7.1-beta.0":"2020-08-18T15:21:38.853Z","0.7.1-beta.1":"2020-08-18T15:34:34.529Z","0.7.0":"2020-09-18T21:45:56.309Z"},"maintainers":[{"name":"cvhooser","email":"cvhooser@gmail.com"},{"name":"brianbuccaneer","email":"brian@buccaneer.ai"}],"description":"👂 Realtime speech-to-text (S2T) transcription with RxJS","keywords":["speech-to-text","s2t","transcription","transcribe","voice control","speech recognition","AWS","AWS Transcribe","rxjs","reactive","observables","stream","streaming","realtime"],"repository":{"type":"git","url":"https://github.com/buccaneerai/bottlenose/tree/master/packages/rxtranscribe"},"author":{"name":"Buccaneer LLC","email":"opensource@buccaneer.ai"},"bugs":{"url":"https://github.com/buccaneerai/bottlenose/issues"},"license":"MIT","readme":"[![CircleCI](https://circleci.com/gh/buccaneerai/bottlenose/tree/master.svg?style=shield)](https://circleci.com/gh/buccaneerai/bottlenose/tree/master)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n<a href=\"https://www.npmjs.com/package/@bottlenose/rxtranscribe\">\n  <img src=\"https://img.shields.io/npm/v/@bottlenose/rxtranscribe.svg\" alt=\"Version\">\n</a>\n\n## Description\nThis package allows real-time speech-to-text (STT) functionality to be performed on audio streams.  It offers numerous strategies for how the STT can be performed including the following pipelines: the opensource [DeepSpeech]() architecture, the [Amazon Transcribe API](https://aws.amazon.com/transcribe/) and [Google Speech-to-text API](https://cloud.google.com/speech-to-text/).\n\nCurrently, audio can be passed in as a stream of Buffer objects containing audio data encoded using one of the following \n\n## Installation\n```bash\nyarn add @bottlenose/rxtranscribe\n```\n\n```bash\nnpm i --save @bottlenose/rxtranscribe\n```\n\n### DeepSpeech\nTo run the DeepSpeech pipeline, [download the DeepSpeech model](https://github.com/mozilla/DeepSpeech/releases), unzip it and pass the model directory to the `toDeepSpeech` operator like this: `toDeepSpeech({modelDir: 'path/to/deepseech-models-0.7.0'})`.\n\n### AWS Transcribe\nTo run the AWS Transcribe pipeline, you'll need a valid ACCESS_KEY_ID and SECRET_ACCESS_KEY with permissions to run AWS Transcribe.\n\n### GCP Speech-to-text\n- To run the GCP speech-to-text pipeline, you'll need a valid JSON file containing GCP credentials. \n- The project will need to have the speech-to-text API enabled.\n- You may need to set [GOOGLE_APPLICATION_CREDENTIALS environment variable](https://cloud.google.com/docs/authentication) so that it contains the path of your credentials file.\n\n:bulb: In the future, it would be nicer to have an npm library that can install Sox so that `yarn install` would handle all the dependencies.\n\n## Compatibility\n\n|Platform|Support|\n|--------------|:-----------:|\n|node.js (>12)|✅|\n|Browsers|❓|\n|React Native|❓|\n|Electron|❓|\n\n💡 This package has only been tested in the node.js environment.  If it doesn't work isomorphically, it could probably be modified to do so without much effort.  The authors haven't done so because running it on client devices does not seem like an advisable design for production situations.  But if you want to take a stab at implementing isomorphic support, [contact us](mailto:opensource@buccaneer.ai)!\n\n## Basic Usage\n```javascript\nimport {map} from 'rxjs/operators';\nimport {toDeepSpeech} from '@bottlenose/rxtranscribe';\n\n// The pipeline takes a stream of .wav audio chunks (Buffer, String, Blob or Typed Array)\nconst buffer$ = pcmChunkEncodedAs16BitIntegers$.pipe(\n  map(chunk => Buffer.from(chunk, 'base64')),\n  toDeepSpeech({modelDir: '/path/to/deepspeech-models-0.7.0'})\n);\n```\n\n## Documentation & Guides\n- [Documentation](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe)\n- [Full list of operators](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/operators)\n- [Guides](https://buccaneerai.gitbook.io/bottlenose/data-analysis/rxtranscribe/guides)\n- [Introduction to audio data](https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Audio_concepts)","readmeFilename":"README.md"}