68

As many amateurs and beginners know, IPA is difficult to memorize and internalize at first. Does software exist where one can paste in IPA text and hear synthesized speech (ideally in the form of a web page converter)?

I realize that such software would have to have caveats: it would be language specific since IPA to sound mappings can vary among languages, it would sound artificial and thus not be a completely accurate compared to the real sound of a given dialect, it might not get syllable stress right without diacritics. Nonetheless, it could be helpful when one reads a IPA representation of a dialect that one does not have a recording of and has not heard in real life.

This question is similar, but not the same as it is basically asking for a text-to-text lookup table. Some of the links in this answer are good for audio of individual phonemes (fascinating in itself), but do not seem to aggregate them into words.

This online forum mentions a converter here, but it seems to be mostly discontinued and not IPA as far as I can tell.

If this does not exist, I am considering writing a crude one based on the clips from here. I wonder what I will learn through that process.

6
  • 2
    I did use Microsofts speech SDK once upon a time, but it didn't work as expected. I passed in Greek IPA words in their correct representation, but they did not sound good (the robot had still a slight American accent). I had to tweak a lot in order to make it sound good, but the IPA representation ended up being far from accurate.
    – Midas
    Commented Oct 21, 2014 at 6:37
  • Similar question at superuser.com/q/721036
    – user5306
    Commented May 6, 2015 at 1:02
  • 2
    I don't know of a convertor but there are websites that exemplify pretty well every IPA phone, e.g. the UCLA Phonetics Lab Data page. You can look up IPA by contrast type on the index of sounds. For what you want, maybe you could write a script that takes an IPA symbol and looks it up on this website? Commented May 6, 2015 at 22:40
  • 1
    I am bilingual+ (native English and German, rudimentary Spanish), have a degree in physics and am a software developer. I applaud all the answers and comments here but wanted people to notice all the "this kind of worked" and "this worked except for" responses. We all take speech so much for granted but this question and the responses are a wonderful reminder of just how complex speech and our brains truly are. The brain is a phenomenal organ/machine/computer. Make sure you use yours to its utmost ability!!! Commented Jul 16, 2018 at 16:21
  • 1
    Here's an answer from superuser: superuser.com/questions/721036/… Commented Oct 26, 2018 at 13:47

10 Answers 10

24

IPA Reader is a nice front-end to Amazon's Polly service, configured specifically for IPA text.

Click on the “Read” button for it to read the word “ad hoc” out loud.

5
  • 2
    This should be the top answer - exactly the ticket! Commented May 8, 2020 at 19:05
  • Amazon Polly = Super high quality pronunciations. And this web interface for its IPA pronunciations = Perfection. Thank you! Commented Dec 26, 2020 at 14:56
  • One major downside of this is it only seems to offer American voices Commented Jul 19, 2022 at 10:44
  • 1
    @MichaelFirth: It does offer other voices, but the UI for scrolling down is not so intuitive. It looks like there are only 3 voices, but there are in fact over 40. Commented Jul 19, 2022 at 12:22
  • Polly (and the above link) doesn't seem to work too well. For example "/w/" produces and OO sound.
    – user48956
    Commented Jul 25 at 20:46
18

I'm currently using espeak, an open-source software. Not so bad, even if the voices sound artificial. Details here.

E.g. : (Seneca, Epistulae ad Lucilium, 1.1.1)

espeak -v eo --ipa -s120 -p60 -a20 "[['ita'fak'mi:lu:'ki:li:]]"

i.e. speak with an Esperanto voice (-v eo), print the IPA on the console (--ipa), set the speed at 120 words per minute (-s120; range : 80-500, 260 recommended by the doc), set the pitch to 60 (-p60; range : 0-99), and the amplitude to 20 (-a20; range : 0-100).

1
  • 1
    Couple of things wrong with this. First the --ipa arg seems to be for it to output IPA to STDOUT as it speaks. Second, it doesn't take IPA does it? It takes an ASCII representation with as-close-to-IPA-as-possible syntax. That said, thank you for introducing me, it is an interesting program.
    – Igid
    Commented Apr 15, 2019 at 21:38
16

Amazon Web Services' Polly text-to-speech service supports Speech Synthesis Markup Language (SSML) and specifically its <phoneme> element.

You will need to create an AWS account, but you can then use the 'get started' demo to hear the speech of any (supported) SSML. The demo is here.

For example, I put in the IPA from the Wikipedia article for the Binturong as this /bɪnˈtuːrɒŋ/ like this:

<phoneme alphabet="ipa" ph="/bɪnˈtuːrɒŋ/ ">Binturong</phoneme>

It seems to work pretty well and you can choose from a wide selection of voices.

1
  • I tried AWS Polly and discovered that the IPA given to me by one website for a Portuguese word didn't sound as I expected. My guess is that Polly is correct, but I wish I knew for certain. Commented Oct 2, 2017 at 16:06
9

You might try using mbrola. http://tcts.fpms.ac.be/synthesis/mbrola.html

It's a downloadable speech synthesizer, where you type in a sound and it uses diphone synthesis to play it back.

To play a given sound, you would type in something like this:

_ 200 10 120

a 300 10 120

_ 200 10 120

The above text means, line by line "play silence for 200ms, and at 10% of that 200ms duration, the pitch should be 120Hz. Then play the sound /a/ for 300ms, and at 10% of that the pitch is 120Hz, and then play 200ms of silence again." So it goes duration [tab] pitch-time [tab] pitch value.

It doesn't use IPA, it uses X-SAMPA, but you can easily convert between the two scripts, and the sound file databases will also have IPA in them.

8

There is a phoneme synthesis tool that runs entirely in your browser and converts IPA into sound that you can play in your browser or download as a WAV file. It requires no software to install, no notation to learn (beyond IPA itself), and works quickly and well.

The program is Javascript and uses several of the tools described in other answers. In particular, it uses the free software/open source program eSpeak has been able synthesize speech from something like IPA for years but its notation for describing phonemes is different. As a result, one must first convert from IPA to eSpeak's notation. Once that's done, it will synthesize text. The tool at the URL above does these two steps (IPA→eSpeak phoneme notation→synthesized speech). The page for the tool explains the process and remarks that it is strange that this hasn't been done before.

2
  • 2
    It is an improvement, but it can only handle a subset of IPA: apparently on the English-phoneme subset (not e.g. [ø, β, y, ʕ]. You probably can't see the deleted answer that points to this program.
    – user6726
    Commented Apr 4, 2018 at 16:36
  • Digging through the code of phoneme-synthesis, it seems like there's an en.json which may be able to be swapped out for other languages? Not sure where en.json came from, though.
    – anon
    Commented Nov 19, 2019 at 13:36
5

IBM Text to Speech also supports IPA per their docs here: https://console.bluemix.net/docs/services/text-to-speech/SPRs.html#ipa https://console.bluemix.net/docs/services/text-to-speech/SSML-elements.html#phoneme_element

Here is an example of SSML in ipa to generate audio for the word tomato:

<speak version="1.0">
<phoneme alphabet="ipa" ph="təˈmeɪ.ɾoʊ">tomato</phoneme>
</speak>
4

Google revealed this Reddit thread, but beware that this can fail for some words:

I can think of one, but it's fairly limited to the phonology of American English. Thus, you may get the program to pronounce /kæt/, but not something like /npoks/. Here you go:

http://www2.research.att.com/~ttsweb/tts/demo.php

The syntax of the program is like the following line; just change the value of ph
[but NOT ph itself] to the IPA representation of what you want the program to say and give it a shot.

<phoneme alphabet="ipa" ph="kæt"> </phoneme>

In other words, after visiting that website, replace BLANK with the IPA to be enunciated.

<phoneme alphabet="ipa" ph="BLANK"> </phoneme>


Google also linked to this, but has anyone else been able to operate this? It was last updated in October 2011 and fails to work on my Firefox browser.

Footnote: See this duplicate.

4

Try ekho if you want to synthesize Mandarin and other Chinese dialects. It's open-source and hosted on github.

3

The AT&T text to speech wizard moved to www.wizzardsoftware.com/text-to-speech-sdk.php

3

I found this: http://ipa-reader.xyz

Multiple accents are offered.

At least on my phone I note that mini IPA symbols are not displayed at all. But they work: they are pronounced even though they are not visible on the screen after being pasted in.

1

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.