phoneme synthesis

Convert IPA phonetic notation to speech


how does it work?

Using the computational capabilities exposed by your browser's JavaScript processor, the IPA phonetic notation is translated into phonemes understood by eSpeak using correspondences and logic found in lexconvert. The translated phonemes (e.g., [[mUm'baI]] for /mʊmˈbaɪ/) are then provided to meSpeak.js, a revised Emscripten'd version of eSpeak for output. Once the output has been generated, the pronunciation in WAV format is downloadable.

As this processing takes place within your browser, this page may be downloaded and used offline. By extension, the requested pronunciations are not logged.

improve this tool

Contribute via GitHub.

Report a bug. Be sure to include the problematic input, your browser version (Help > About), operating system version, and device type. File an issue on GitHub or send an e-mail.

Enrich the IPA-phoneme correspondence list. For English, eSpeak recognizes 96 phonemes (dictsource/dict_phonemes). Currently, only 55 are mapped using lexconvert and there may have been mistakes in interpreting lexconvert's conversion scheme. Additional correspondences should improve pronunciation.

Contribute to the underlying libraries. eSpeak, meSpeak.js, or the most current Emscripten'd variation to improve performance/size. meSpeak.js is currently over two megabytes.

about

This browser-based tool integrates GPL-licensed meSpeak.js (a revised Emscripten'd version of eSpeak) and correspondences from lexconvert to parse IPA phonetic notation and convert it to speech.

This tool is also available at <https://www.0n0e.com/public/phoneme-synthesis/>.

contact

person at 0n0e dot com


note

It was odd that this tool did not exist; the underlying components were free (as in beer and freedom) and readily available for years (eSpeak was Emscripten'd in 2011: speak.js) alongside clear demand (e.g., in 2013, r/linguistics and Linguistics Stack Exchange).

There was a bookmarket for AT&T's Natural Voices demo, but the endpoint appears to be no longer available.

eSpeak, unfortunately, does not parse IPA phonetic notation directly, requiring the conversion assisted by lexconvert. Although the Emscripten'd version of eSpeak is somewhat large, two megabytes has become less noticeable as page sizes have increased over time. As a side effect, with no server-side processing and no automatic processing, privacy and security considerations were simplified (with the assumption that meSpeak.js is trustworthy).

Last updated: 2017-01-04