Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@tilde-nlp/asr-api-client

Package Overview
Dependencies
Maintainers
5
Versions
41
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tilde-nlp/asr-api-client - npm Package Compare versions

Comparing version 2.0.3 to 2.0.4

tilde-nlp-asr-api-client-2.0.4.tgz

2

index.js

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["asr-api-client"]=t():e["asr-api-client"]=t()}(self,(()=>(()=>{"use strict";var e={607:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(86),t),s(i(801),t),s(i(729),t),s(i(216),t)},86:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AsrClient=void 0;const o=i(326),s=i(729);t.AsrClient=class{get isRecording(){return this._isRecording}constructor(e){var t;this._isRecording=!1,this.mimeType="audio/pcm",this.url=e.url,this.visualizerConfigBase=e.visualizerConfig,this.timeSlice=e.timeSlice>0?e.timeSlice:200,this.channelCount=null!==(t=e.channelCount)&&void 0!==t?t:1,this.onResult=e.onResult,this.onMessage=e.onMessage,this.onError=e.onError,this.onStopped=e.onStopped,this.onRecordingStartStop=e.onRecordingStartStop}beginVoiceRecognition(){this.speechWebSocket||this.setUpMic().then((()=>{this.setupSpeechWebSocket().then((()=>{var e;null===(e=this.mediaRecorder)||void 0===e||e.start(this.timeSlice),this.setIsRecording(!0)}))}),(()=>{}))}listenToWebSocket(){this.setupSpeechWebSocket()}endVoiceRecognition(){var e;null===(e=this.speechWebSocket)||void 0===e||e.close()}setUpMic(){return new Promise(((e,t)=>{navigator.mediaDevices.getUserMedia({audio:!0}).then((t=>{var i;if(this.audioContext=new AudioContext,null===(i=this.visualizerConfigBase)||void 0===i?void 0:i.visualizerId){const e={audioContext:this.audioContext,stream:t,visualizerId:this.visualizerConfigBase.visualizerId,strokeStyle:this.visualizerConfigBase.strokeStyle,lineWidth:this.visualizerConfigBase.lineWidth};this.audioVisualizer=new o.AudioVisualizer(e)}this.mediaRecorder=new MediaStreamRecorder(t),this.mediaRecorder.mimeType=this.mimeType,this.mediaRecorder.audioChannels=this.channelCount,this.mediaRecorder.ondataavailable=e=>{this.speechWebSocket&&this.speechWebSocket.readyState===this.speechWebSocket.OPEN&&e.arrayBuffer().then((e=>{var t=new Uint8Array(e);this.speechWebSocket.send(t)}))},e()})).catch((e=>{this.onError&&(this.onError(e),t(e))}))}))}stopAll(){var e,t,i,o;null===(e=this.mediaRecorder)||void 0===e||e.stop(),this.setIsRecording(!1),this.speechWebSocket=void 0,null===(i=null===(t=this.inputStream)||void 0===t?void 0:t.mediaStream)||void 0===i||i.getAudioTracks().forEach((e=>e.stop())),null===(o=this.audioVisualizer)||void 0===o||o.stop(),this.audioVisualizer=void 0,this.onStopped&&this.onStopped()}stopPartially(){this.speechWebSocket=void 0,this.onStopped&&this.onStopped()}setupSpeechWebSocket(){return new Promise((e=>{this.speechWebSocket=new WebSocket(`${this.url}`),this.speechWebSocket.binaryType="arraybuffer",this.speechWebSocket.onopen=async()=>{const t=JSON.stringify({"enable-final-postprocess":["numbers","punct"]});this.speechWebSocket.send(t),e()},this.speechWebSocket.onmessage=e=>{try{const t=JSON.parse(e.data);switch(t.status){case s.RecognitionStatus.Success:t.result&&this.handleSpeechRecognitionResult(t.result);break;case s.RecognitionStatus.StreamIssue:case s.RecognitionStatus.Aborted:case s.RecognitionStatus.Busy:this.handleError();break;default:this.onMessage&&this.onMessage(t.status)}}catch(t){this.handleSpeechRecognitionResult(e.data)}},this.speechWebSocket.onclose=e=>{3e3===e.code?this.stopPartially():this.stopAll()}}))}handleError(){this.speechWebSocket.close(3e3,"Server issue"),this.stopPartially(),this.beginVoiceRecognition()}handleSpeechRecognitionResult(e){this.onResult&&this.onResult(e)}setIsRecording(e){this._isRecording=e,this.onRecordingStartStop&&this.onRecordingStartStop(this.isRecording,this)}}},326:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AudioVisualizer=void 0,t.AudioVisualizer=class{constructor(e){var t;this.audioContext=e.audioContext,this.visualizerId=e.visualizerId,this.stream=e.stream,this.strokeStyle=null!==(t=e.strokeStyle)&&void 0!==t?t:"#811331",this.lineWidth=e.lineWidth}visualizeAudio(){if(this.stream){if(this.visualizerId){const e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=512,this.analyser.smoothingTimeConstant=.95,e.connect(this.analyser)}this.draw()}else console.error("Audio visualizer has no stream! Try creating new visualizer")}stop(){if(this.visualizerId){const o=document.getElementById(this.visualizerId);if(o){var e=o.offsetWidth,t=o.height,i=o.getContext("2d");null==i||i.clearRect(0,0,e,t)}}this.audioVisualizerAnimReqId&&cancelAnimationFrame(this.audioVisualizerAnimReqId),this.stream&&(this.stream.getAudioTracks().forEach((e=>e.stop())),this.analyser=void 0,this.audioContext=void 0,this.stream=void 0,this.audioVisualizerAnimReqId=void 0)}draw(){var e;const t=this.analyser.frequencyBinCount,i=new Uint8Array(t),o=document.getElementById(this.visualizerId);if(o){const t=o.offsetWidth,s=o.offsetHeight,r=o.getContext("2d"),n=null!==(e=this.lineWidth)&&void 0!==e?e:t/i.length;if(r){r.lineWidth=n,r.strokeStyle=this.strokeStyle,this.analyser.getByteFrequencyData(i),r.clearRect(0,0,t,s),r.beginPath();let e=0;if(i){for(let t=0;t<i.length;t++){const o=i[t]/255*s;r.imageSmoothingEnabled=!1,r.moveTo(e,s),r.lineTo(e,s-o),e+=n}r.stroke()}}this.audioVisualizerAnimReqId=requestAnimationFrame((()=>{this.draw()}))}}}},729:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(883),t)},883:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.RecognitionStatus=void 0,(i=t.RecognitionStatus||(t.RecognitionStatus={}))[i.Success=0]="Success",i[i.NoSpeech=1]="NoSpeech",i[i.Aborted=2]="Aborted",i[i.StreamIssue=5]="StreamIssue",i[i.LoadLimitReached=9]="LoadLimitReached",i[i.AuthenticationFailed=10]="AuthenticationFailed",i[i.Busy=11]="Busy"},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sha1Async=void 0,t.sha1Async=async e=>{const t=(new TextEncoder).encode(e),i=await crypto.subtle.digest("SHA-1",t);return Array.from(new Uint8Array(i)).map((e=>e.toString(16).padStart(2,"0"))).join("")}},216:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(88),t)},17:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},801:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(17),t),s(i(208),t),s(i(957),t),s(i(289),t),s(i(310),t)},289:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},208:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},957:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},310:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})}},t={};return function i(o){var s=t[o];if(void 0!==s)return s.exports;var r=t[o]={exports:{}};return e[o].call(r.exports,r,r.exports,i),r.exports}(607)})()));
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports["asr-api-client"]=t():e["asr-api-client"]=t()}(self,(()=>(()=>{"use strict";var e={607:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(86),t),s(i(801),t),s(i(729),t),s(i(216),t)},86:(e,t,i)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AsrClient=void 0;const o=i(326),s=i(729);t.AsrClient=class{get isRecording(){return this._isRecording}constructor(e){var t;this._isRecording=!1,this.mimeType="audio/pcm",this.url=e.url,this.visualizerConfigBase=e.visualizerConfig,this.timeSlice=e.timeSlice>0?e.timeSlice:200,this.channelCount=null!==(t=e.channelCount)&&void 0!==t?t:1,this.onResult=e.onResult,this.onMessage=e.onMessage,this.onError=e.onError,this.onStopped=e.onStopped,this.onRecordingStartStop=e.onRecordingStartStop}beginVoiceRecognition(){this.speechWebSocket||this.setUpMic().then((()=>{this.setupSpeechWebSocket().then((()=>{var e;null===(e=this.mediaRecorder)||void 0===e||e.start(this.timeSlice),this.setIsRecording(!0)}))}),(()=>{}))}listenToWebSocket(){this.setupSpeechWebSocket()}endVoiceRecognition(e=!1){this.stopRecording(!e),e&&this.closeWebSocket()}setUpMic(){return new Promise(((e,t)=>{navigator.mediaDevices.getUserMedia({audio:!0}).then((t=>{var i;if(this.audioContext=new AudioContext,null===(i=this.visualizerConfigBase)||void 0===i?void 0:i.visualizerId){const e={audioContext:this.audioContext,stream:t,visualizerId:this.visualizerConfigBase.visualizerId,strokeStyle:this.visualizerConfigBase.strokeStyle,lineWidth:this.visualizerConfigBase.lineWidth};this.audioVisualizer=new o.AudioVisualizer(e)}this.mediaRecorder=new MediaStreamRecorder(t),this.mediaRecorder.mimeType=this.mimeType,this.mediaRecorder.audioChannels=this.channelCount,this.mediaRecorder.ondataavailable=e=>{e.arrayBuffer().then((e=>{var t=new Uint8Array(e);this.speechWebSocket&&this.speechWebSocket.readyState===this.speechWebSocket.OPEN&&this.speechWebSocket.send(t)}))},e()})).catch((e=>{this.onError&&(this.onError(e),t(e))}))}))}stopRecording(e=!0){var t,i,o,s;this.closeWebsocketOnNextFinal=e,null===(t=this.mediaRecorder)||void 0===t||t.stop(),this.setIsRecording(!1),null===(o=null===(i=this.inputStream)||void 0===i?void 0:i.mediaStream)||void 0===o||o.getAudioTracks().forEach((e=>e.stop())),null===(s=this.audioVisualizer)||void 0===s||s.stop(),this.audioVisualizer=void 0}setupSpeechWebSocket(){return new Promise((e=>{this.speechWebSocket=new WebSocket(`${this.url}`),this.speechWebSocket.binaryType="arraybuffer",this.speechWebSocket.onopen=async()=>{const t=JSON.stringify({"enable-final-postprocess":["numbers","punct"]});this.speechWebSocket.send(t),e()},this.speechWebSocket.onmessage=e=>{try{const t=JSON.parse(e.data);switch(t.status){case s.RecognitionStatus.Success:t.result&&this.handleSpeechRecognitionResult(t.result);break;case s.RecognitionStatus.StreamIssue:case s.RecognitionStatus.Aborted:case s.RecognitionStatus.Busy:this.handleError();break;default:this.onMessage&&this.onMessage(t.status)}}catch(t){this.handleSpeechRecognitionResult(e.data)}},this.speechWebSocket.onclose=e=>{this.speechWebSocket=void 0,this.onStopped&&this.onStopped()}}))}handleError(){this.speechWebSocket.close(3e3,"Server issue"),this.beginVoiceRecognition()}handleSpeechRecognitionResult(e){this.onResult&&this.onResult(e),this.closeWebsocketOnNextFinal&&this.closeWebSocket()}setIsRecording(e){this._isRecording=e,this.onRecordingStartStop&&this.onRecordingStartStop(this.isRecording,this)}closeWebSocket(){var e;null===(e=this.speechWebSocket)||void 0===e||e.close(),this.closeWebsocketOnNextFinal=!1}}},326:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AudioVisualizer=void 0,t.AudioVisualizer=class{constructor(e){var t;this.audioContext=e.audioContext,this.visualizerId=e.visualizerId,this.stream=e.stream,this.strokeStyle=null!==(t=e.strokeStyle)&&void 0!==t?t:"#811331",this.lineWidth=e.lineWidth}visualizeAudio(){if(this.stream){if(this.visualizerId){const e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=512,this.analyser.smoothingTimeConstant=.95,e.connect(this.analyser)}this.draw()}else console.error("Audio visualizer has no stream! Try creating new visualizer")}stop(){if(this.visualizerId){const o=document.getElementById(this.visualizerId);if(o){var e=o.offsetWidth,t=o.height,i=o.getContext("2d");null==i||i.clearRect(0,0,e,t)}}this.audioVisualizerAnimReqId&&cancelAnimationFrame(this.audioVisualizerAnimReqId),this.stream&&(this.stream.getAudioTracks().forEach((e=>e.stop())),this.analyser=void 0,this.audioContext=void 0,this.stream=void 0,this.audioVisualizerAnimReqId=void 0)}draw(){var e;const t=this.analyser.frequencyBinCount,i=new Uint8Array(t),o=document.getElementById(this.visualizerId);if(o){const t=o.offsetWidth,s=o.offsetHeight,r=o.getContext("2d"),n=null!==(e=this.lineWidth)&&void 0!==e?e:t/i.length;if(r){r.lineWidth=n,r.strokeStyle=this.strokeStyle,this.analyser.getByteFrequencyData(i),r.clearRect(0,0,t,s),r.beginPath();let e=0;if(i){for(let t=0;t<i.length;t++){const o=i[t]/255*s;r.imageSmoothingEnabled=!1,r.moveTo(e,s),r.lineTo(e,s-o),e+=n}r.stroke()}}this.audioVisualizerAnimReqId=requestAnimationFrame((()=>{this.draw()}))}}}},729:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(883),t)},883:(e,t)=>{var i;Object.defineProperty(t,"__esModule",{value:!0}),t.RecognitionStatus=void 0,(i=t.RecognitionStatus||(t.RecognitionStatus={}))[i.Success=0]="Success",i[i.NoSpeech=1]="NoSpeech",i[i.Aborted=2]="Aborted",i[i.StreamIssue=5]="StreamIssue",i[i.LoadLimitReached=9]="LoadLimitReached",i[i.AuthenticationFailed=10]="AuthenticationFailed",i[i.Busy=11]="Busy"},88:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.sha1Async=void 0,t.sha1Async=async e=>{const t=(new TextEncoder).encode(e),i=await crypto.subtle.digest("SHA-1",t);return Array.from(new Uint8Array(i)).map((e=>e.toString(16).padStart(2,"0"))).join("")}},216:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(88),t)},17:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},801:function(e,t,i){var o=this&&this.__createBinding||(Object.create?function(e,t,i,o){void 0===o&&(o=i);var s=Object.getOwnPropertyDescriptor(t,i);s&&!("get"in s?!t.__esModule:s.writable||s.configurable)||(s={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,o,s)}:function(e,t,i,o){void 0===o&&(o=i),e[o]=t[i]}),s=this&&this.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||o(t,e,i)};Object.defineProperty(t,"__esModule",{value:!0}),s(i(17),t),s(i(208),t),s(i(957),t),s(i(289),t),s(i(310),t)},289:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},208:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},957:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})},310:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0})}},t={};return function i(o){var s=t[o];if(void 0!==s)return s.exports;var r=t[o]={exports:{}};return e[o].call(r.exports,r,r.exports,i),r.exports}(607)})()));

@@ -11,2 +11,3 @@ import { AudioVisualizer } from "./audio-visualizer.model";

private inputStream?;
private closeWebsocketOnNextFinal;
private readonly timeSlice;

@@ -25,6 +26,9 @@ private readonly channelCount;

listenToWebSocket(): void;
endVoiceRecognition(): void;
/**
* Stops recording and closes websocket if param set to true.
* @param forceCloseWebsocket wether websocket should be closed immedeately. If value set to false, ws connection will be closed on next final result. Default value - false.
*/
endVoiceRecognition(forceCloseWebsocket?: boolean): void;
private setUpMic;
private stopAll;
private stopPartially;
private stopRecording;
private setupSpeechWebSocket;

@@ -34,2 +38,3 @@ private handleError;

private setIsRecording;
private closeWebSocket;
}

@@ -9,7 +9,16 @@ import { RecognitionStatus } from "../enums";

visualizerConfig?: VisualizerConfigBase;
/**
* Callback for handling recognized speech.
*/
onResult: (result: SpeechRecognitionResult) => void;
/**
* Callback for websocket message.
*/
onMessage?: (message: RecognitionStatus) => void;
onError?: (error: any) => void;
/**
* Callback function when websocket connection is closed.
*/
onStopped?: () => void;
onRecordingStartStop?: (isRecording: boolean) => void;
}
{
"name": "@tilde-nlp/asr-api-client",
"version": "2.0.3",
"version": "2.0.4",
"description": "Library with services for communicating with Tilde TSP platform",

@@ -5,0 +5,0 @@ "private": false,

# asr-api-client library
Library is created for implementing dictation. It is written with typescript and also includes typescript models.
## Core methods of asrClient
`beginVoiceRecognition` - starts recording (asks permission for mic if needed) and creates connection with asr api.
`endVoiceRecognition(forceCloseWebsocket = false)` - stops recording and closes socket if `forceCloseWebsocket` param is set to `true`. If `forceCloseWebsocket` is set to false, it will close connection on next final result.
## Real time oscilogram

@@ -5,0 +11,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc