Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
choo-tts
Advanced tools
Readme
Simple text-to-speech in the browser for choo
var choo = require('choo')
var html = require('choo/html')
var app = choo()
app.use(require('choo-tts')())
app.route('/', mainView)
app.mount('body')
function mainView (state, emit) {
return html`
<body>
<button onclick=${onclick}>Say something</button>
</body>
`
function onclick () {
// speak with default voice
emit('tts:speak', 'Hello world')
}
}
tts:error
| tts.events.ERROR
Emitted when there is an error. It will get the error thrown as argument.
tts:speak
| tts.events.SPEAK
Emit this event to speak some text. Can get a string and speak it with the
default settings, or can get an object with text, rate, pitch and volume
properties, only text is mandatory (lang is set in the voice, and the voice
to speak is set in the state.selectedVoice
property or with the
tts:set-voice
event). If you pass an object you can set an additional
id
property that can be used to identify this speech for the speech events.
tts:pause
| tts.events.PAUSE
Emit this event to pause an ongoing speak. If there is no speaking taking place, it will do nothing.
tts:resume
| tts.events.RESUME
Emit this event to resume an ongoing speak. If there is no paused speaking, it will do nothing.
tts:cancel
| tts.events.CANCEL
Emit this event to cancel all qeued speechs.
tts:voices-changed
| tts.events.VOICES_CHANGED
Set this event to handle every change on the availaible voices.
tts:set-voice
| tts.events.SET_VOICE
Set the voice you want passing a string with the name of the voice. Use this
event if you are sure of the name of the voice and that the voice is present in
the client, otherwise it will throw. If you are unsure of the name, directly
select the voice object from the state.tts.voices
array.
tts:speech-start
| tts.events.SPEECH_START
Emitted when a speech starts. The argument object has two properties, the event itself and an id.
This event will be fired with every speech, but you can set this for a specific
speech, if you set an id
property to the object passed to the speak event. For
example,
function speech (state, emitter) {
emitter.on('tts:speech-start', function ({ event }) {
console.log('Speech started!')
})
emitter.on('tts:speech-start', function ({ event, id }) {
if (id === 'my-speech') console.log('My speech just started!')
})
}
// later in your view
function view (state, emit) {
return html`<body>
<button onclick="${regularSpeech}">regular speech</button>
<button onclick="${customSpeech}">custom speech</button>
</body>`
function regularSpeech () {
emit('tts:speak', 'Just some regular speaking')
}
function customSpeech () {
emit('tts:speak', {
text: 'This speech is really special!',
id: 'my-speech'
})
}
}
tts:speech-boundary
| tts.events.SPEECH_BOUNDARY
Emitted when a word or sentence boundary is reched during a speech. The argument
object has two properties, the event itself and an id. This event will be fired
with every speech, but you can set this for a specific speech, if you set an id
property to the object passed to the speak event.
tts:speech-end
| tts.events.SPEECH_END
Emitted when a speech finish being spoken. The argument
object has two properties, the event itself and an id. This event will be fired
with every speech, but you can set this for a specific speech, if you set an id
property to the object passed to the speak event.
plugin = tts([opts])
The plugin accept an options object and return the plugin. The opts
object
can have the following properties:
voice
: A string with the name of the voice to be selected as selectedVoice
.
if not set, or not found, will use the browser default voice.rate
: The speed of the utterance to be spoken, can be a value
from 0.1 to 10, defaults to 1.pitch
: The pitch of the utterance to be spoken, can be a value from 0
to 2, defaults to 1.volume
: The volume of the utterance to be spoken, can be a value from 0
to 1, defaults to 0.5.If everything goes right, then the plugin will populate a tts
object to the
state.
tts.state
: Get the state of text-to-speech object. Can be any of the
following strings: PAUSED
, PENDING
, SPEAKING
or READY
.tts.voices
: The list of availaible voices. Notice that this object isn't
allways populated until the dom has loaded, so you should use it there and re
render your app if you are using it in the body of your html, check the
example for more info.tts.selectedVoice
: The actual voice to be used for the next speaking,
unless you pass an object to the speak event.tts.rate
: The speed of the utterance to be spoken, can be a value
from 0.1 to 10, defaults to 1.tts.pitch
: The pitch of the utterance to be spoken, can be a value from 0
to 2, defaults to 1.tts.volume
: The volume of the utterance to be spoken, can be a value from 0
to 1, defaults to 0.5.FAQs
Simple text-to-speech in the browser for choo
The npm package choo-tts receives a total of 6 weekly downloads. As such, choo-tts popularity was classified as not popular.
We found that choo-tts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.