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 🙏

© 2025 – Pkg Stats / Ryan Hefner

nitor-tts

v1.0.0

Published

Browser TTS (using Web speech API) made easy

Downloads

12

Readme

Speech synthesis made easy - Browser based text to speech (TTS)

Installation

npm install nitor-tts

Description

Speech synthesis (tts) for the browser. Wrapping the browser Speech Synthesis API (https://developer.mozilla.org/en-US/docs/Web/API/SpeechSynthesis) and providing a similar interface, it improves it by : -> init() has optional paramters for volume,rate and pitch -> speak() converts the text into speech with specified voice

  • handling the fact that Chrome load voices in an asynchronous manner when others browsers don't -> voice list supoort browser specific voice
  • throwing specific exceptions: explicit exceptions will be thrown if you pass parameters with incompatible values to any of the methods

Work in Chrome, Edge and Mozila. See browser support here : http://caniuse.com/#feat=speech-synthesis

Usage

Import the library :

import NitorTTS from 'NitorTTS' // es6

Check for browser support :

speech = new NitorTTS() // will throw an exception if not browser supported
if(speech.hasBrowserSupport()) { // returns a boolean
	console.log("speech synthesis supported")
}

Init the speech component :

init(paremters)

You can pass the following properties to the init function:

  • voice : the voice to use // default is chosen by your browser if not provided
  • lang // default is determined by your browser if not provided
  • volume // optional default is 1
  • rate // optional default 1
  • pitch // optional default 1
// Example with full conf 
init('Microsoft Zira - English (United States)','en-US',1,1);

Read a text :

speech.speak{
	text: 'Hello, how are you today ?'}

You can pass the following properties to the speak function:

  • text: text to be spoken

Pause talking in progress:

Speech.pause()

Resume talking in progress:

Speech.resume()

Cancel talking in progress:

Speech.cancel()

Get boolean indicating if the utterance queue contains as-yet-unspoken utterances:

Speech.pending()

Get boolean indicating if talking is paused:

Speech.paused()

Get boolean indicating if talking is in progress:

Speech.speaking()