Add text to speech to your website with one line
Paste one script tag into your pages and visitors can listen instead of read. They click a paragraph or select a few words, and the words light up while a voice speaks them.
Free plan: 10,000 characters every month. No card needed.
Hear it before you read on
This box runs the real script tag, on this page, right now. Click a paragraph, select a few words, or press the button.
This is the example article. Move your mouse over this paragraph and it lights up; click it and exactly this paragraph is read, then it stops. While reading, the paragraph wears a light wash and the spoken sentence a stronger one, with a small player in the corner.
This is the second paragraph. Click it and only this one is heard. The Read button above reads the whole box and keeps going until you stop it. Or select a few words anywhere in here, and they are read out the moment you let go of the mouse.
The first sentence can take a moment on a cold voice; after that it comes from the cache instantly. This demo runs on our own small demo allowance, so it may go quiet late in a busy month.
Set up in three steps
- 1
Get your website key
Create a free account, add your website’s domain on the Keys page and create your website key there. It starts with jwk_live_ and it is safe inside your pages: it only works on the domains you registered, so nobody can copy it and spend your characters somewhere else. - 2
Paste the tag
One tag, anywhere you can paste HTML: WordPress, Shopify, a static site, a hand-written page from 2009. There is no plugin to configure, no back end to write and no build step. This is the whole installation, with every switch on:<script src="https://speech.joulyan.com/speech.js" data-key="jwk_live_YOUR_WEBSITE_KEY" data-voice="en-female-1" data-selection="on" data-click="on" data-player="on"></script> - 3
That is it, and buttons are one line more
Selection reading, click reading, the highlight and the player now work on your pages. If you also want your own Listen button somewhere, one line wires it up:<button onclick="joulyanSpeech.speak('Welcome to our site!', 'en-female-1')"> Listen </button>
The switches on the tag
Only the key is required. Each switch turns one behaviour on; leave it off the tag and that behaviour stays away. Signed-in customers find the full reference, including scoping and self-hosting, on their Integrate page.
- data-key="jwk_live_…"
- Required. Your website key from the Keys page; it works on your registered domains only.
- data-voice="en-female-1"
- The default voice. A bare language code like "en" works too and means that language's default voice.
- data-selection="on"
- Anything the visitor selects with the mouse is read out immediately.
- data-click="on"
- A paragraph lights up under the mouse, and a click reads exactly that paragraph.
- data-player="on"
- A small floating player (Pause, Stop) appears while reading and hides after.
What your visitors can do
Nothing ever plays by itself. A visitor always chooses what to hear, so the page stays quiet until someone asks for sound.
Who this helps
Some people find long text tiring to read. Some are reading in their second language and understand it better spoken. Some are on a phone in bad light, or cooking, or simply prefer to listen. A read-aloud option lets all of them stay on your page instead of leaving it.
Voices in many languages
Pick from over 300 voices in more than 50 languages, from Arabic to Vietnamese. You choose the default voice in the tag and can change the reading speed. New voices appear in your account by themselves, so there is nothing to update on your site.
What it costs
You pay for characters that are actually spoken, nothing else. The free plan gives you 10,000 characters every month, forever, with no card. A typical paragraph is around 400 characters, so that is roughly 25 paragraph reads a month at no cost.
When your site reads more than that, you buy credit: €30 for 1 million characters. The credit never expires, and there is no subscription and no monthly fee. A reading a visitor stops early only counts the part that was spoken.
The complete example
Save this as a page, open it, and you have the whole experience: click to read, selection reading, the highlight and the player.
<!doctype html>
<html>
<body>
<article id="article">
<h1>My article</h1>
<p>Click a paragraph and exactly that one is read.</p>
<p>Select a few words and they are read out at once.</p>
</article>
<button onclick="joulyanSpeech.read('#article')">Read it all</button>
<script src="https://speech.joulyan.com/speech.js"
data-key="jwk_live_YOUR_WEBSITE_KEY"
data-voice="en-female-1"
data-click="on" data-click-within="#article"
data-selection="on" data-selection-within="#article"
data-player="on"></script>
</body>
</html>Questions people ask
Hear your own pages today
Create a free account, register your domain, paste the tag. The whole thing takes a few minutes, and the free characters come back every month.
Create free account