ResponsiveVoice

Browser-based JavaScript text-to-speech API

2014 · Creator & architect · shipped

A cross-browser JavaScript text-to-speech library that grew from an internal accessibility feature into a standalone product with 90M+ monthly users, and spun out as an independent company in 2023.

Technologies: JavaScript, TypeScript, HTML5, PHP

Visit website · GitHub

Related expertise: Backend & infrastructure, Audio & speech

ResponsiveVoice

Overview

ResponsiveVoice is a JavaScript text-to-speech API that runs in the browser. By the time it spun out as an independent company, it was reaching 90M+ monthly users across millions of websites.

The library supports 100+ voices across 50+ languages. It has a widget that follows the reader through the article, highlights the current passage, and lets them jump directly to the part they care about.

It has a browser SDK for websites and apps, and a REST API for server-side integration.

Background

This project started as an internal accessibility feature inside the Hyperspace platform around 2014. I built the first version of the library in one weekend and started using it immediately in our experiences.

As demand from outside the platform grew, we packaged it as a standalone product. In 2023 it spun out as an independent company. More about that time in Becoming a CTO.

In 2025 we migrated the library to TypeScript and added support for AI voices from Google Cloud, Microsoft Azure, OpenAI and others.

How it works

Native voices come first. Most browsers and operating systems ship their own speech engine, and the library uses it whenever it can. On a device without one, it switches to our voice service, a small PHP gateway that gets the audio from a real-time TTS provider and sends it back.

Long text was the tricky part. Speech engines only accept so many characters at once, so the library cuts long text into pieces and plays them one after another. The hand-off between pieces has to be timed precisely, or the voice stops sounding natural.

The voice service grew into one of the busiest parts of the product. With 90 million users a month, the audio it served had to be cached and stored on a very large scale.

My involvement

More about this project, by area:

View as Markdown