Phonokit
Analyse phonologique en Typst
Dans ce qui suit, je suppose que vous connaissez Typst, mais en bref, il s’agit d’un langage de programmation conçu pour la composition de documents. Pour migrer de
Consultez la vignette de l’extension en format PDF ici.
Fonctionnalités
Module API
Contrairement à tipa en tipa autant que possible : ce serait familier, pratique et rapide. C’est ce que fait la fonction #ipa(). Il n’y a que des différences mineures entre \textipa{} et #ipa() — voir la fiche de référence dans la Figure 1.
- Saisie de style
tipa: utilisez la notationtipafamilière de au lieu de chercher des symboles Unicode - Prise en charge étendue des symboles : la plupart des consonnes, voyelles et autres symboles API du tableau
tipa - Diacritiques fréquents : nasalisé (
\\~), dévoisé (\\r), syllabique (\\v) ; la liaison (\\t) est également disponible - Suprasegments : accent primaire (
'), accent secondaire (,), longueur (:) - Découpage automatique des caractères : tapez
SEau lieu deS Epour plus d’efficacité (l’espacement est nécessaire autour des caractères utilisant des barres obliques inverses) - La police Charis SIL est requise pour toutes les transcriptions. Si vous n’avez pas encore installé cette police, visitez https://software.sil.org/charis/download/
Module de tableaux API
J’ai utilisé l’excellente extension vowel plusieurs fois en #vowels() dans phonokit est plus simple : elle prend une chaîne de voyelles et les place sur un trapèze vocalique. Le trapèze de la Figure 2 a été créé avec #vowels("english"), mais la fonction accepte une chaîne de voyelles, vous pouvez donc personnaliser votre trapèze selon vos besoins. Il en va de même pour la fonction #consonants().
Une fonction similaire existe également pour les consonnes : #consonants(). Elle renvoie un tableau API des consonnes pulmonaires à partir d’une entrée (chaîne). Pour #vowels() et #consonants(), vous avez également la possibilité d’utiliser une langue comme entrée (voir la liste des langues disponibles ci-dessous).
- Tableaux vocaliques : placez les voyelles sur le trapèze vocalique API avec un positionnement précis
- Tableaux consonantiques : affichez les consonnes dans le tableau API des consonnes pulmonaires
- Inventaires linguistiques : inventaires prédéfinis pour certaines langues (anglais, espagnol, français, allemand, italien, portugais, japonais, russe, arabe, mandarin)
- Ensembles de symboles personnalisés : placez n’importe quelle combinaison de symboles API
- Positionnement automatique : les symboles sont positionnés selon leurs propriétés phonétiques (lieu, mode, voisement, antériorité, hauteur, arrondissement)
- Formatage API approprié : paires sourdes/sonores, articulations impossibles grisées, points pour les paires minimales de voyelles
- Tableaux redimensionnables : ajustez la taille pour s’adapter à la mise en page de votre document (le redimensionnement inclut le texte comme prévu)
Module prosodique
Les fonctions #syllable(), #foot() et #word() vous aident à créer des représentations prosodiques à partir de chaînes. Elles ajustent automatiquement la taille, mais vous pouvez également utiliser l’argument scale.
- Visualisation de la structure prosodique : dessinez des structures syllabiques avec attaque, noyau et coda
- Structure de pied flexible : utilisez des parenthèses pour marquer les frontières de pieds explicites et des marques d’accent pour identifier la tête (iambes, trochées)
- Marquage de l’accent : marquez les syllabes accentuées avec une apostrophe
' - Alignement flexible : alignement à gauche ou à droite pour les têtes de mots prosodiques
La Figure 3 est le résultat de #foot-mora("'pot.ta", coda: true), où coda: true indique que les codas projettent une more. La fonction détecte les séquences coda-attaque identiques, donc « pot.ta » déclenche la représentation d’une géminée.
Pour créer la représentation des mots prosodiques, la fonction #word() est utilisée. La Figure 4 montre un mot prosodique simple généré avec le code #word("('po.Ra).('ma.pa)", foot: "R"), où foot: "R" indique quel pied est le pied principal dans le mot prosodique (lorsque plus d’un pied est présent). Notez que les pieds sont détectés en fonction de l’utilisation des parenthèses dans l’entrée. Les marques d’accent ' sont utilisées pour déterminer la tête du pied. Toutes les fonctions acceptent la même entrée utilisée dans la fonction #ipa(), ce qui signifie que les symboles phonétiques sont automatiquement détectés.
Toutes les fonctions impliquant des représentations prosodiques ont également un argument scale. Ceci est important car nous devons souvent ajuster la taille d’une représentation, mais le texte lui-même peut ne pas se redimensionner correctement (l’épaisseur des lignes peut également être problématique dans ces scénarios). L’argument en question s’occupe de tout.
Module de grammaire de contraintes
L’extension inclut une fonction pour générer des tableaux en TO, mais il va plus loin et produit un tableau MaxEnt Goldwater et Johnson (2003) Hayes et Wilson (2008) avec la fonction #maxent(). La Figure 5 illustre un scénario où tous les candidats ont une probabilité non nulle d’être observés étant donné une entrée spécifique
La fonction #maxent() calcule visualize: false (voir Bloc de code 1), mais elles sont affichées par défaut car cela peut aider les étudiants à visualiser rapidement les probabilités lorsque de nombreux candidats sont évalués.
#maxent(
input: "kraTa",
candidates: ("[kra.Ta]", "[ka.Ta]", "[ka.ra.Ta]"),
constraints: ("Max", "Dep", "*Complex"),
weights: (2.5, 1.8, 1),
violations: (
(0, 0, 1),
(1, 0, 0),
(0, 1, 0),
),
visualize: true // Afficher les barres de probabilité (par défaut)
)Dépôt de l’extension
Vous pouvez télécharger ou faire un fork de la version la plus récente d’extension (version de développement) dans le dépôt ci-dessous.
http://github.com/guilhermegarcia/phonokit
Copyright © 2025 Guilherme Duarte Garcia








