I'm working on a website(*) that provides word pronunciation guides for a general audience that cannot be expected to know IPA symbols.

It would be enormously helpful to have a tool where I could paste or highlight ē-thē-ˈō-pē-ə and get back ee-thee-O-pee-uh , for example. (A Chrome extension would be most helpful, or a website, but any tool can be adapted.)

I found a similar question asked in 2013 but 4 years is a long time on the web; in 2013 the best answer was "learn the IPA" which is not a useful answer for my purposes.

There are a great many books and web sites out there where pronunciation guides are supplied which give common words as examples of a given phoneme, and then use the 26 letters of the standard English alphabet to provide phonetic pronunciations; that's what I want to emulate. I'm not trying to bootstrap English for learners, I'm trying to help people who are already fluent in English learn the pronunciation of unfamiliar vocabulary. To stress the point, "Learn the IPA" is inappropriate for my target user audience.

An example of the type of phonetic representation I want to provide is at this Biblical name glossary which gives a simple spelling of the sound of each name.

(*) The OEDILF -- an audacious attempt to provide a limerick for every word in the English language. New contributors very welcome.

  • 2
    Based on your example input, you are apparently not using IPA as input, it's some other transcriptional scheme. You may have to do some pre-processing to convert your input into IPA, and then into... spelling, I assume, not ASCII. Are you really just looking for a unicode-to-ASCII reduction table?
    – user6726
    Commented Apr 19, 2017 at 13:46
  • 8
    "Learn the IPA" is still the best answer. There's no hope for using a non-phonetic system that's based on English spelling. That's like building an electric airplane with an extension cable. English spelling, no matter how you twist it, is not going to communicate the phonetic sounds involved, nor how to pronounce or recognize them.
    – jlawler
    Commented Apr 19, 2017 at 15:35
  • 3
    The best answer is "Learn the IPA", or, for an audience, "Teach them the IPA". It's what actual dictionaries do, and it's what your glossaries should do, too. Here's some random ideas to make it easier: use either Javascript or server-side code to i) automatically hyperlink every IPA character to a short, dedicated tutorial page; ii) play a sample audio of the character on hover; iii) add text-to-speech audio samples for entire words (generators work pretty fine for English these days; you can pre-generate them with a script). Commented Apr 19, 2017 at 18:09
  • 1
    As an exercise, how would you convey the pronunciation of February in writing, without using IPA, if the readers don't speak English (let's say, they speak Spanish, Chinese, or Arabic). The only decent way to teach pronunciation is auditorily. English synthesis is pretty good, these days.
    – user6726
    Commented Apr 19, 2017 at 21:51
  • 1
    There are a great many books and web sites out there where pronunciation guides are supplied which give common words as examples of a given phoneme, that's what I want to emulate. I'm not trying to bootstrap English for learners, I'm trying to help people who are already fluent in English learn the pronunciation of unfamiliar vocabulary. To stress the point, "Learn the IPA" is completely inappropriate for my target audience.
    – arp
    Commented Apr 20, 2017 at 2:55

4 Answers 4


There is a library called Unidecode that translates any unicode (that includes IPA) to ascii. It is available in python and .net as far as I know. From what I see, you are using php in that site. I have not tried it, but there is a PHP-version of it here: https://github.com/alexei/silverstripe-unidecode


As others have said, there's a reason linguists use the IPA (or a variant such as X-SAMPA or Americanist) instead of English spelling—if English spelling could clearly indicate pronunciation, you wouldn't be needing this tool in the first place! (Apart from that, ē-thē-ˈō-pē-ə isn't IPA; it looks a bit like the system the American Heritage Dictionary uses? So any existing tools for translating IPA aren't going to help you.)

Instead, you just need to decide on a transcription for each of the 27 or so English vowels and diphthongs, as well as the 25 or so consonants, then do a find-and-replace for each.

However…this is just creating another new transcription system that your users need to memorize. There are a lot of contrasts that exist in some dialects but not others: a friend of mine in England pronounces "bath" and "palm" with the same vowel, separate from both "trap" and "cloth", but I (in America) pronounce "bath" like "trap" and "palm" like "cloth". This means, for your program to be useful to both me and my friend, you'll need separate symbols for all four—and if those symbols aren't intuitively understandable, we'll just be memorizing them, exactly like we'd do for the IPA. Except that, unlike the IPA, this specific transcription system is only useful on your website and nowhere else.

Instead, I'd recommend using the IPA (which can represent all these categories in a standardized way), and using something like the HTML <abbr> tag to make looking it up easy: if I hover my cursor over the symbol æ, a tooltip shows up telling me it's the vowel in "bath". If I need to check the pronunciation for a specific word, I can do that without learning the IPA, and if I need to use the tool over and over, I'll eventually have learned some IPA symbols that could be useful later.

  • As I have said repeatedly, my target audience will take one look at IPA and run away screaming. There are pronunciation guides in books for elementary school students that don't use IPA, that's the kind of thing I'm looking for.
    – arp
    Commented Sep 20, 2019 at 17:59
  • 4
    @arp In that case you can make up your own—but either way, you need four symbols for the vowels in "trap", "bath", "palm", and "cloth", for example. I don't know of any way to do that without adding new letters or diacritics (or something like "ae aa ao aao"). Your audience will still need to memorize some sort of system—the question's just whether that system will be useful anywhere else in the world, or only on your website.
    – Draconis
    Commented Sep 20, 2019 at 18:00
  • 1
    @arp How are you even going to get around the problem of different dialects of English having different pronunciations for the same words?
    – Orion
    Commented Sep 25, 2019 at 22:34
  • Nothing will be perfect, but I'm looking at a solution geared for casual readers.
    – arp
    Commented Sep 25, 2019 at 22:36
  • @arp In that case I would agree with user6726 - use a speech synthesizer if IPA is not an option. I don't think you are giving users enough credit on this one, though. It's not that hard.
    – Orion
    Commented Sep 25, 2019 at 22:40

The "best" answer always depends upon the problem.

"Learn IPA" is certainly the most widely useful answer, but it may not be possible for the people you are dealing with...

One use I can think of is to take one language, translate it to IPA then translate the IPA to the nearest phonetic equivalent words in a second language.

While it does not do a lot of things, it does make it possible for someone to learn to pronounce phrases knowing no more than their own language. For translation aimed at illiterate people, this would be fast and immediately useful--often serious considerations.

Ideally, every language would have IPA as it's written form--no silent letters or words. Every written symbol pronounceable. This would be highly useful and it even saves data space, it would put everyone a step up on learning any new language, and provide an instant written language for any verbal language.

What is needed is a way to translate the 80% of communications which, being non-verbal, cannot be represented in IPA.


The CMU Pronouncing Dictionary might fit your needs. It has an open licence and has SDKs for various languages (GIYF for your particular needs, there is at least JS, Python, etc.). The dictionary uses the ARPABET system natively (which looks like the type of representation that you are looking for) but also has converters to IPA, which I think is always better to have as an option, even if it is an extra option that requires the more nerdy types to activate it manually.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.