gruut-ipa


Namegruut-ipa JSON
Version 0.13.0 PyPI version JSON
download
home_pagehttps://github.com/rhasspy/gruut-ipa
SummaryLibrary for manipulating pronunciations using the International Phonetic Alphabet (IPA)
upload_time2022-03-11 16:12:48
maintainer
docs_urlNone
authorMichael Hansen
requires_python>=3.6
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Gruut IPA

Library for manipulating [International Phonetic Alphabet](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet) (IPA) pronunciations.

Features include:

* Getting the category and details of a phone, e.g. "open front unrounded vowel" for ɶ
* Splitting IPA pronunciations into groups of:
    * Phones (`/ˈt͡ʃuːz/` to `ˈt͡ʃ uː z` )
    * Phonemes (`/kˈaʊ/` to `k ˈaʊ` for U.S. English)
* Converting pronunciations between:
    * IPA
    * [espeak](https://github.com/espeak-ng/)
    * [sampa](https://www.phon.ucl.ac.uk/home/sampa/)
    
Supported Languages:

* Arabic (`ar`)
* Czech (`cs-cz`)
* German (`de-de`)
* U.S. English (`en-us`)
* U.K. English (`en-gb`)
* Spanish (`es-es`)
* Persian/Farsi (`fa`)
* Spanish (`es-es`)
* Italian (`it-it`)
* Luxembourgish (`lb-lb`)
* Dutch (`nl`)
* Portuguese (`pt`)
* Russian (`ru-ru`)
* Swahili (`sw`)
    
## Installing

```sh
$ pip install gruut-ipa
```

## Dependencies

* Python 3.6 or higher

For command-line usage, you may also want:

* [espeak](https://github.com/espeak-ng/)
* [jq](https://stedolan.github.io/jq/)

Install these with:

```sh
$ sudo apt-get install espeak jq
```

## Phones and Phonemes

![IPA phones](img/ipa.png)

Phones in IPA are composed of different components:

* Letters
    * [Non-combining](https://en.wikipedia.org/wiki/Character_(computing)#Terminology) Unicode characters that represent a distinct human sound (phone)
* Suprasegmentals
    * [Non-combining](https://en.wikipedia.org/wiki/Character_(computing)#Terminology) Unicode characters that represent language features above individual vowels or consonants
    * Stress (ˈˌ), elongation (ː), linking/ties (t͡s), and short/long breaks (| ‖) are suprasegmentals
* Diacritics
    * [Combining characters](https://en.wikipedia.org/wiki/Combining_character) that provide additional information about a phone's pronunciation, such as [nasalation](https://en.wikipedia.org/wiki/Nasalization)
    
See [IPA Chart](https://www.ipachart.com/) for more details.

### Phonemes

While phones represent individual sounds, phonemes are the phonetic units of a language that meaningfully distinguish words. A phoneme may be realized by many different phones. For example, the `/r/` in [Standard German](https://en.wikipedia.org/wiki/Standard_German_phonology) can be realized as a uvular fricative (χ/ʁ), a uvular approximant (ɹ), or a uvular tap or trill (ʀ/r).

A phoneme may also be composed of multiple phones, such as the [dipthong](https://en.wikipedia.org/wiki/Diphthong) `aʊ` in U.S. English (the "ow" in "cow").

Supported languages in `gruut-ipa` contain a `phonemes.txt` file in the `gruut_ipa/data` directory. This file has the following format:

```text
<phoneme> <example> [<replace> ...]
```

where `<phoneme>` is a set of IPA letters, like `ɶ` or `aʊ`. The `<example>` is a word whose pronunciation contains the `<phoneme>`. After that, there are one or more optional `<replace>` strings that will be replaced with `<phoneme>`. The German `/r/` example from above might be represented as:

```text
r brot χ ʁ ɹ ʀ
```

Phonemes for a given language come from [phonological analyses](https://en.wikipedia.org/wiki/Template:Language_phonologies) and from [public databases](https://phoible.org/). Ultimately, they are geared towards capturing pronunciations from [Wiktionary](https://www.wiktionary.org/).
 
## Usage

Print JSON information about phones:

```sh
$ python3 -m gruut_ipa describe "ˈãː" | jq .
{
  "text": "ˈãː",
  "letters": "a",
  "stress": "primary",
  "height": "open",
  "placement": "front",
  "rounded": false,
  "type": "Vowel",
  "nasalated": true,
  "elongated": true
}
```

Split an IPA pronunciation into phones:

```sh
$ python3 -m gruut_ipa phones "ˈjɛs|ˈt͡ʃuːz aɪpiːeɪ‖"
ˈj ɛ s | ˈt͡ʃ uː z a ɪ p iː e ɪ ‖
```

Group phones into phonemes for a specific language:

```sh
$ python3 -m gruut_ipa phonemes en-us "/dʒʌst ə kaʊ/"
d͡ʒ ʌ s t ə k aʊ
```

Convert between IPA, [espeak](https://github.com/espeak-ng/), and [sampa](https://www.phon.ucl.ac.uk/home/sampa/):

```sh
$ python3 -m gruut_ipa convert ipa espeak "mʊmˈbaɪ"
[[mUm'baI]]

$ python3 -m gruut_ipa convert espeak ipa "[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]"
ðˌɪs ɪz sʌm fɘnˈɛtɪk tˈɛkst ˈɪnpʊt
```

Chain commands together:

```sh
$ python3 -m gruut_ipa convert espeak ipa "[[k'aU]]" | \
    python3 -m gruut_ipa phonemes en-us --keep-stress
k ˈaʊ
```

### Alternative Phoneme Sets

Some languages have multiple phoneme sets available:

* U.S. English (`en-us`)
    * CMUDict (`en-us/cmudict`)
    * [Zamia](https://github.com/gooofy/zamia-speech) (`en-us/zamia`)
* Swahili (`sw`)
    * [ALFFA](http://alffa.imag.fr/) (`sw/alffa`)
    
Convert from IPA to alternative phoneme set:

```sh
$ python3 -m gruut_ipa convert ipa en-us/cmudict "h ɛ l ˈoʊ w ˈɚ l d"
HH EH0 L OW1 W ER1 L D
```

Convert from alternative phoneme set to IPA:

```sh
$ python3 -m gruut_ipa convert en-us/cmudict ipa "HH EH0 L OW1 W ER1 L D"
h ɛ l ˈoʊ w ˈɚ l d
```

## Scripts

Use the `speak-ipa` script to have [espeak](https://github.com/espeak-ng/) pronounce IPA. You may need to `apt-get install espeak` first.

```sh
$ echo '/hɛloʊ wɝld/' | bin/speak-ipa en-us -s 60 -w 'hello world.wav'
$ aplay 'hello world.wav'
```

## Phones

Supported IPA phones can be printed with:

```sh
$ python3 -m gruut_ipa print
{"text": "i", "letters": "i", "stress": "none", "height": "close", "placement": "front", "rounded": false, "type": "Vowel", "nasalated": false, "elongated": false, "description": "close front unrounded vowel", "espeak": "i", "sampa": "i"}
{"text": "y", "letters": "y", "stress": "none", "height": "close", "placement": "front", "rounded": true, "type": "Vowel", "nasalated": false, "elongated": false, "description": "close front rounded vowel", "espeak": "y", "sampa": "y"}
...
```

A nice table can be generated with [jq](https://stedolan.github.io/jq/):

```sh
$ python3 -m gruut_ipa print | \
    jq -r '. | "\(.text)\t\(.espeak)\t\(.sampa)\t\(.description)"'
```

Converted to Markdown:

| IPA  | eSpeak | Sampa   | Description                           |
| ---- | -----  | ------- | -----------------------------------   |
| i    | i      | i       | close front unrounded vowel           |
| y    | y      | y       | close front rounded vowel             |
| ɨ    | i"     | 1       | close central unrounded vowel         |
| ʉ    | u"     | }       | close central rounded vowel           |
| ɯ    | u-     | M       | close back unrounded vowel            |
| u    | u      | u       | close back rounded vowel              |
| ɪ    | I      | I       | near-close near-front unrounded vowel |
| ʏ    | I.     | Y       | near-close near-front rounded vowel   |
| ʊ    | U      | U       | near-close near-back rounded vowel    |
| e    | e      | e       | close-mid front unrounded vowel       |
| ø    | Y      | 2       | close-mid front rounded vowel         |
| ɘ    | @      | @\\     | close-mid central unrounded vowel     |
| ɵ    | @.     | 8       | close-mid central rounded vowel       |
| ɤ    | o-     | 7       | close-mid back unrounded vowel        |
| o    | o      | o       | close-mid back rounded vowel          |
| ɛ    | E      | E       | open-mid front unrounded vowel        |
| œ    | W      | 9       | open-mid front rounded vowel          |
| ɜ    | V"     | 3       | open-mid central unrounded vowel      |
| ɞ    | O"     | 3\\     | open-mid central rounded vowel        |
| ʌ    | V      | V       | open-mid back unrounded vowel         |
| ɔ    | O      | O       | open-mid back rounded vowel           |
| æ    | a      | {       | near-open front unrounded vowel       |
| ɐ    | V      | 6       | near-open central unrounded vowel     |
| a    | a      | a       | open front unrounded vowel            |
| ɶ    | W      | &       | open front rounded vowel              |
| ɑ    | A      | A       | open back unrounded vowel             |
| ɒ    | A.     | Q       | open back rounded vowel               |
| m    | m      | m       | voiced bilabial nasal                 |
| ɱ    | M      | F       | voiced labio-dental nasal             |
| n    | n      | n       | voiced alveolar nasal                 |
| ɳ    | n.     | n\`     | voiced retroflex nasal                |
| ŋ    | N      | N       | voiced velar nasal                    |
| ɴ    | n"     | N\\     | voiced uvular nasal                   |
| p    | p      | p       | voiceless bilabial plosive            |
| b    | b      | b       | voiced bilabial plosive               |
| t    | t      | t       | voiceless alveolar plosive            |
| d    | d      | d       | voiced alveolar plosive               |
| ʈ    | t.     | t\`     | voiceless retroflex plosive           |
| ɖ    | d.     | d\`     | voiced retroflex plosive              |
| c    | c      | c       | voiceless palatal plosive             |
| ɟ    | J      | J\\     | voiced palatal plosive                |
| k    | k      | k       | voiceless velar plosive               |
| ɡ    | g      | g       | voiced velar plosive                  |
| g    | g      | g       | voiced velar plosive                  |
| q    | q      | q       | voiceless uvular plosive              |
| ɢ    | G      | G\\     | voiced uvular plosive                 |
| ʡ    |        | >\\     | voiceless pharyngeal plosive          |
| ʔ    | ?      | ?       | voiceless glottal plosive             |
| p͡f   | pf     | pf      | voiceless labio-dental affricate      |
| b͡v   | bv     | bv      | voiced dental affricate               |
| t̪͡s   | ts     | t_ds    | voiceless dental affricate            |
| t͡s   | ts     | ts      | voiceless alveolar affricate          |
| d͡z   | dz     | dz      | voiced alveolar affricate             |
| t͡ʃ   | tS     | tS      | voiceless post-alveolar affricate     |
| d͡ʒ   | dZ     | dZ      | voiced post-alveolar affricate        |
| ʈ͡ʂ   | tS     | ts\`    | voiceless retroflex affricate         |
| ɖ͡ʐ   | dz     | dz\`    | voiced retroflex affricate            |
| t͡ɕ   | tS;    | ts\\    | voiceless palatal affricate           |
| d͡ʑ   | dZ;    | dz\\    | voiced palatal affricate              |
| k͡x   | k      | k_x     | voiceless velar affricate             |
| ɸ    | F      | p\\     | voiceless bilabial fricative          |
| β    | B      | B       | voiced bilabial fricative             |
| f    | f      | f       | voiceless labio-dental fricative      |
| v    | v      | v       | voiced labio-dental fricative         |
| θ    | T      | T       | voiceless dental fricative            |
| ð    | D      | D       | voiced dental fricative               |
| s    | s      | s       | voiceless alveolar fricative          |
| z    | z      | z       | voiced alveolar fricative             |
| ʃ    | S      | S       | voiceless post-alveolar fricative     |
| ʒ    | Z      | Z       | voiced post-alveolar fricative        |
| ʂ    | s.     | s\`     | voiceless retroflex fricative         |
| ʐ    | z.     | z\`     | voiced palatal fricative              |
| ç    | C      | C       | voiceless palatal fricative           |
| x    | x      | x       | voiceless velar fricative             |
| ɣ    | Q      | G       | voiced velar fricative                |
| χ    | X      | X       | voiceless uvular fricative            |
| ʁ    | g"     | R       | voiced uvular fricative               |
| ħ    | H      | X\\     | voiceless pharyngeal fricative        |
| h    | h      | h       | voiceless glottal fricative           |
| ɦ    | h<?>   | h\\     | voiced glottal fricative              |
| w    | w      | w       | voiced bilabial approximant           |
| ʋ    | v#     | v\\     | voiced labio-dental approximant       |
| ɹ    | r      | r\\     | voiced alveolar approximant           |
| ɻ    | r.     | r\\\`   | voiced retroflex approximant          |
| j    | j      | j       | voiced palatal approximant            |
| ɰ    | Q      | M\\     | voiced velar approximant              |
| ⱱ    | ⱱ      | ⱱ       | voiced labio-dental flap              |
| ɾ    | *      | 4       | voiced alveolar flap                  |
| ɽ    | *.     | r\`     | voiced retroflex flap                 |
| ʙ    | b<trl> | B\\     | voiced bilabial trill                 |
| r    | r<trl> | r       | voiced alveolar trill                 |
| ʀ    | r"     | R\\     | voiced uvular trill                   |
| l    | l      | l       | voiced alveolar lateral-approximant   |
| ɫ    | l      | 5       | voiced alveolar lateral-approximant   |
| ɭ    | l.     | l\`     | voiced retroflex lateral-approximant  |
| ʎ    | l^     | L       | voiced palatal lateral-approximant    |
| ʟ    | L      | L\\     | voiced velar lateral-approximant      |
| ə    | @      | @       | schwa                                 |
| ɚ    | 3      | @\`     | r-coloured schwa                      |
| ɝ    | 3      | @\`     | r-coloured schwa                      |
| ɹ̩    | r-     | r\\̩     | voiced alveolar approximant           |

If you see anything wrong or missing, please let me know.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/rhasspy/gruut-ipa",
    "name": "gruut-ipa",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "Michael Hansen",
    "author_email": "mike@rhasspy.org",
    "download_url": "https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz",
    "platform": null,
    "description": "# Gruut IPA\n\nLibrary for manipulating [International Phonetic Alphabet](https://en.wikipedia.org/wiki/International_Phonetic_Alphabet) (IPA) pronunciations.\n\nFeatures include:\n\n* Getting the category and details of a phone, e.g. \"open front unrounded vowel\" for \u0276\n* Splitting IPA pronunciations into groups of:\n    * Phones (`/\u02c8t\u0361\u0283u\u02d0z/` to `\u02c8t\u0361\u0283 u\u02d0 z` )\n    * Phonemes (`/k\u02c8a\u028a/` to `k \u02c8a\u028a` for U.S. English)\n* Converting pronunciations between:\n    * IPA\n    * [espeak](https://github.com/espeak-ng/)\n    * [sampa](https://www.phon.ucl.ac.uk/home/sampa/)\n    \nSupported Languages:\n\n* Arabic (`ar`)\n* Czech (`cs-cz`)\n* German (`de-de`)\n* U.S. English (`en-us`)\n* U.K. English (`en-gb`)\n* Spanish (`es-es`)\n* Persian/Farsi (`fa`)\n* Spanish (`es-es`)\n* Italian (`it-it`)\n* Luxembourgish (`lb-lb`)\n* Dutch (`nl`)\n* Portuguese (`pt`)\n* Russian (`ru-ru`)\n* Swahili (`sw`)\n    \n## Installing\n\n```sh\n$ pip install gruut-ipa\n```\n\n## Dependencies\n\n* Python 3.6 or higher\n\nFor command-line usage, you may also want:\n\n* [espeak](https://github.com/espeak-ng/)\n* [jq](https://stedolan.github.io/jq/)\n\nInstall these with:\n\n```sh\n$ sudo apt-get install espeak jq\n```\n\n## Phones and Phonemes\n\n![IPA phones](img/ipa.png)\n\nPhones in IPA are composed of different components:\n\n* Letters\n    * [Non-combining](https://en.wikipedia.org/wiki/Character_(computing)#Terminology) Unicode characters that represent a distinct human sound (phone)\n* Suprasegmentals\n    * [Non-combining](https://en.wikipedia.org/wiki/Character_(computing)#Terminology) Unicode characters that represent language features above individual vowels or consonants\n    * Stress (\u02c8\u02cc), elongation (\u02d0), linking/ties (t\u0361s), and short/long breaks (| \u2016) are suprasegmentals\n* Diacritics\n    * [Combining characters](https://en.wikipedia.org/wiki/Combining_character) that provide additional information about a phone's pronunciation, such as [nasalation](https://en.wikipedia.org/wiki/Nasalization)\n    \nSee [IPA Chart](https://www.ipachart.com/) for more details.\n\n### Phonemes\n\nWhile phones represent individual sounds, phonemes are the phonetic units of a language that meaningfully distinguish words. A phoneme may be realized by many different phones. For example, the `/r/` in [Standard German](https://en.wikipedia.org/wiki/Standard_German_phonology) can be realized as a uvular fricative (\u03c7/\u0281), a uvular approximant (\u0279), or a uvular tap or trill (\u0280/r).\n\nA phoneme may also be composed of multiple phones, such as the [dipthong](https://en.wikipedia.org/wiki/Diphthong) `a\u028a` in U.S. English (the \"ow\" in \"cow\").\n\nSupported languages in `gruut-ipa` contain a `phonemes.txt` file in the `gruut_ipa/data` directory. This file has the following format:\n\n```text\n<phoneme> <example> [<replace> ...]\n```\n\nwhere `<phoneme>` is a set of IPA letters, like `\u0276` or `a\u028a`. The `<example>` is a word whose pronunciation contains the `<phoneme>`. After that, there are one or more optional `<replace>` strings that will be replaced with `<phoneme>`. The German `/r/` example from above might be represented as:\n\n```text\nr brot \u03c7 \u0281 \u0279 \u0280\n```\n\nPhonemes for a given language come from [phonological analyses](https://en.wikipedia.org/wiki/Template:Language_phonologies) and from [public databases](https://phoible.org/). Ultimately, they are geared towards capturing pronunciations from [Wiktionary](https://www.wiktionary.org/).\n \n## Usage\n\nPrint JSON information about phones:\n\n```sh\n$ python3 -m gruut_ipa describe \"\u02c8\u00e3\u02d0\" | jq .\n{\n  \"text\": \"\u02c8\u00e3\u02d0\",\n  \"letters\": \"a\",\n  \"stress\": \"primary\",\n  \"height\": \"open\",\n  \"placement\": \"front\",\n  \"rounded\": false,\n  \"type\": \"Vowel\",\n  \"nasalated\": true,\n  \"elongated\": true\n}\n```\n\nSplit an IPA pronunciation into phones:\n\n```sh\n$ python3 -m gruut_ipa phones \"\u02c8j\u025bs|\u02c8t\u0361\u0283u\u02d0z a\u026api\u02d0e\u026a\u2016\"\n\u02c8j \u025b s | \u02c8t\u0361\u0283 u\u02d0 z a \u026a p i\u02d0 e \u026a \u2016\n```\n\nGroup phones into phonemes for a specific language:\n\n```sh\n$ python3 -m gruut_ipa phonemes en-us \"/d\u0292\u028cst \u0259 ka\u028a/\"\nd\u0361\u0292 \u028c s t \u0259 k a\u028a\n```\n\nConvert between IPA, [espeak](https://github.com/espeak-ng/), and [sampa](https://www.phon.ucl.ac.uk/home/sampa/):\n\n```sh\n$ python3 -m gruut_ipa convert ipa espeak \"m\u028am\u02c8ba\u026a\"\n[[mUm'baI]]\n\n$ python3 -m gruut_ipa convert espeak ipa \"[[D,Is Iz sVm f@n'EtIk t'Ekst 'InpUt]]\"\n\u00f0\u02cc\u026as \u026az s\u028cm f\u0258n\u02c8\u025bt\u026ak t\u02c8\u025bkst \u02c8\u026anp\u028at\n```\n\nChain commands together:\n\n```sh\n$ python3 -m gruut_ipa convert espeak ipa \"[[k'aU]]\" | \\\n    python3 -m gruut_ipa phonemes en-us --keep-stress\nk \u02c8a\u028a\n```\n\n### Alternative Phoneme Sets\n\nSome languages have multiple phoneme sets available:\n\n* U.S. English (`en-us`)\n    * CMUDict (`en-us/cmudict`)\n    * [Zamia](https://github.com/gooofy/zamia-speech) (`en-us/zamia`)\n* Swahili (`sw`)\n    * [ALFFA](http://alffa.imag.fr/) (`sw/alffa`)\n    \nConvert from IPA to alternative phoneme set:\n\n```sh\n$ python3 -m gruut_ipa convert ipa en-us/cmudict \"h \u025b l \u02c8o\u028a w \u02c8\u025a l d\"\nHH EH0 L OW1 W ER1 L D\n```\n\nConvert from alternative phoneme set to IPA:\n\n```sh\n$ python3 -m gruut_ipa convert en-us/cmudict ipa \"HH EH0 L OW1 W ER1 L D\"\nh \u025b l \u02c8o\u028a w \u02c8\u025a l d\n```\n\n## Scripts\n\nUse the `speak-ipa` script to have [espeak](https://github.com/espeak-ng/) pronounce IPA. You may need to `apt-get install espeak` first.\n\n```sh\n$ echo '/h\u025blo\u028a w\u025dld/' | bin/speak-ipa en-us -s 60 -w 'hello world.wav'\n$ aplay 'hello world.wav'\n```\n\n## Phones\n\nSupported IPA phones can be printed with:\n\n```sh\n$ python3 -m gruut_ipa print\n{\"text\": \"i\", \"letters\": \"i\", \"stress\": \"none\", \"height\": \"close\", \"placement\": \"front\", \"rounded\": false, \"type\": \"Vowel\", \"nasalated\": false, \"elongated\": false, \"description\": \"close front unrounded vowel\", \"espeak\": \"i\", \"sampa\": \"i\"}\n{\"text\": \"y\", \"letters\": \"y\", \"stress\": \"none\", \"height\": \"close\", \"placement\": \"front\", \"rounded\": true, \"type\": \"Vowel\", \"nasalated\": false, \"elongated\": false, \"description\": \"close front rounded vowel\", \"espeak\": \"y\", \"sampa\": \"y\"}\n...\n```\n\nA nice table can be generated with [jq](https://stedolan.github.io/jq/):\n\n```sh\n$ python3 -m gruut_ipa print | \\\n    jq -r '. | \"\\(.text)\\t\\(.espeak)\\t\\(.sampa)\\t\\(.description)\"'\n```\n\nConverted to Markdown:\n\n| IPA  | eSpeak | Sampa   | Description                           |\n| ---- | -----  | ------- | -----------------------------------   |\n| i    | i      | i       | close front unrounded vowel           |\n| y    | y      | y       | close front rounded vowel             |\n| \u0268    | i\"     | 1       | close central unrounded vowel         |\n| \u0289    | u\"     | }       | close central rounded vowel           |\n| \u026f    | u-     | M       | close back unrounded vowel            |\n| u    | u      | u       | close back rounded vowel              |\n| \u026a    | I      | I       | near-close near-front unrounded vowel |\n| \u028f    | I.     | Y       | near-close near-front rounded vowel   |\n| \u028a    | U      | U       | near-close near-back rounded vowel    |\n| e    | e      | e       | close-mid front unrounded vowel       |\n| \u00f8    | Y      | 2       | close-mid front rounded vowel         |\n| \u0258    | @      | @\\\\     | close-mid central unrounded vowel     |\n| \u0275    | @.     | 8       | close-mid central rounded vowel       |\n| \u0264    | o-     | 7       | close-mid back unrounded vowel        |\n| o    | o      | o       | close-mid back rounded vowel          |\n| \u025b    | E      | E       | open-mid front unrounded vowel        |\n| \u0153    | W      | 9       | open-mid front rounded vowel          |\n| \u025c    | V\"     | 3       | open-mid central unrounded vowel      |\n| \u025e    | O\"     | 3\\\\     | open-mid central rounded vowel        |\n| \u028c    | V      | V       | open-mid back unrounded vowel         |\n| \u0254    | O      | O       | open-mid back rounded vowel           |\n| \u00e6    | a      | {       | near-open front unrounded vowel       |\n| \u0250    | V      | 6       | near-open central unrounded vowel     |\n| a    | a      | a       | open front unrounded vowel            |\n| \u0276    | W      | &       | open front rounded vowel              |\n| \u0251    | A      | A       | open back unrounded vowel             |\n| \u0252    | A.     | Q       | open back rounded vowel               |\n| m    | m      | m       | voiced bilabial nasal                 |\n| \u0271    | M      | F       | voiced labio-dental nasal             |\n| n    | n      | n       | voiced alveolar nasal                 |\n| \u0273    | n.     | n\\`     | voiced retroflex nasal                |\n| \u014b    | N      | N       | voiced velar nasal                    |\n| \u0274    | n\"     | N\\\\     | voiced uvular nasal                   |\n| p    | p      | p       | voiceless bilabial plosive            |\n| b    | b      | b       | voiced bilabial plosive               |\n| t    | t      | t       | voiceless alveolar plosive            |\n| d    | d      | d       | voiced alveolar plosive               |\n| \u0288    | t.     | t\\`     | voiceless retroflex plosive           |\n| \u0256    | d.     | d\\`     | voiced retroflex plosive              |\n| c    | c      | c       | voiceless palatal plosive             |\n| \u025f    | J      | J\\\\     | voiced palatal plosive                |\n| k    | k      | k       | voiceless velar plosive               |\n| \u0261    | g      | g       | voiced velar plosive                  |\n| g    | g      | g       | voiced velar plosive                  |\n| q    | q      | q       | voiceless uvular plosive              |\n| \u0262    | G      | G\\\\     | voiced uvular plosive                 |\n| \u02a1    |        | >\\\\     | voiceless pharyngeal plosive          |\n| \u0294    | ?      | ?       | voiceless glottal plosive             |\n| p\u0361f   | pf     | pf      | voiceless labio-dental affricate      |\n| b\u0361v   | bv     | bv      | voiced dental affricate               |\n| t\u032a\u0361s   | ts     | t_ds    | voiceless dental affricate            |\n| t\u0361s   | ts     | ts      | voiceless alveolar affricate          |\n| d\u0361z   | dz     | dz      | voiced alveolar affricate             |\n| t\u0361\u0283   | tS     | tS      | voiceless post-alveolar affricate     |\n| d\u0361\u0292   | dZ     | dZ      | voiced post-alveolar affricate        |\n| \u0288\u0361\u0282   | tS     | ts\\`    | voiceless retroflex affricate         |\n| \u0256\u0361\u0290   | dz     | dz\\`    | voiced retroflex affricate            |\n| t\u0361\u0255   | tS;    | ts\\\\    | voiceless palatal affricate           |\n| d\u0361\u0291   | dZ;    | dz\\\\    | voiced palatal affricate              |\n| k\u0361x   | k      | k_x     | voiceless velar affricate             |\n| \u0278    | F      | p\\\\     | voiceless bilabial fricative          |\n| \u03b2    | B      | B       | voiced bilabial fricative             |\n| f    | f      | f       | voiceless labio-dental fricative      |\n| v    | v      | v       | voiced labio-dental fricative         |\n| \u03b8    | T      | T       | voiceless dental fricative            |\n| \u00f0    | D      | D       | voiced dental fricative               |\n| s    | s      | s       | voiceless alveolar fricative          |\n| z    | z      | z       | voiced alveolar fricative             |\n| \u0283    | S      | S       | voiceless post-alveolar fricative     |\n| \u0292    | Z      | Z       | voiced post-alveolar fricative        |\n| \u0282    | s.     | s\\`     | voiceless retroflex fricative         |\n| \u0290    | z.     | z\\`     | voiced palatal fricative              |\n| \u00e7    | C      | C       | voiceless palatal fricative           |\n| x    | x      | x       | voiceless velar fricative             |\n| \u0263    | Q      | G       | voiced velar fricative                |\n| \u03c7    | X      | X       | voiceless uvular fricative            |\n| \u0281    | g\"     | R       | voiced uvular fricative               |\n| \u0127    | H      | X\\\\     | voiceless pharyngeal fricative        |\n| h    | h      | h       | voiceless glottal fricative           |\n| \u0266    | h<?>   | h\\\\     | voiced glottal fricative              |\n| w    | w      | w       | voiced bilabial approximant           |\n| \u028b    | v#     | v\\\\     | voiced labio-dental approximant       |\n| \u0279    | r      | r\\\\     | voiced alveolar approximant           |\n| \u027b    | r.     | r\\\\\\`   | voiced retroflex approximant          |\n| j    | j      | j       | voiced palatal approximant            |\n| \u0270    | Q      | M\\\\     | voiced velar approximant              |\n| \u2c71    | \u2c71      | \u2c71       | voiced labio-dental flap              |\n| \u027e    | *      | 4       | voiced alveolar flap                  |\n| \u027d    | *.     | r\\`     | voiced retroflex flap                 |\n| \u0299    | b<trl> | B\\\\     | voiced bilabial trill                 |\n| r    | r<trl> | r       | voiced alveolar trill                 |\n| \u0280    | r\"     | R\\\\     | voiced uvular trill                   |\n| l    | l      | l       | voiced alveolar lateral-approximant   |\n| \u026b    | l      | 5       | voiced alveolar lateral-approximant   |\n| \u026d    | l.     | l\\`     | voiced retroflex lateral-approximant  |\n| \u028e    | l^     | L       | voiced palatal lateral-approximant    |\n| \u029f    | L      | L\\\\     | voiced velar lateral-approximant      |\n| \u0259    | @      | @       | schwa                                 |\n| \u025a    | 3      | @\\`     | r-coloured schwa                      |\n| \u025d    | 3      | @\\`     | r-coloured schwa                      |\n| \u0279\u0329    | r-     | r\\\\\u0329     | voiced alveolar approximant           |\n\nIf you see anything wrong or missing, please let me know.\n\n\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "Library for manipulating pronunciations using the International Phonetic Alphabet (IPA)",
    "version": "0.13.0",
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "519f7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7",
                "md5": "e2b33af3c4c79dc9e39f9cf2384d0382",
                "sha256": "71776eb99f46e119ab14d3d4e536f54317133607cc2f6bad9711ab51f1bec66e"
            },
            "downloads": -1,
            "filename": "gruut-ipa-0.13.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e2b33af3c4c79dc9e39f9cf2384d0382",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 101592,
            "upload_time": "2022-03-11T16:12:48",
            "upload_time_iso_8601": "2022-03-11T16:12:48.647158Z",
            "url": "https://files.pythonhosted.org/packages/51/9f/7eff478e38913cc9930527ff40c9ebcb04744dfcd0ddd43bd5a1eb9565b7/gruut-ipa-0.13.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2022-03-11 16:12:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "rhasspy",
    "github_project": "gruut-ipa",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "tox": true,
    "lcname": "gruut-ipa"
}
        
Elapsed time: 0.04805s