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

@speechly/browser-client

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@speechly/browser-client - npm Package Compare versions

Comparing version 0.2.1 to 0.2.2

8

index.d.ts

@@ -26,3 +26,2 @@

unmute(): void;
private initializeAudioContext;
}

@@ -55,2 +54,9 @@

* Initializes the client, by initializing the microphone and establishing connection to the API.
*
* This function HAS to be invoked by a user by e.g. binding it to a button press,
* or some other user-performed action.
*
* If this function is invoked without a user interaction,
* the microphone functionality will not work due to security restrictions by the browser.
*
* @param cb - the callback which is invoked when the initialization is complete.

@@ -57,0 +63,0 @@ */

1

microphone/browser_microphone.d.ts

@@ -20,3 +20,2 @@ import { AudioCallback, Microphone, ErrorCallback } from '../types';

unmute(): void;
private initializeAudioContext;
}

@@ -32,2 +32,33 @@ "use strict";

this.audioTrack.enabled = false;
if (window.AudioContext !== undefined) {
this.audioContext = new window.AudioContext();
}
else if (window.webkitAudioContext !== undefined) {
// eslint-disable-next-line new-cap
this.audioContext = new window.webkitAudioContext();
}
else {
throw Error('Microphone functionality is not supported in your browser');
}
this.downsampler = downsampler_1.generateDownsampler(this.audioContext.sampleRate, this.sampleRate);
this.audioProcessor = this.audioContext.createScriptProcessor(4096, 1, 1);
// Connect microphone to processor.
this.audioContext.createMediaStreamSource(this.mediaStream).connect(this.audioProcessor);
// Connect processor to destination.
this.audioProcessor.connect(this.audioContext.destination);
// Bind audio handler to receive audio data.
this.audioProcessor.onaudioprocess = audioProcessingEvent => {
if (this.audioTrack === undefined) {
throw Error('Microphone audio track is not initialized');
}
if (this.downsampler === undefined) {
throw Error('Microphone downsampler is not initialized');
}
// Skip audio if the mic is muted.
if (!this.audioTrack.enabled) {
return;
}
const downsampled = downsampler_1.float32ToInt16(this.downsampler(audioProcessingEvent.inputBuffer.getChannelData(0)));
this.onAudioCb(downsampled);
};
cb();

@@ -82,47 +113,5 @@ })

this.audioTrack.enabled = true;
if (this.audioContext === undefined) {
this.initializeAudioContext();
}
}
initializeAudioContext() {
if (this.mediaStream === undefined) {
throw Error('Microphone media stream is not initialized');
}
if (this.audioContext !== undefined) {
throw Error('Microphone audio context is already initialized');
}
if (window.AudioContext !== undefined) {
this.audioContext = new window.AudioContext();
}
else if (window.webkitAudioContext !== undefined) {
// eslint-disable-next-line new-cap
this.audioContext = new window.webkitAudioContext();
}
else {
throw Error('Microphone functionality is not supported in your browser');
}
this.downsampler = downsampler_1.generateDownsampler(this.audioContext.sampleRate, this.sampleRate);
this.audioProcessor = this.audioContext.createScriptProcessor(4096, 1, 1);
// Connect microphone to processor.
this.audioContext.createMediaStreamSource(this.mediaStream).connect(this.audioProcessor);
// Connect processor to destination.
this.audioProcessor.connect(this.audioContext.destination);
// Bind audio handler to receive audio data.
this.audioProcessor.onaudioprocess = audioProcessingEvent => {
if (this.audioTrack === undefined) {
throw Error('Microphone audio track is not initialized');
}
if (this.downsampler === undefined) {
throw Error('Microphone downsampler is not initialized');
}
// Skip audio if the mic is muted.
if (!this.audioTrack.enabled) {
return;
}
const downsampled = downsampler_1.float32ToInt16(this.downsampler(audioProcessingEvent.inputBuffer.getChannelData(0)));
this.onAudioCb(downsampled);
};
}
}
exports.BrowserMicrophone = BrowserMicrophone;
//# sourceMappingURL=browser_microphone.js.map
{
"name": "@speechly/browser-client",
"version": "0.2.1",
"version": "0.2.2",
"description": "Browser client for Speechly API",

@@ -53,2 +53,3 @@ "private": false,

"jest": "^25.1.0",
"minimist": "0.2.1",
"prettier": "^1.19.1",

@@ -55,0 +56,0 @@ "rimraf": "^3.0.2",

@@ -34,2 +34,3 @@ # <a href="https://speechly.com/"><img src="https://www.speechly.com/images/logo.png" height="100" alt="Speechly"></a>

// Initialize the client - this will ask the user for microphone permissions and establish the connection to Speechly API.
// Make sure you call `initlialize` from a user action handler (e.g. from a button press handler).
client.initialize((err?: Error) => {

@@ -36,0 +37,0 @@ if (err !== undefined) {

@@ -28,2 +28,9 @@ import { ErrorCallback, ContextCallback } from '../types';

* Initializes the client, by initializing the microphone and establishing connection to the API.
*
* This function HAS to be invoked by a user by e.g. binding it to a button press,
* or some other user-performed action.
*
* If this function is invoked without a user interaction,
* the microphone functionality will not work due to security restrictions by the browser.
*
* @param cb - the callback which is invoked when the initialization is complete.

@@ -30,0 +37,0 @@ */

@@ -125,2 +125,9 @@ "use strict";

* Initializes the client, by initializing the microphone and establishing connection to the API.
*
* This function HAS to be invoked by a user by e.g. binding it to a button press,
* or some other user-performed action.
*
* If this function is invoked without a user interaction,
* the microphone functionality will not work due to security restrictions by the browser.
*
* @param cb - the callback which is invoked when the initialization is complete.

@@ -175,2 +182,3 @@ */

this.activeContexts.clear();
this.setState(types_1.ClientState.Disconnected);
return errs.length > 0 ? cb(Error(errs.join(','))) : cb();

@@ -177,0 +185,0 @@ });

@@ -8,5 +8,5 @@ // This file is read by tools that parse documentation comments conforming to the TSDoc standard.

"packageName": "@microsoft/api-extractor",
"packageVersion": "7.7.8"
"packageVersion": "7.7.10"
}
]
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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