IPA Zounds Manual

Written by Jamie Norrish (jamie@artefact.org.nz)
Published by Artefact Publishing

This documentation applies to version 3.1 of IPA Zounds.

Revision History

18 January 2006

Version 3.1

Totally restructured document, making it focussed on the GUI and having a more tutorial mode. Added and updated content to reflect changes in version 3.1 of the program, such as the new rules syntax.

20 November 2005

Version 3.0

Removed section on the convertipa.py script, since that has been removed from the application. Added section on script mapping files. Updated the IPA Zounds and Zounds sections to reflect their changes in command-line options and programmatic use, plus the additions to the binary features model. Relicenced manual under the GPL.

14 May 2005

Version 2.2

Updated sections on using the various modules to take into account the new packaging of IPA Zounds. Added brief note on installation. Document applies to version 2.3 of IPA Zounds.

20 November 2004

Version 2.1

Added section on the convertipa.py script. Updated sections on command-line options for Zounds and IPA Zounds. Document applies to version 2.1 of IPA Zounds.

7 November 2004

Version 2.0

Added section for suprasegmentals in IPA section, and updated rules sections in both IPA and Zounds sections. Added useful rule patterns to IPA section. Updated section on tones to match features model corrections. Added link to IPA chart. Clarified distinction between Zounds and IPA Zounds in the introduction. Updated Zounds and IPA sections with information on comments in rules and lexicon files. Updated GUI section on fonts. Added section on speeding up IPA Zounds. Updated screenshot of GUI. Add section on installing a GUI toolkit. Document applies to version 2.0 of IPA Zounds.

20 August 2004

Version 1.06

Corrected poor syntax in IPA module's description of missing characters. Document applies to version 1.7 of IPA Zounds.

14 August 2004

Version 1.05

Updated URL for FreeMono font. Updated IPA section to reflect new support for syllable breaks. Document applies to version 1.6 of IPA Zounds.

14 November 2003

Version 1.04

Added FreeMono to list of suitable fonts. Updated command line sections for zounds and ipa modules. Updated screenshot and its accompanying text. Document applies to version 1.5 of IPA Zounds.

3 October 2003

Version 1.03

Fixed validation errors in XML source.

20 September 2003

Version 1.02

Added IPA Zounds -m command line argument description and example. Added description of font change and rule formatting to GUI section. Document applies to version 1.2 of IPA Zounds.

27 June 2003

Version 1.01

Minor updates to GUI section.

23 June 2003

Version 1.0

First release. Document applies to version 1.0 of IPA Zounds.

Table of Contents

Introduction

This is the manual for the IPA Zounds sound change applier.

The website for IPA Zounds is at http://zounds.artefact.org.nz/ and the software can be downloaded from http://zounds.artefact.org.nz/download/.

IPA Zounds operates in a similar fashion to other sound change appliers. Given a set of words and a set of rules describing sound changes, the rules are applied, one at a time and in order, to each of the words. The end result of this process, the set of transformed words, is then displayed.

IPA Zounds features:

Installing and running IPA Zounds

Windows Installer

Users of Microsoft Windows can use the Windows Installer, which includes everything needed to run IPA Zounds. Simply download and run the executable, and follow the instructions in the installer.

The program can then be run from the desktop icon, the start bar, or by opening the ipa-zounds.exe file in the installation directory.

Source

After downloading and unpacking the IPA Zounds distribution file, install the program by running python setup.py install from the top level directory (the one containing the setup.py file). This will install the Python modules in the right places so that you can run ipa-zounds.py from anywhere (this may require a change to the PATH environment variable on Windows).

The source distribution does not come with Python, PyGTK (2.8 or later) or GTK (2.8 or later), which must be downloaded and installed separately.

Basic usage

Introduction

The basics of using IPA Zounds is writing a lexicon and a rules file, loading both into the program, running a transformation, and saving the results. What complexity there is comes from learning the syntax of the rules file,

Loading a lexicon and rules file

Start by opening the lexicon file test.lex in the examples directory. You should see something close to the following:

If instead you see a bunch of empty boxes where the characters ɛ, ɔ, ɹ, and ɑ are meant to be, then you are using a font which does not include IPA characters. Change the font the program uses (called "Data font") via the Preferences dialog.

There is only one trick to loading a lexicon or rules file. By default the program assumes that the file is written using Unicode IPA characters for the sounds. However, it also accepts X-SAMPA, and if you write your own orthography file, it can open files written using that script too.

To select a different script for the file, use the drop-down list on the open file dialog:

Select X-SAMPA in the script drop-down, and open the file test-xsampa.lex. You should see exactly the same words (written in IPA characters, not X-SAMPA) that you saw with the test.lex file.

Why is test-xsampa.lex not displayed in X-SAMPA, given that the file is written in X-SAMPA? It's because there is a separate preference for what script the lexicon, rules and results are displayed in, which is entirely unconnected with what script the lexicon and rules files are written in.

So, open the Preferences dialog and try changing the "Data script" to X-SAMPA. Now the list of words is shown in X-SAMPA. Any file written in a recognised script can be loaded, and once loaded can be viewed in any recognised script.

Rules files work in just the same way as lexicon files. Go ahead and open the file test.sc, using the IPA script. If you still have X-SAMPA selected as your display script, it should look like this:

Regardless of what script is used in the files, it must be encoded as UTF-8 (but be aware that plain ASCII is a subset of UTF-8, so that is acceptable too, if you don't have any non-ASCII characters in the file).

Performing a transformation

Now that you have a lexicon and a set of rules loaded, it is possible to do a transformation. There are two types of transformation, simple and modified. A simple transformation applies all of the rules, in the order they are listed, to each word in the lexicon. After running a simple transformation using test.lex and test.sc, and with the display script set to IPA, the results look something like:

There are a few ways in which results can be displayed. These can be selected in the Preferences, and are as follows:

The "full format" option in the Preferences aligns sets of binary features vertically, for shorter lines and easier reading:

This applies to both results (when the show rules format is selected) and the rules.

The modified transformation is so called because it involves changes to either the rules used or the direction of the transformation, or both.

Rule restrictions

The set of rules used in the transformation can be restricted to only those rules which apply to a certain dialect, and to only those rules which fall within a certain date range.

The modified transformation dialog allows you to specify these restrictions, using the values which are defined in the rules file. You'll learn exactly how this works in the Writing a rules file section; for now, it's enough to know that a rule can be associated with a date and zero or more dialects.

When you specify a start date, all the rules earlier than that date are not used in the transformation; when you specify an end date, all the rules after that date are not used.

If you specify a dialect, then rules which are associated only with other dialects are not used. This is not the same thing as only using rules which are associated with the dialect you chose; those rules are used, of course, but also those rules which are not associated with any dialect at all.

The modified transformation dialog automatically fills in the possible values for the start and end dates and the dialects. The default start date is the earliest date defined in the rules file, while the default end date is the latest date.

Transformation direction

The simple transformation applies the rules in the order of the rules (as listed in the Rules tab), and derives the single word that is thereby derived. This is the forward applier, since it models the change of a word forwards in time.

The reverse applier does the reverse: given a word and a set of rules, it outputs those words which would, when transformed normally, match the input word. That is, it finds possible antecedents of the input word.

It's important to know that this process can take a very long time, and can consume all of the memory on your machine while it is running. This is prone to happen if you have a very large ruleset. Unfortunately the cancel button will not help you much here, as it cancels the transformation after the current word has finished being processed.

Writing a lexicon file

Writing a lexicon file is easy: write each word on its own line, and make sure the file is encoded as UTF-8. If you want to annotate the file, you can write comments on any line starting with a "#" character. Note that these comments will not show up in the Lexicon tab.

Writing a rules file

The rules file is the heart of a sound change transformation, and it is the most complicated part of IPA Zounds.

A ruleset (the contents of a rules file) is divided into a number of sections, of which only the Rules section is required. The syntax of the major sections is described below; throughout the ruleset, the following rules apply:

Dialects section

If you have a set of daughter languages that you wish to derive, dialects provide a way of writing only a single rules file while allowing for some variation in sound changes for each of the derived languages.

In this section of the file, which begins with the line "Section Dialects", you define the dialects that you want to use in the other sections. Each dialect is defined on its own line, and the definition takes the form of "abbreviation = full name". The idea is that it's easier to refer to an abbreviation than a potentially long name — particularly since references to a dialect may not include spaces.

Example: Dialects section
            
Section Dialects

  NZ = New Zild
  Aus = Aussie
            
          

Rules section

The rules section starts with the line "Section Rules"; this may be omitted if there are no other sections in the ruleset (enabling compatability with earlier versions of IPA Zounds).

This section may contain dates, rules, and rule group references (on the last, see Rule groups). Dialects may also be associated with the latter two elements.

Dates

Dates are positive or negative integers, one on a line, which specify that all of the rules that follow the date occur at that date. This allows for transformations which begin and/or end at a particular date, and thereby encompass only those rules which occur during that time period.

Dates must be listed in chronological order, earliest to latest.

Example: Dates
              
-250
  # Rules which occur 'at' -250 are written in the following
  # lines.
110
  # Rules which occur 'at' 110 are written in the following
  # lines.
              
            
Rules

Since the actual rules can themselves be fairly complicated, they are treated separately.

Dialects associated with rules

To associate a dialect with a rule, simply add the dialect abbreviation after the rule, with a space between the two. If more than one dialect applies to the rule, separate each dialect abbreviation with a comma (but no space).

Example: Rule associated with two dialects
              s/z/_# NZ,Aus
            

Remember that a rule which has dialects associated with it will be applied regardless of what dialect the transformation is restricted to.

Phonotactics

The phonotactic variables INITIAL_SYLLABLE, MEDIAL_SYLLABLE and FINAL_SYLLABLE are used by the reverse applier to filter its results. Each variable's value uses the syntax of the source component of a rule, so parentheses and variables may be used (but asterisks may not). If INITIAL_SYLLABLE and/or FINAL_SYLLABLE do not differ from MEDIAL_SYLLABLE, it may be omitted.

Each of these variables may be defined multiple times to account for different syllable shapes. There is currently no way of associating a particular syllable definition with another, however, in order to restrict a word to being a particular combination of syllables; rather, all possibile combinations of defined initial, medial and final syllables are permitted.

Where next?

This description is not the full story; see the sections on Persistent rules and Rule groups for two features that make writing long rule files easier, and the Rules file syntax reference for the complete format.

The Advanced topics and Tips and tricks chapters also contain sections on features you can use within individual rules.

Rules

A sound change rule is of the form x/y/z, where x (the source component) is the thing to be changed, y (the result component) is what it changes to, and z (the environment component) is the environment in which the change takes place. The source component x may be empty, in which case y is added wherever z occurs. The result component y may be empty, in which case x is deleted. In the environment component z, "#" represents either the beginning or end of a word, and "_" represents the part that changes. The "_" character must be present.

Each element or group of elements (save "_" and "#") may be made optional by placing parentheses ("(" and ")") around it. If an asterisk ("*") follows a parenthentical expression, it means that the expression may occur zero or more times.

Rules apply in the order they are listed.

Available features in rule components
Features
Homorganic variables Parentheses and asterisks Suprasegmental features
Source component No Yes Yes
Result component Yes No No
Environment component Yes Yes Yes

Binary features

Phonemes may be expressed using binary features notation, in order to encompass a set of phonemes sharing one or more features.

Binary features notation consists of one or more features, each preceded by a "+" or "-", enclosed within square brackets. A "+" indicates that the feature is present, "-" that it is not. So [+nasal-long] denotes all those phonemes that are both nasal and not long.

Note that binary features notation does not mark a modification of the previous phoneme, but rather represents a new phoneme or set of phonemes. So a[+nasal] does not represent a nasalised /a/, but rather /a/ followed by any nasal phoneme. To write a nasalised /a/, simply use the nasalisation diacritic:

For the details of the binary features set used in IPA Zounds, see the Binary features model reference.

In the result component of a rule, binary feature notation may only be used as a modifier for a sound in the source component, not as a new phoneme. This is clear from the fact that binary feature notation defines a set of phonemes, not simply a single one — and that a rule specifies a change into a particular phoneme. The following rule, nasalising any vowel that occurs between two nasals, is valid:

          [+syllabic]/[+nasal]/[+nasal]_[+nasal]
        

since the result component ([+nasal]) relates to the existing phoneme specified in the source component ([+syllabic]). Note that while in this example the source phoneme is itself in binary features format, in the application of the rule it matches on a specific phoneme, so that it is a particular phoneme that becomes nasalised.

Advanced topics

Creating a script file

By creating a script mapping file, scripts other than the IPA can be used in the input and output of IPA Zounds (including in the GUI). Such a mapping file (the filename of which must end ".orth") specifies which IPA character or characters correspond with which characters in the script, and vice versa, as well as what characters are used in the script for the rule characters. The format of a script file is as follows.

There are three sections, identified in the file by the lines "[Script to IPA]", "[IPA to Script]" and "[Rule Characters]". After each heading, each on its own line, put the mappings as original: mapping.

Neither the names nor the values in the "IPA to Script" and "Script to IPA" sections are restricted to a single character. Because the hash sign ("#"), colon (":") and equals sign ("=") are restricted characters in the file, if these are to be used in the "Script to IPA" section, they are to be written as words: "hash", "colon" and "equals".

In the "Rule Characters" section there are a particular set of names which must be given values. These names are: "ssf_open", "bf_open", "ssf_close", "bf_close", "rule_divider", "hash", "_", "(", ")", and "*". The various open and close names represent the opening and closing markers for suprasegmental features (ssf) and binary features (bf). In normal IPA Zounds usages these are "<", ">", "[", and "]" respectively. "hash" is used for the # mark.

Example: An example script mapping file: test.orth
          
[Script to IPA]
a: ɑ
b: b
c: k
d: d
e: ɛ
f: f
g: g
h: h
i: i
j: j
k: k
l: l
m: m
n: n
o: ɔ
p: p
ph: f
r: ɹ
s: s
t: t
u: u
v: v

[IPA to Script]
ɑ: a
b: b
d: d
ɛ: e
f: f
g: g
h: h
i: i
j: j
k: c
l: l
m: m
n: n
ɔ: o
p: p
ɹ: r
s: s
t: t
u: u
v: v

[Rule Characters]
ssf_open: <
bf_open: [
ssf_close: >
bf_close: ]
rule_divider: /
# Since the # character at the start of a line acts as a
# comment in this configuration file, to represent that
# character in the mapping, use the word 'hash', as below.
hash: #
_: _
(: (
): )
*: *
          
        

Note that you can have multiple characters on either side of the : in the Script to IPA and IPA to Script sections, and that multiple characters on the left side can map to the same character on the right side (such as c and k in the script both mapping to the IPA k in the example above).

Rule groups

It can be convenient, when working with a recurring set of rules, to treat them as a group. The Groups section of a rules file allows you to define groups of rules, assigning them each a name. These names can then be used in the Rules section, standing in for the set of rules they name.

Each group definition starts with a line "Group group name", followed by the individual rules that constitute that group.

Dialects can be associated with a rule group reference (when the group name is used in the Rules section) just as individual rules are. Dialects may not be associated with the group's rules when they are defined in the Groups section.

Note that a group definition may not contain a reference to a group; that is, a group may not be built up of other groups.

Example: Groups section
          
Section Groups

  Group Nasalisation
    [+syllabic]/[+nasal]/_[+nasal+consonantal]
    # Further rules can be added here. No dialect
    # information may be specified in this section.

  Group Metathesis
    dn/nd/_
    pm/mp/_
    ts/st/_
          
        
Example: Rule group references
          
Section Rules
  m//_#
  Metathesis
  [+syllabic-back]//_[+syllabic-consonantal] NZ
  Nasalisation NZ
  u/y/_[+consonantal]i
          
        

Persistent rules

It is sometimes desirable to apply the same rule or set of rules after each and every sound change that occurs. These are called persistent rules in IPA Zounds, and are defined in a section with the heading "Section Persistent".

Within the section, rules and rule groups are listed in the order they are to be applied. Dialects may be associated with each rule and group. No dates are permitted.

The whole set of persistent rules, except those excluded because of dialect, are applied, in order, after each rule or rule group listed in the Rules section. Note that they are applied only after the last rule in a rule group, not after each rule within that group.

Example: Persistent rule use

Given this sample rules file:

          
Section Dialects
  NZ = New Zild
  Aus = Aussie

Section Groups
  Group NasalAssimilation
    [+voiced-continuant]/[+nasal]/[+nasal]_
    [-voiced-continuant]/[+voiced]/[+nasal]_

  Group Metathesis
    dn/nd/_
    pm/mp/_
    ts/st/_

Section Persistent
  NasalAssimilation Aus
  Metathesis NZ

Section Rules
  o/a/_
  ex/ei/_[+consonantal] Aus
  NasalAssimilation NZ
          
        

Then a transformation for the New Zild dialect will result in the following rules being applied:

  • o/a/_

  • dn/nd/_

  • pm/mp/_

  • ts/st/_

  • [+voiced-continuant]/[+nasal]/[+nasal]_

  • [-voiced-continuant]/[+voiced]/[+nasal]_

  • dn/nd/_

  • pm/mp/_

  • ts/st/_

Homorganic variables

A homorganic variable is used to specify that a sound in the result component of a rule takes on the value of a feature of a sound in the environment component — regardless of whether that value is plus or minus.

This is perhaps best explained through an example. The following is a a simplified expression of English's homorganic nasals. It states that a nasal adopts the values of the sound it occurs before for the features anterior, coronal, back and high. Thus, n becomes m before p, and ŋ before k, for instance.

          [+nasal]/[αanteriorβcoronalγbackδhigh]/_[αanteriorβcoronalγbackδhigh]
        

The variables are expressed using the Greek characters lowercase alpha through omega, followed by the feature they apply to. The value of the variable is taken from the feature associated with the letter in the environment component, and that value (plus or minus) is applied to the feature associated with the same letter in the result component.

Tips and tricks

Useful rule patterns

Appendix: Rules file syntax reference

The following sample shows all of the different sections that can make up a rules file.

        
# Any line starting with a # is a comment.

# Blank lines are ignored.

# Sections start with "Section section name".
# The possible sections are Dialects, Groups,
# Persistent, Phonotactics and Rules. If no sections
# are specified in the file, all contents are interpreted
# as part of the Rules section. Not all sections need
# to be present, but if any is explicitly defined, then
# the Rules section must also be defined.
Section Dialects

# Leading and trailing whitespace is ignored.
  NZ = New Zild
  Aus = Aussie
  # Comments can also be preceeded on the line with
  # whitespace.
  # A dialect definition gives a useful abbreviation
  # to the display form of the dialect name. No commas
  # or spaces allowed in the abbreviation!

Section Groups
  # This is where rule groups are defined. Each group
  # begins with "Group group name".
  # No spaces are allowed in the rule group name.
  # Again, initial whitespace is ignored, so the groups
  # can be formatted more readably.
  Group Nasalisation
    # Individual rules are specified here, in the order
    # they are to be applied. No dialect information may
    # be associated with the rules.

Section Persistent
  # Individual rules and groups are specified here, in
  # the order they are to be applied. Dialect information
  # may be associated with each rule/group. No dates
  # are permitted here.

Section Phonotactics
  # This section is where initial, medial and final syllable
  # shapes are defined for use in the reverse applier,
  # using the following variables:
  # INITIAL_SYLLABLE, MEDIAL_SYLLABLE and FINAL_SYLLABLE.
  # If this section is present, only MEDIAL_SYLLABLE is
  # required. The value of each variable is a string of
  # IPA, including binary features, and with parentheses.
  #
  # If multiple possibilities are needed, each variable
  # may be repeated with different values to cover those
  # possibilities.
  MEDIAL_SYLLABLE = ([+consonantal])[+syllabic]

Section Rules
  # If no other sections are specified, then this heading
  # is not required.
  #
  # A date:
  150
    # Dates are integers, positive or negative. They must
    # occur in ascending order.
    # All rules occurring after a date are associated
    # with that date (overridden by a later date, of
    # course).

    # A fully specified rule:
    s/z/_# NZ,Aus
    # Two sections, separated by a space:
    #  * the rule itself
    #  * the dialects, each separated by a comma
    #
    # Only the first section is required:
    v/f/_

    # Rule group reference:
    Syllabification
    # This acts largely as if the rules defined
    # for this group were placed at this point. The
    # sole difference is that the persistent rules
    # occur only after the set of rules in the group,
    # not after each rule within the group.
    #
    # If a dialect is specified after the reference, that
    # dialect applies to all of the rules in the group.
        
      

Appendix: IPA reference

IPA characters

IPA Zounds uses Unicode IPA characters, and uses UTF-8 encoding for both input and output. The following charts show the International Phonetic Alphabet as supported by IPA Zounds. Characters given in red are not supported by the application's default binary features model.

Pulmonic consonants

Bilabial Labiodental Dental Alveolar Postalveolar Retroflex Palatal Velar Uvular Pharyngeal Glottal
Plosive p b t d ʈ ɖ c ɟ k g q ɢ ʔ
Nasal m ɱ n ɳ ɲ ŋ ɴ
Trill ʙ r ʀ
Tap or Flap ɾ ɽ
Fricative ɸ β f v θ ð s z ʃ ʒ ʂ ʐ ç ʝ x ɣ χ ʁ ħ ʕ h ɦ
Lateral fricative ɬ ɮ
Approximant ʋ ɹ ɻ j ɰ
Lateral approximant l ɭ ʎ ʟ

Where symbols appear in pairs, the one to the right represents a voiced consonant. Shaded areas denote articulations judged impossible.

Consonants (non-pulmonic)

Clicks Voiced implosives Ejectives
ʘ Bilabial ɓ Bilabial Examples
ǀ Dental ɗ Dental/alveolar p’ Bilabial
ǃ (Post)alveolar ʄ Palatal t’ Dental/alveolar
ǂ Palatoalveolar ɠ Velar k’ Velar
ǁ Alveolar lateral ʛ Uvular s’ Alveolar fricative

Vowels

Front Central Back
Close i y ɨ ʉ ɯ u
ɪ ʏ ʊ
Close-mid e ø ɘ ɵ ɤ o
ə
Open-mid ɛ œ ɜ ɞ ʌ ɔ
æ ɐ
Open a ɶ ɑ ɒ

Where symbols appear in pairs, the one to the right represents a rounded vowel.

Other Symbols

ʍ Voiceless labial-velar fricative
w Voiced labial-velar approximant
ɥ Voiced labial-palatal approximant
ʜ Voiceless epiglottal fricative
ʢ Voiced epiglottal fricative
ʡ Epiglottal plosive
ɕ ʑ Alveolo-palatal fricatives
ɺ Voiced alveolar lateral flap
ɧ Simultaneous ʃ and x
k͡p Affricates and double articulations can be represented by two symbols joined by a tie bar if necessary.

Diacritics

 ̥ Voiceless n̥ d̥  ̤ Breathy voiced b̤ a̤  ̪ Dental t̪ d̪
 ̬ Voiced s̬ t̬  ̰ Creaky voiced b̰ a̰  ̺ Apical t̺ d̺
 ʰ Aspirated tʰ dʰ  ̼ Linguolabial t̼ d̼  ̻ Laminal t̻ d̻
 ̹ More rounded ɔ̹  ʷ Labialized tʷ dʷ  ̃ Nasalized
 ̜ Less rounded ɔ̜  ʲ Palatalized tʲ dʲ  ⁿ Nasal release dⁿ
 ̟ Advanced  ˠ Velarized tˠ dˠ  ˡ Lateral release
 ̠ Retracted  ˤ Pharyngealized tˤ dˤ  ̚ No audible release
 ̈ Centralized  ̴ Velarized or pharyngealized
 ̽ Mid-centralized  ̝ Raised e̝ (ɹ̝ = voiced alveolar fricative)
 ̩ Syllabic  ̞ Lowered e̞ (β̞ = voiced bilabial approximant)
 ̯ Non-syllabic  ̘ Advanced Tongue Root
 ˞ Rhoticity ə˞ a˞  ̙ Retracted Tongue Root

Suprasegmentals

Note that IPA Zounds treats the length marker not as a suprasegmental but as a diacritic modifying only the immediately preceding sound.

ˈ Primary stress
ˌ Secondary stress ˌfoʊnəˈtɪʃən
ː Long
ˑ Half-long
 ̆ Extra-short
| Minor (foot) group
Major (intonation) group
. Syllable break ɹi.ækt
Linking (absence of a break)

Tones and Word Accents

IPA Zounds uses its own characters for tone marks, not those of the IPA.

Level Contour
e̋ or ˥ Extra high Rising
High Falling
(no symbol) Mid High rising
Low é̱ Low rising
ȅ or ˩ Extra low Rising-falling
Falling-rising
Downstep Global rise
Upstep Global fall

Unofficial characters

IPA Zounds uses the following unofficial characters as a convenience:

ʦ Voiceless alveolar affricate
ʣ Voiced alveolar affricate
ʧ Voiceless postalveolar affricate
ʤ Voiced postalveolar affricate

Differences from the IPA

There are some differences between the IPA characters used by IPA Zounds and the official alphabet (revised to 1993, updated 1996). These are:

  • Tones are not represented with the IPA marks, as there is no useful support for the ligature rendering required to use the Unicode characters for contour tones. IPA Zounds uses the practice of representing pitch by vertical positioning of the tone marker on the line. Sadly this practice is insufficient to represent the beginning pitch of falling-rising and rising-falling tones; consequently this application uses a combining macron above or below, in addition to the combining circumflex or caron. Thus, for example:

    • no marker denotes a mid tone/no tone

    •  ̄ denotes a high tone

    •  ̱ denotes a low tone

    •  ̱́ denotes a low rising tone

    •  ̄̀ denotes a high falling tone

    •  ̄̂ denotes a high rising-falling tone

    •  ̱̌ denotes a low falling-rising tone

    Note that tone markers are associated with a single sound. Note also that this system does not cover all IPA tone markers.

  • Instead of using the tie bar to represent affricates, the following convenience characters are used:

    • ʦ denotes a voiceless palatal affricate

    • ʣ denotes a voiced palatal affricate

    • ʧ denotes a voiceless postalveolar affricate

    • ʤ denotes a voiced postalveolar affricate

Appendix: Binary features model reference

Binary features

Underlying IPA Zounds's handling of IPA characters is a set of binary features by which every character and diacritic in the IPA is understood.

Binary features of IPA characters
p b t d ʈ ɖ c ɟ k g q ɢ ʔ m ɱ n ɳ ɲ ŋ ɴ ʙ r ʀ ɾ ɽ ɸ β f v θ ð s z ʃ ʒ ʂ ʐ ç ʝ x ɣ χ ʁ ħ ʕ h ɦ ɬ ɮ ʋ ɹ ɻ j ɰ l ɭ ʎ ʟ i y ɨ ʉ ɯ u e ø ɘ ɵ ɤ o ə ɛ œ ɜ ɞ ʌ ɔ a ɶ ɑ ɒ ʘ ǀ ǃ ǁ ɓ ɗ ʄ ɠ ʛ ʍ w ɥ ɺ ʣ ʤ ʦ ʧ ː ʰ  ̪  ̌  ̀  ̖  ́  ̗  ̄  ̱  ̃  ̂  ̥  ̬  ̹  ̜  ̈  ̩  ̯
anterior + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
aspirated +
back + + + + + + + + + + + + + + + + + + + + + + + + + + +
central + + + + + + + +
consonantal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
continuant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
coronal + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
delayedrelease + + + +
dental + + + + + + + +
egressive + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fallingrisingtone +
fallingtone +
glottalic + + + + + +
high + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
hightone +
lateral + + + + + + + +
long + + + +
low + + + + + + + + + + + +
lowtone +
mid + + + + + + + + + + + + +
nasal + + + + + + + +
retroflex + + + + + + + + +
risingfallingtone +
risingtone +
rounded + + + + + + + + + + + + + + +
sonorant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
syllabic + + + + + + + + + + + + + + + + + + + + + + + +
velaric + + + +
vibration + + + + + +
voiced + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
anterior

Covers bilabials, labiodentals, dentals, alveolars, and retroflexes.

IPA characters possessing this feature: p, b, t, d, ʈ, ɖ, m, ɱ, n, ɳ, ʙ, r, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʂ, ʐ, ɬ, ɮ, ʋ, ɹ, ɻ, l, ɭ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ɺ, ʣ, ʦ

IPA characters not possessing this feature: c, ɟ, k, g, q, ɢ, ʔ, ɲ, ŋ, ɴ, ʀ, ʃ, ʒ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, j, ɰ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ʤ, ʧ

aspirated

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature: ʰ

back

Covers velars, uvulars and pharyngeals, and back vowels.

IPA characters possessing this feature: k, g, q, ɢ, ŋ, ɴ, ʀ, x, ɣ, χ, ʁ, ħ, ʕ, ɰ, ʟ, ɯ, u, ɤ, o, ʌ, ɔ, ɑ, ɒ, ɠ, ʛ, ʍ, w

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, ʔ, m, ɱ, n, ɳ, ɲ, ʙ, r, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, l, ɭ, ʎ, i, y, ɨ, ʉ, e, ø, ɘ, ɵ, ə, ɛ, œ, ɜ, ɞ, a, ɶ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

central

Used to mark vowels as central (back and front vowels are both −central).

IPA characters possessing this feature: ɨ, ʉ, ɘ, ɵ, ə, ɜ, ɞ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɯ, u, e, ø, ɤ, o, ɛ, œ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̈

consonantal

Covers consonants, but not semi-vowels.

IPA characters possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA characters not possessing this feature: i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʍ, w, ɥ

continuant

Covers nasals, fricatives, approximants, and vowels.

IPA characters possessing this feature: m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʍ, w, ɥ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, ʙ, r, ʀ, ɾ, ɽ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ɺ, ʣ, ʤ, ʦ, ʧ

coronal

Covers dentals, alveolars, postalveolars and retroflexes.

IPA characters possessing this feature: t, d, ʈ, ɖ, n, ɳ, r, ɾ, ɽ, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ɬ, ɮ, ɹ, ɻ, l, ɭ, ǀ, ǃ, ǁ, ɗ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA characters not possessing this feature: p, b, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, ɲ, ŋ, ɴ, ʙ, ʀ, ɸ, β, f, v, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ʋ, j, ɰ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ɓ, ʄ, ɠ, ʛ, ʍ, w, ɥ

delayedrelease

Covers affricates.

IPA characters possessing this feature: ʣ, ʤ, ʦ, ʧ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ

dental

Covers labiodentals and dentals.

IPA characters possessing this feature: ɱ, f, v, θ, ð, ʋ, ǀ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̪

egressive

Clicks and implosives are −egressive.

IPA characters possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA characters not possessing this feature: ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ

fallingrisingtone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̌

fallingtone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̀

glottalic

Covers implosives and ejectives.

IPA characters possessing this feature: ɓ, ɗ, ʄ, ɠ, ʛ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature: ’

high

Covers high vowels and postalveolars, palatals and velars.

IPA characters possessing this feature: c, ɟ, k, g, ɲ, ŋ, ʃ, ʒ, ç, ʝ, x, ɣ, j, ɰ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ʄ, ɠ, ʍ, w, ɥ, ʤ, ʧ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, q, ɢ, ʔ, m, ɱ, n, ɳ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʂ, ʐ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, l, ɭ, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʛ, ɺ, ʣ, ʦ

hightone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̄

lateral

IPA characters possessing this feature: ɬ, ɮ, l, ɭ, ʎ, ʟ, ǁ, ɺ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ʋ, ɹ, ɻ, j, ɰ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ʣ, ʤ, ʦ, ʧ

long

Covers trills and lengthened sounds.

IPA characters possessing this feature: ʙ, r, ʀ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature: ː

low

Covers low vowels and pharyngeals.

IPA characters possessing this feature: ħ, ʕ, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

lowtone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̱

mid

Covers three levels of mid height vowels. +high +mid, +mid, and +low +mid.

IPA characters possessing this feature: e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

nasal

IPA characters possessing this feature: m, ɱ, n, ɳ, ɲ, ŋ, ɴ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̃

retroflex

IPA characters possessing this feature: ʈ, ɖ, ɳ, ɽ, ʂ, ʐ, ɻ, ɭ, ǃ

IPA characters not possessing this feature: p, b, t, d, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, j, ɰ, l, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

risingfallingtone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̂

risingtone

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ́

rounded

Covers rounded vowels and some labials.

IPA characters possessing this feature: y, ʉ, u, ø, ɵ, o, œ, ɞ, ɔ, ɶ, ɒ, ʍ, w, ɥ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, ɨ, ɯ, e, ɘ, ɤ, ə, ɛ, ɜ, ʌ, a, ɑ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̹

IPA diacritics removing this feature:  ̜

sonorant

Covers nasals, approximants and vowels.

IPA characters possessing this feature: m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʍ, w, ɥ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ɺ, ʣ, ʤ, ʦ, ʧ

syllabic

Covers vowels.

IPA characters possessing this feature: i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

IPA diacritics adding this feature:  ̩

IPA diacritics removing this feature:  ̯

velaric

Covers clicks.

IPA characters possessing this feature: ʘ, ǀ, ǃ, ǁ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ɺ, ʣ, ʤ, ʦ, ʧ

vibration

Covers trills and taps/flaps.

IPA characters possessing this feature: ʙ, r, ʀ, ɾ, ɽ, ɺ

IPA characters not possessing this feature: p, b, t, d, ʈ, ɖ, c, ɟ, k, g, q, ɢ, ʔ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ɸ, β, f, v, θ, ð, s, z, ʃ, ʒ, ʂ, ʐ, ç, ʝ, x, ɣ, χ, ʁ, ħ, ʕ, h, ɦ, ɬ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ʘ, ǀ, ǃ, ǁ, ɓ, ɗ, ʄ, ɠ, ʛ, ʍ, w, ɥ, ʣ, ʤ, ʦ, ʧ

voiced

IPA characters possessing this feature: b, d, ɖ, ɟ, g, ɢ, m, ɱ, n, ɳ, ɲ, ŋ, ɴ, ʙ, r, ʀ, ɾ, ɽ, β, v, ð, z, ʒ, ʐ, ʝ, ɣ, ʁ, ʕ, ɦ, ɮ, ʋ, ɹ, ɻ, j, ɰ, l, ɭ, ʎ, ʟ, i, y, ɨ, ʉ, ɯ, u, e, ø, ɘ, ɵ, ɤ, o, ə, ɛ, œ, ɜ, ɞ, ʌ, ɔ, a, ɶ, ɑ, ɒ, ɓ, ɗ, ʄ, ɠ, ʛ, w, ɥ, ɺ, ʣ, ʤ

IPA characters not possessing this feature: p, t, ʈ, c, k, q, ʔ, ɸ, f, θ, s, ʃ, ʂ, ç, x, χ, ħ, h, ɬ, ʘ, ǀ, ǃ, ǁ, ʍ, ʦ, ʧ

IPA diacritics adding this feature:  ̬

IPA diacritics removing this feature:  ̥

Suprasegmentals

Suprasegmentals also have features associated with them.

pb

Phrase boundary

IPA characters possessing this feature: |, ‖

IPA characters not possessing this feature: ., ˈ, ˌ

sb

Syllable break

IPA characters possessing this feature: ., ˈ, ˌ, |, ‖

sm

Stress marker

IPA characters possessing this feature: ˈ, ˌ

IPA characters not possessing this feature: ., |, ‖

Note that the length marker is considered not as a suprasegmental but as a modifier to the immediately preceding sound.

Appendix: Using IPA Zounds from the command-line

ipa.py [ -b | --brackets ] [ -f | --file file ] [ -h | --help ] [ -l | --omit ] [ -m | --max-format ] [ -o | --output-script script ] [ -p | --history ] [ -r | --rule-script script ] [ -v | --reverse ] [ --version ] [ -w | --word-script script ] { lexicon } { ruleset }
-b, --brackets

Display each output word with the original word in square brackets.

lɛitɔɹ [lɛktɔɹ]
-f, --file file

Output is saved to file. The file contents is UTF-8 encoded.

-h, --help

Display usage information and exit.

-l, --omit

Display only the output words. Overrides the -b option if present.

-m, --max-format

In conjunction with -p, specifies full formatting of the rules (requires a monospace font for correct display).

Example: -p output formatted with the -m option
sɛkundus → sɛkundu ( s → ∅ / _# )
            → sɛkundɔ ( u → ɔ / _# )
            → sɛgundɔ ⎛ ⎡−continuant⎤ → [+voiced] / [+syllabic]_[+syllabic] ⎞
            ⎜ ⎢−voiced    ⎥                                       ⎟
            ⎜ ⎢−vibration ⎥                                       ⎟
            ⎝ ⎣−sonorant  ⎦                                       ⎠
-o, --output-script script

Display output using the orthography specified in the mapping file script.

-p, --history

Display output words with transformation history and applicable rules.

sɛkundus → sɛkundu ( s//_# )
            → sɛkundɔ ( u/ɔ/_# )
            → sɛgundɔ ( [−voiced−vibration−sonorant−continuant]/[+voiced]/[+syllabic]_[+syllabic] )
-r, --rule-script script

Specifies that the rules are written using the orthography specified in the mapping file script.

-v, --reverse

Perform a reverse derivation, outputting the words which are possible antecedents of the input words. The output is incremental, as the process can take some time.

--version

Display version number and exit.

-w, --word-script script

Specifies that the words are written using the orthography specified in the mapping file script.

lexicon

Filename of words to be changed. Each word must be on its own line. Lines beginning with "#" are treated as comments and are not transformed.

The default extension .lex may be omitted, when there is no file with the extensionless filename.

ruleset

Filename of rules and variables. Each rule must be on its own line. Lines beginning with "#" are treated as comments.

The default extension .sc may be omitted, when there is no file with the extensionless filename.

The default output is formatted with the original word followed by a Unicode arrow and the transformed word.

lɛktɔɹ → lɛitɔɹ

Appendix: Using IPA Zounds programmatically

To use IPA Zounds as part of another program, use the following code:


from ipazounds import ipa

rule_objs = ipa.compile_rules(rules)
word_objs = ipa.compile_words(words)
sc = ipa.SoundChange(rule_objs)
sc.transform_lexicon(word_objs)
    

rules is a list of rules governing the sound changes. words is a list of individual words to be changed. After performing the transformation, each word object in word_objs will contain references to other word and rule objects that it transformed into.

Calling the reverse applier

Using the reverse engine as part of another program is very similar to the above:


from ipazounds import ipa

rules_parser = ipa.RulesParser(rules)
rule_objs = rules_parser.get_rules()
phonotactics = rules_parser.get_phonotactics()
word_objs = ipa.compile_words(words)
sc = ipa.ReverseSoundChange(rule_objs, phonotactics)
for word in sc.transform_lexicon(word_objs):
    # Do something with the word here
      

The words returned by the generator transform_lexicon are the original word objects passed into the function, only with links to their antecedant words.

Appendix: Zounds, a generic applier

Zounds is a generic sound change applier which behaves in much the same way as Mark Rosenfelder's Sound Change Applier C program (and the Lingua::SoundChange Perl module). Its primary use is as the foundation for IPA Zounds, but it can be used directly if the IPA features of the full program are not wanted.

Calling Zounds from the command line

zounds.py [ -b | --brackets ] [ -f | --file file ] [ -h | --help ] [ -l | --omit ] [ -p | --history ] [ -r | --reverse ] [ --version ] { lexicon } { ruleset }
-b, --brackets

Display each output word with the original word in square brackets.

leitor [lector]
-f, --file file

Output is saved to file.

-h, --help

Display usage information and exit.

-l, --omit

Display only the output words. Overrides the -b option if present.

-p, --history

Display output words with transformation history and applicable rules.

secundus -> secundu ( s//_# )
              -> secundo ( u/o/_# )
              -> segundo ( S/Z/V_V )
-r, --reverse

Perform a reverse derivation, outputting the words which are possible antecedents of the input words. The output is incremental, as the process can take some time.

--version

Display version number and exit.

lexicon

Filename of words to be changed. Each word must be on its own line. Lines beginning with "#" are treated as comments and are not transformed.

The default extension .lex may be omitted, when there is no file with the extensionless filename.

ruleset

Filename of rules and variables. For details on the format of this file, see the Ruleset syntax section below.

The default extension .sc may be omitted, when there is no file with the extensionless filename.

The default output is formatted with the original word followed by an ASCII arrow and the transformed word.

lector --> leitor

Calling Zounds from another program

To use the Zounds engine as part of another program, use the following code:


from ipazounds import zounds

rules_parser = zounds.RulesParser(rules)
rule_objs = rules_parser.get_rules()
vars = rules_parser.get_variables()
word_objs = zounds.compile_words(words)
sc = zounds.SoundChange(rule_objs, vars)
for word in sc.transform_lexicon(word_objs):
    # Do something with the word here
      

rules is a list of lines in the format described in the section Ruleset syntax, from which rules and variables are derived. words is a list of individual words to be changed.

After performing the transformation, each word object in word_objs will contain references to other word and rule objects that it transformed into.

Calling the reverse applier

Using the Zounds reverse engine as part of another program is very similar to the above:


from ipazounds import zounds

rule_objs = zounds.compile_rules(rules)
word_objs = zounds.compile_words(words)
sc = zounds.ReverseSoundChange(rule_objs, vars)
for word in sc.transform_lexicon(word_objs):
    # Do something with the word here
        

The words returned by the generator transform_lexicon are the original word objects passed into the function, only with links to their antecedant words.

Zounds rulesets

Zounds uses the same format for rulesets as does IPA Zounds, with two significant and related differences. Zounds does not understand the IPA, and so a string such as "[+nasal]" is treated as eight unrelated characters. Instead, Zounds allows for variables to be defined to represent groups of characters.

Variables are written as x=y, where x is the variable name (which may be only a single character) and y is the characters (one after the other without spaces) the variable stands for. A rule may specify that a variable is replaced by a variable, in which case occurances of the first character in the first variable are changed to the first character in the second variable, etc. The second variable must represent at least as many characters as the first variable.

It does not matter where in the Rules section a variable is defined; it applies for all rules, including the phonotactics.

Example: Annotated example ruleset
Section Rules

Begins the Rules section, where rules and variables are defined.

V=aeiou
C=bdfgkmpstvz

Variable definitions, such that any occurance of V in a rule will be substituted by the application with aeiou, and any occurance of C with bdfgkmpstvz.

S=ptk
Z=bdg

Variable definitions. These two are the same length and can usefully be used to change the voicing of their constituent elements. See rule below.

S/Z/_(C)V#

Rule specifying that any character occuring in the variable S will be replaced by the corresponding character in variable Z, when it occurs before a final a, e, i, o or u, with or without an intervening b, d, f, g, k, m, p, s, t, v, or z. So the word impromptu becomes imprombtu.

Section Phonotactics

Begins the Phonotactics section.

INITIAL_SYLLABLE=(S)(C)V
MEDIAL_SYLLABLE=(S)VC

Variable definitions for the reverse applier. These definitions may reference other variables (defined in the Rules section), and use parentheses just as in rules.