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

sl-web-speech

v1.1.3

Published

Library for handling speech on web with focus on interactive storytelling use cases.

Downloads

8

Readme

sl-web-speech

This is a library for handling speech on web with a focus on covering interactive storytelling use cases. In particular, continuous realtime speech recognition that aims to match expected keywords.

Features

  • Stream audio from microphone to speech recognition (vosk-browser)
  • Receive callbacks for recognized words, start of speech, and stop of speech
  • Recognized word events are deduped
  • Mute and unmute the microphone
  • State management around waiting for browser permissions and enablements

Licensing

My code is licensed with the MIT open source license.

But this project also contains a "models" directory which is separately licensed under Apache. See COPYING file in that directory and follow its terms before redistributing.

Usage

Your web app will use 'sl-web-speech' as a dependency library. At time of writing, I've not published to NPM, so you'd need to git clone and use npm link or other solution to import into your web app. If anybody asks me to publish this on NPM, I'm willing to do that.

The files under "models" should be served from "/models" on your web server.

Example web app code is shown below.

Listen for Speech

import Recognizer from 'sl-web-speech';

/* Construct Recognizer *after* the user has performed some UI interaction in your web app. For security reasons, most 
   web browsers won't access microphone audio until there is a UI interaction happens. An easy way to accomplish this
   is to have a starting page that requires a button/link click to begin listening for speech. */
const recognizer = new Recognizer(onReady);

function onReady() {
  bindCallbacks(onPartial, onStartSpeaking, onStopSpeaking);
  recognizer.unmute();
}

function onPartial(speechText) {
  console.log(`User said "${speechText}".`);
}

function onStartSpeaking() {
  console.log('User started speaking.');
}

function onStopSpeaking() {
  console.log('User stopped speaking.');
}

Contributing

The project isn't open to contributions at this point. But that could change. Contact me if you'd like to collaborate.

Contacting

You can reach me on LinkedIn. I'll accept connections if you will just mention "SL Web Speech" or some other shared interest in your connection request.

https://www.linkedin.com/in/erikhermansen/