Prosodical analysis

Then the program uses a set of phonological parameters to deduce the linguistical sounds from the sequence of characters. All the required contextual analysis (like e.g. the detection of diphthongs) happens at this stage, as of course getting sounds from letters is never a one-to-one mapping, but often complex algorithms are involved. All the language-specific data at this stage are kept in a set of external XML files separate from the program itself, which tell it how to interpret each letter phonetically. For instance, the letter epsilon is described as a front, mid-high, short vowel, and so for each character. This allows the same program to work for different languages (like Greek and Latin). The program uses this information to build a chain of segments, each linked to any number of data stored in different “layers”: such layers tell whether a given segment is long or short, where syllabic boundaries fall, how words are connected, how syllable weights relate to metrical schemes, etc. All the data calculated by the system in the next stages are stored in these layers, which can grow at will.

As written text is the only source of data for the program, this must face all the problems related to the fact that any alphabetic system is a very imperfect representation of linguistical sounds: for instance, in Greek letters like A I Y do not tell anything about their length (are they long or short?), and several phonological treatments are optional and vary according to genre, dialect, verse, opportunity, etc. The solution is creating a software which must be able to tolerate lack of data, and yet try to deduce any useful data from context. Finally it must also be able to ‘change its mind’ later when more data (e.g. available metrical scansions) become available. As for dichronae for instance, take the first 3 words of the Iliad: mênin áeide theá. The program is able to infer that the first iota in mênin is short because of the word accent, while it cannot say anything about the alpha in áeide and theá. Anyway, it can tolerate such lack of information, but it can also recur to a sort of “prosodical lexicon” which can be queried during analysis.

A second issue comes from a great deal of prosodical variants which are completely optional: for instance, the alternative syllabic divisions of some consonant groups (e.g. muta cum liquida like in pat.ros or pa.tros); the potential redoubling of some consonants in specific word positions (e.g. initial nasal or liquid, like in menin); and finally hiatus, which may shorten a long vowel or diphthong (the so-called correptio epica). All these variants are defined in external XML files, specific for each language: the program uses them to mark the relevant segments as potentially capable of different treatments, which can be applied later when it will know more.

Syllabification of tractor Finally, the prosodical subsystem detects syllabic boundaries by analyzing the opening of each phoneme in the segmental sequence defined earlier. It relies on Saussure classical model of the so-called 'phonological' syllable, which is a universal model defining a syllable as the distance between the two segments with the lowest opening value. For instance, if we plot the openings of the phonemes of the word “tractor” we can see two peaks, which correspond to two syllables.

Phonematic openings thus drive the detection of syllabic boundaries; but that’s just a universal model, an approximation: each language requires its own specific adjustments, so after a first detection syllabic boundaries are adjusted by specialized functions. Once syllabic boundaries are in place, it’s relatively easy to detect syllable weights wherever possible: so we have defined a sequence of short and long (or unknown) syllables starting from a simple text. This defines a very efficient model for phonological analysis: the same software components can be shared among several specialized analysis subsystems, e.g. for Greek, Latin or Italian. All the components which parse a text, phonemize it, add special markings for optional prosodical treatments, and provide a generic syllabification are fully shared. What is specific to each single language is relegated to external XML parameter files. Only the last stage, which adjusts syllable boundaries, is necessarily specific for each language. Thus we have 1 program only, but many languages.

Highlights

powered by ParaScroller