npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

krisp-api-ngrok

v1.0.6

Published

Simple nodejs module for interacting with Krisp API

Downloads

17

Readme

krisp-api-ngrok

Node module for interacting with 2Hz Krisp API

This module creates local host tunnel using ngrok module.

It creates webhook server on your local machine which is visible to Krisp API.

Installation

Module can be installed using npm

npm i krisp-api-ngrok

Options

To create instance of Krisp API you should provide options object.

It should have the following minimal structure.

const opts = {
    AccountRID: "", /* Required */
    AccountKey: "", /* Required */
    Port: 3001, /* Optional, default is 3000 */
    Download: true, /* Optional*/
    DownloadDir: "/tmp/", /* Required if Download is present*/
    LogLevel: "info" /*Can be either 'info' or 'error'*/
}

When property Download is set to true all processed files will be downloaded to the provided DownloadDir

Events

There are 4 main event to listen while using module

| Event| Description| |------|-------------| | ready| All Krips API calls should be make after this event.| | webhook| When response is ready Krisp API triggers this event. |error| Error event| |downloads-finished| When all active requests to the api are finished and downloaded this event triggers.

Methods

All API methods are promises that resolve if Krisp API response status is success otherwise promises reject

| Method| Description| | ------|-------------| |denoise| denoises file using given model| |expand| bandwidth expands using with given model| |remove| removes resource from Krisp API servers using rid| |stats| return api usage statistics based on year, day and month|

Example usage

This example below demonstrates how this module can be used for denoising, recovering and bandwidth expanding file.

const KrispAPI = require("krisp-api-ngrok")
/**
 *  Define options for krisp api
 */
const opts = {
    AccountRID: "",
    AccountKey: "",
    Port: 3001,
    Download: true, // if download is set to true you should also specify DownloadDir where processed files will be downloaded
    DownloadDir: "/tmp/", // directory when processed files should be downloaded
    LogLevel: "info",
}

/**
 * Initialize Krisp API instance with given options
 */
const krispAPI = new KrispAPI(opts)

/**
 * Define unique identifiers for each request
 */
let tokenDenoise = "my-denoise-token"
let tokenExpand= "my-expand-token"
/**
 * All requests to Krisp API should be made after ready event
 */
krispAPI.on("ready", () => {

    /**
     * Make a call to denoise endpoint to process example.wav using DENOISE_PLAY_8000 model and also pass tokenDenoise
     * as argument which will be sent to webhook, it is usefule for identifying requests.
     */
    krispAPI.denoise("example.wav", "DENOISE_PLAY_8000", tokenDenoise)
        .then().catch((d) => {
        console.log("ERROR", d);
    })
    
})

/**
 * Error event should be leistened always.
 */
krispAPI.on("error", (err) => {
    console.log("ERROR");
    console.log(err);
})


/**
 * When Krisp API successfully processes file it triggeres webhook event.
 * All responses from denoise, recover and expand endpoints will come here
 */
krispAPI.on("webhook", (response) => {
    if (response.param === tokenDenoise) {
        //do some fun stuff
    }
})


krispAPI.on("downloads-finished", (rid) => {
    console.log("All downloads have been completed.")
    process.exit(0)
})