{"_id":"@vonage/extend-voice-transcription","_rev":"126-5e8f784d840a7b0e8a2b923f0c254e4b","name":"@vonage/extend-voice-transcription","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@vonage/extend-voice-transcription","version":"0.1.0","author":{"name":"Vonage Dev Rel","email":"devrel@vonage.com"},"license":"Apache-2.0","_id":"@vonage/extend-voice-transcription@0.1.0","maintainers":[{"name":"web-il","email":"web-il@vonage.com"},{"name":"iceberg-team","email":"icebergteam@vonage.com"},{"name":"yinon","email":"yinon.oved@vonage.com"},{"name":"unified_portal","email":"unified_portal_dev@vonage.com"},{"name":"vreporter-npm","email":"vreporter-support@vonage.com"},{"name":"vbcbe","email":"vbc-be@vonage.com"},{"name":"voltateam","email":"joel.graham@vonage.com"},{"name":"voxip_team","email":"voxip-team@vonage.com"},{"name":"gunifydevops","email":"gunifydevops@vonage.com"},{"name":"yuri.guller","email":"gullerya@gmail.com"},{"name":"idanvon","email":"idan.cohen@vonage.com"},{"name":"nexmo-devrel","email":"devrel@vonage.com"},{"name":"vvd","email":"vivid@vonage.com"},{"name":"vonagemeetings","email":"VBC-Meetings@vonage.com"}],"homepage":"https://github.com/Vonage/extend-voice-transcription","bugs":{"url":"https://github.com/Vonage/extend-voice-transcription"},"dist":{"shasum":"88ee0841237585d6272d720630a98183bcb5a9b5","tarball":"https://registry.npmjs.org/@vonage/extend-voice-transcription/-/extend-voice-transcription-0.1.0.tgz","fileCount":13,"integrity":"sha512-o0S4UKUZGb+z8kJEsV6QjpwQP3JzvMGxt5KPQr/ZzQjWh9CGxxGZcoehzAaFiK5ll+NYR/Dp0iGdGGKyca13wg==","signatures":[{"sig":"MEYCIQDpeOcLvHOGEe7yQvHgXhFqaSg1Dey+L/rYVDfRX1ej0wIhAJ6qlpT9YijHY7d4Kz+d0XaCN9Ap5A8V9zx3ZCSA5Qsg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUMXxCRA9TVsSAnZWagAA76AQAIgXA4NFXZ6EMHM2zyaD\nTt0kp3B2TFcyNyn/ULTckGk+7wa/yhzPB/zQGZqAU1/FG+GoP5c/mvkBZN92\nr6OsYyg8y11EzkJm9b+KoPV3gAu2ZUtU9Gh7D/9VYVeAPMEaqaFtpRve8wYk\nf3onmCoqkDFA/cnDE5eMjhMVdOhxpI8zzmNrlaDbl4akXzy306obq8fnH/gZ\nOz9dQ6H9PfvT2fgI6Px/w0jD3GwFgPt+4drQHj4wxfMcxA0JsLHn21F1lKav\nhAVCxYRlKJqk+fVwqR0u6Ex9hkQmBH9/mHBU+is1+OLCixKo2Z4i0bU4SPIT\nd0Bh71FWaXcHHcbvM/LXHbwNajmDTkK40GdEDO2pGpQsMfsf4O+yiR65QUiW\nOg+5liCeDDaoynbHvLuRrlWVlQvJFt78rWGKuhBmwozLyLP3Hxrfp5Yk+uzC\nd38NeDoFFyOy/hZuMtZ9fe0wYJ3AqT9ToWtk92+qI+Af41uZpuUj/wgYBhc4\nJnZPmWj48w+/NlpwH7SVad/SCXiXk+4Mn/4t/s8tIo0EKwSkieceT8mPC8ay\nlXscYGXALhNiTHvsXbXT6HqVywIYyHHL18aCn4UDkAjtC2tFmb6lv+/f7nCu\n/4ekF8c59uTgGnqL4YmXxb8v9jGonjGNN6mbOe0HMwrxw4SlvgjR9CzAitPj\nSQGB\r\n=G9BY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"cd54fe9a0dde6b8bb9d7acd58082d2526f62ba75","scripts":{"test":"jest","build":"tsc --project ./"},"_npmUser":{"name":"nexmo-devrel","email":"devrel@vonage.com"},"prepublush":"tsc","_npmVersion":"7.6.0","description":"A library to help wire up incoming speech to be converted to text through various services","directories":{},"_nodeVersion":"15.11.0","dependencies":{"wavefile":"^11.0.0","@google-cloud/speech":"^4.2.0","microsoft-cognitiveservices-speech-sdk":"^1.15.1"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^26.6.3","ts-jest":"^26.5.1","ts-node":"^9.1.1","prettier":"2.2.1","typescript":"^4.1.5","@types/node":"^14.14.28","jest-mock-extended":"^1.0.13"},"_npmOperationalInternal":{"tmp":"tmp/extend-voice-transcription_0.1.0_1615906288594_0.1252263261768587","host":"s3://npm-registry-packages"}},"0.1.1":{"name":"@vonage/extend-voice-transcription","version":"0.1.1","author":{"name":"Vonage Dev Rel","email":"devrel@vonage.com"},"license":"Apache-2.0","_id":"@vonage/extend-voice-transcription@0.1.1","maintainers":[{"name":"web-il","email":"web-il@vonage.com"},{"name":"iceberg-team","email":"icebergteam@vonage.com"},{"name":"yinon","email":"yinon.oved@vonage.com"},{"name":"unified_portal","email":"unified_portal_dev@vonage.com"},{"name":"vreporter-npm","email":"vreporter-support@vonage.com"},{"name":"vbcbe","email":"vbc-be@vonage.com"},{"name":"voltateam","email":"joel.graham@vonage.com"},{"name":"voxip_team","email":"voxip-team@vonage.com"},{"name":"gunifydevops","email":"gunifydevops@vonage.com"},{"name":"yuri.guller","email":"gullerya@gmail.com"},{"name":"idanvon","email":"idan.cohen@vonage.com"},{"name":"nexmo-devrel","email":"devrel@vonage.com"},{"name":"vvd","email":"vivid@vonage.com"},{"name":"vonagemeetings","email":"VBC-Meetings@vonage.com"}],"homepage":"https://github.com/Vonage/extend-voice-transcription","bugs":{"url":"https://github.com/Vonage/extend-voice-transcription"},"dist":{"shasum":"60565eb12e754ca6e852de7cb4d3a958df930017","tarball":"https://registry.npmjs.org/@vonage/extend-voice-transcription/-/extend-voice-transcription-0.1.1.tgz","fileCount":13,"integrity":"sha512-YrsA8o0QN8W/flXJr2IDn1OaDlq5FAPjSOujSYhv5xRVXfD+V3WolrWRbapXT/usH+AsHivVPsDXYbLPzGQ83w==","signatures":[{"sig":"MEQCIEZygjp3wj1R21pUs0FnDJFLRHd50JuoN8KzAnLq2Su1AiAovevs6Mqze5GIBwi4eu7nd8BD6MUVJ+z0hGBEFuiJuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25304,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgUMt5CRA9TVsSAnZWagAA1VAQAJHvF+DJoKtEfv+84Rc4\nxgHDNKTYK735cqdUQFNgPSZDHY89CytY7noxW+P+mdAvX6gdlLM05ttJ2L6h\nlmvOKwdswSzdKyjQS/cEAj0TXV2rNoPodMdSP8CYrhNYhvvlPu+9EfDBBKC0\ntXi1KB/1EmSl35rG6m8U9budPPGXj+Ak/afyWI1VC+yImYgsVX+WCyHzOdSN\nDsGNvdbP5vauTOc2j73lp9SoQZ+akqoHGa9+SX1l8ryhdUiBhL66pZl3YQw0\newdsmai+Grdr2qgzqdrw7atBchobv51pt35Tyl4JAVw7vV1XCqjThvXgzVV6\nSqR5mnWqfBuu3nOtCptH5aDRt0GRum4MJgeudjrQFZ5I/ZT/RoW1xlMNepDk\nZoOd8+0keSXoOlKSO+rvGQ5jcYgikME0h2U3y7oJv1UUk/fBXjZzWNd9MV5v\n55kuhQJ+a5eMnWBDrh22Zm8Ck0WlPF6XaK5aucQSeoGJ/CGNKKHTFE1hIXJj\nFz+PncdFR1owMzKeu+sC4LjdUDl8xQj0z6CEUDYIXBStq1d/o2Rqmz50Yjad\n6j2gGHthDX/by6mJYqr2OHoo1Ba50mcv4ZAKbp2TXm4oyMfQUs07zGXwPLTC\npDbCTT7amyJfaE4UeLxsHMvYcqZZmUVoG/dLT535yifaPxJyY+tIoylPkZ+W\nnkAO\r\n=q15r\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"00febeffc7b722f768eb71b5ad073671ef5326cc","scripts":{"test":"jest","build":"tsc --project ./"},"_npmUser":{"name":"nexmo-devrel","email":"devrel@vonage.com"},"_npmVersion":"7.6.0","description":"A library to help wire up incoming speech to be converted to text through various services","directories":{},"_nodeVersion":"15.11.0","dependencies":{"wavefile":"^11.0.0","@google-cloud/speech":"^4.2.0","microsoft-cognitiveservices-speech-sdk":"^1.15.1"},"_hasShrinkwrap":false,"prepublishOnly":"tsc","devDependencies":{"jest":"^26.6.3","ts-jest":"^26.5.1","ts-node":"^9.1.1","prettier":"2.2.1","typescript":"^4.1.5","@types/node":"^14.14.28","jest-mock-extended":"^1.0.13"},"_npmOperationalInternal":{"tmp":"tmp/extend-voice-transcription_0.1.1_1615907704628_0.8193739021988118","host":"s3://npm-registry-packages"}}},"time":{"created":"2021-03-16T14:51:28.329Z","modified":"2026-09-03T04:37:49.896Z","0.1.0":"2021-03-16T14:51:28.734Z","0.1.1":"2021-03-16T15:15:04.836Z"},"bugs":{"url":"https://github.com/Vonage/extend-voice-transcription"},"author":{"name":"Vonage Dev Rel","email":"devrel@vonage.com"},"license":"Apache-2.0","homepage":"https://github.com/Vonage/extend-voice-transcription","description":"A library to help wire up incoming speech to be converted to text through various services","maintainers":[{"email":"web-il@vonage.com","name":"web-il"},{"email":"icebergteam@vonage.com","name":"iceberg-team"},{"email":"unified_portal_dev@vonage.com","name":"unified_portal"},{"email":"vreporter-support@vonage.com","name":"vreporter-npm"},{"email":"vbc-be@vonage.com","name":"vbcbe"},{"email":"gullerya@gmail.com","name":"yuri.guller"},{"email":"idan.cohen@vonage.com","name":"idanvon"},{"email":"devrel@vonage.com","name":"nexmo-devrel"},{"email":"vivid@vonage.com","name":"vvd"},{"email":"VBC-Meetings@vonage.com","name":"vonagemeetings"},{"email":"video.api.ops@vonage.com","name":"vonage-jenkins"},{"email":"andreina.dasilvacabral@vonage.com","name":"adasilvacabral"},{"email":"sarvesh.bisht@vonage.com","name":"sarvesh.bisht"},{"email":"vgai-studio-developers@vonage.com","name":"vgai-dev"},{"email":"vcp_webrtc@vonage.com","name":"vonage_client_media_processing"},{"email":"or.abramovich@vonage.com","name":"or.cpc"},{"email":"lily.lihovodov@vonage.com","name":"llihovodov"},{"email":"daniel.sapir@vonage.com","name":"daniel-sapir"},{"email":"Aviad.Houri@vonage.com","name":"aviadhouri.va"},{"email":"ignacio.delacruz@vonage.com","name":"idelacruz"},{"email":"frontier@vonage.com","name":"vonage-frontier"},{"email":"hila.klein@vonage.com","name":"hilakl"},{"email":"Saurabh.Kulkarni@vonage.com","name":"saurabh.vonage"},{"email":"tamir.nahum@vonage.com","name":"leppelin"},{"email":"antoni.silvestrepadros@vonage.com","name":"asilvonage"},{"email":"Gayathri.Pojula@vonage.com","name":"gpojula"},{"email":"egor.limenko@vonage.com","name":"elimenko.vonage"},{"email":"kanav.bhatia@vonage.com","name":"kanav_vonage"},{"email":"omri.zilber@vonage.com","name":"omrizilber"},{"email":"marceli.olszewski@vonage.com","name":"molszewski_v"},{"email":"sailu.vejella@vonage.com","name":"sailusha"},{"email":"ragul.palanisamy@vonage.com","name":"rpalanisamy-vonage"},{"email":"Valentyn.Bohdan@vonage.com","name":"vbohdan_vonage"},{"email":"andrew.bolles@vonage.com","name":"abolles"},{"email":"gorka.revillafernandez@vonage.com","name":"gorka.vonage"},{"email":"bharath.ps@vonage.com","name":"bharath-vonage"},{"email":"mor.tubul@vonage.com","name":"morvonage"},{"email":"ilan.aradbilavsky@vonage.com","name":"ilan.aradbilavsky.at.vonage.com"},{"email":"chuck.reeves@vonage.com","name":"vonreeves"},{"email":"avi.dantes@vonage.com","name":"avi.dantes"},{"email":"michal.galin@vonage.com","name":"mgalin"},{"email":"jakub.hajduk@vonage.com","name":"jhajduk.vonage"},{"email":"Nitsan.unger@vonage.com","name":"nitsanungerfrontier"},{"email":"vladimir.quezada@vonage.com","name":"vquezada"},{"email":"alessio.didomenico@vonage.com","name":"adidomenico"},{"email":"sathish.r@vonage.com","name":"sathishr-vonage"},{"email":"pamu.pravallika@vonage.com","name":"pravallika-pamu"},{"email":"avijit.bagdi@vonage.com","name":"abagdi"},{"email":"anuradh.lankapalli@vonage.com","name":"anuradhlankapalli"},{"email":"hen.rosenberg@vonage.com","name":"hrosenberg"},{"email":"gokul.narayanan@vonage.com","name":"gokul-vonage"},{"email":"alistair.slowe@vonage.com","name":"aslowe-vcc"},{"email":"vbc-web-cicd@vonage.com","name":"vbc-web-cicd-bot"},{"email":"marina.serranomontes@vonage.com","name":"mserranomontes"},{"email":"Ariel.Bar@vonage.com","name":"ariel12955"},{"email":"Francisco.Becerra@vonage.com","name":"franbecerra"},{"email":"Uri.Haim@vonage.com","name":"urihaim"},{"email":"manuel.veranieto@vonage.com","name":"mvera_vonage"},{"email":"mike.zhylevych@vonage.com","name":"mike.zhylevych"},{"email":"mithun.prabhu@vonage.com","name":"mprabhuvonage"},{"email":"sharad.srivastava@vonage.com","name":"sharad-srivastava2"},{"email":"lukasz.pilarski@vonage.com","name":"lucas_pilarski"},{"email":"manish.ranjan@vonage.com","name":"manish-ranjan07"},{"email":"shubham.rajput@vonage.com","name":"srajput0909"},{"email":"pablo.villenamontes@vonage.com","name":"pvillenamontes"},{"email":"diogo.simoes@vonage.com","name":"dsimoes2"},{"email":"manel.jimeno@vonage.com","name":"manel_vonage"},{"email":"joseantonio.oliveraortega@vonage.com","name":"joliveraortega"}],"readme":"# Vonage Voice Transcription for NodeJS\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v2.0%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)\n[![Apache 2.0 licensed](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](./LICENSE.txt)\n\n<img src=\"https://developer.nexmo.com/assets/images/Vonage_Nexmo.svg\" height=\"48px\" alt=\"Nexmo is now known as Vonage\" />\n\nThis is a small wrapper around various Voice Transcription services to make it easier to provide voice transcription from our Voice API.\nTo use this, you'll need a Vonage account. Sign up [for free at nexmo.com][signup].\n\n**This bundle is currently in development/beta status, so there may be bugs**\n\n * [Installation](#installation)\n * [Usage](#usage)\n * [Contributing](#contributing) \n\n## Installation\n\nOpen a command console, enter your project directory and execute the\nfollowing command to download the latest stable version of this module:\n\n```console\n$ npm install @vonage/extend-voice-transcription\n```\n\n## Usage\n\n### Configuring Transcription Services\n\nThis module relies on external services to provide the actual transcription\nservices. We currently support:\n\n* Google Cloud Speech\n* Azure Cognitive Services\n\nEach service takes a configuration object that is passed to the underlying\nservice. To enable a service, just pass in the appropriate configuration\nobject.\n\n#### Google Cloud Speech\n\n```javascript\nconst { SpeechToText } = require(\"@vonage/extend-voice-transcription\");\n\nconst STTConnector = new SpeechToText({\n  audioRate: \"audio/l16;rate=16000\",\n  handler: (data) => {\n    console.log(`Vonage Transcription: ${data}`);\n  },\n  gCloudSpeech: {\n      keyFilename: './keys.json',\n      projectId: 'project-name'\n  },\n});\n```\n\n#### Azure Cognitive Services\n\n```javascript\nconst { SpeechToText } = require(\"@vonage/extend-voice-transcription\");\n\nconst STTConnector = new SpeechToText({\n  audioRate: \"audio/l16;rate=16000\",\n  handler: (data) => {\n    console.log(`Vonage Transcription: ${data}`);\n  },\n  azureCognitiveSpeech: {\n    key: \"azure-key\",\n    region: \"region\",\n  },\n});\n```\n### Integration with Voice API Web Sockets\n\nThis module is designed to work directly with incoming audio frames from the\nVonage Voice API web sockets. Audio can be streamed through the web socket\nand directly passed to the transcription service. A handler is defined that\nwill work with the returned data.\n\nWhen configuring the `SpeechToText` object, you will need to pass in the\n`audioRate` that is being used by the web socket, a `handler` which will\naccept a single string parameter (the transcribed text), and the configuration\ndata for the service you are using.\n\n#### Sample Usage with Express\n\nThis sample application sets up a small Express web socket application. The socket\nlistens on the `/echo` route, and will pass the audio directly to the Azure Cognitive\nSpeech API. Once the text has been transcribed and returned, it is passed to the `handler`\nfunction we defined that will output the text to the application's console log.\n\n```js\nconst express = require(\"express\");\nconst app = express();\nconst expressWs = require(\"express-ws\")(app);\nconst port = 3000;\nconst { SpeechToText } = require(\"@vonage/extend-voice-transcription\");\n\nconst STTConnector = new SpeechToText({\n  audioRate: \"audio/l16;rate=16000\",\n  handler: (data) => {\n    console.log(`Vonage Transcription: ${data}`);\n  },\n  azureCognitiveSpeech: {\n    key: \"azure-key\",\n    region: \"region\",\n  },\n});\n\napp.get(\"/\", (req, res) => {\n  res.setHeader(\"Content-Type\", \"application/json\");\n  res.send(\n    JSON.stringify(\n      STTConnector.createNCCO(`${req.protocol}://${req.hostname}/echo`)\n    )\n  );\n});\n\napp.get(\"/events\", (req, res) => {\n  console.log(req);\n});\n\napp.ws(\"/echo\", async (ws, req) => {\n  ws.on(\"message\", async (msg) => {\n    if (typeof msg === \"string\") {\n      console.log(msg);\n    } else {\n      STTConnector.stream(msg);\n    }\n  });\n\n  ws.on(\"close\", () => {\n    STTConnector.destroy();\n  });\n});\n\napp.listen(port, () => {\n  console.log(`Listening on port ${port}`);\n});\n```\n## Contributing\n\nThis library is actively developed, and we love to hear from you! Please feel free to [create an issue][issues] or [open a pull request][pulls] with your questions, comments, suggestions and feedback.\n\n[signup]: https://dashboard.nexmo.com/sign-up?utm_source=DEV_REL&utm_medium=github&utm_campaign=extend-voice-transcription\n[issues]: https://github.com/Vonage/extend-node-voice-transcription/issues\n[pulls]: https://github.com/Vonage/extend-node-voice-transcription/pulls","readmeFilename":"README.md"}