1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00
Files
niveum/packages/ipa.py

160 lines
3.2 KiB
Python
Raw Permalink Normal View History

import sys
# https://www.phon.ucl.ac.uk/home/sampa/x-sampa.htm
2020-05-19 14:59:47 +02:00
# https://www.phon.ucl.ac.uk/home/sampa/ipasam-x.pdf TODO
XSAMPA_TO_IPA = {
2020-05-17 10:22:05 +02:00
"!": "\uA71C",
"!\\": "\u01C3",
"%": "\u02CC",
"&": "\u0276",
"'": "\u02B2",
"-\\": "\u203F",
"1": "\u0268",
"2": "\u00f8",
"3": "\u025C",
"3\\": "\u025E",
"4": "\u027E",
2020-05-17 10:22:05 +02:00
"5": "\u026b",
"6": "\u0250",
"7": "\u0264",
"8": "\u0275",
"9": "\u0153",
":": "\u02D0",
":\\": "\u02D1",
"<B>": "\u02E9",
"<F>": "\u2198",
"<H>": "\u02E6",
"<L>": "\u02E8",
"<M>": "\u02E7",
"<R>": "\u2197",
"<T>": "\u02E5",
"<\\": "\u02A2",
"=": "\u0329",
"=\\": "\u01C2",
">\\": "\u02A1",
"?": "\u0294",
"?\\": "\u0295",
"@": "\u0259",
"@\\": "\u0258",
"A": "\u0251",
"B": "\u03B2",
2020-05-17 10:22:05 +02:00
"B\\": "\u0299",
"C": "\u00E7",
2020-05-17 10:22:05 +02:00
"D": "\u00F0",
"E": "\u025B",
"F": "\u0271",
"G": "\u0263",
2020-05-17 10:22:05 +02:00
"G\\": "\u0262",
"G\\_<": "\u029B",
"H": "\u0265",
"H\\": "\u029C",
"I": "\u026A",
"J": "\u0272",
"J\\_<": "\u0284",
"K": "\u026C",
"K\\": "\u026E",
"L": "\u028E",
"L\\": "\u029F",
"M": "\u026F",
2020-05-17 10:22:05 +02:00
"M\\": "\u0270",
"N": "\u014B",
"N\\": "\u0274",
"O": "\u0254",
2020-05-17 10:22:05 +02:00
"O\\": "\u0298",
"P": "\u028B",
"Q": "\u0252",
2020-05-17 10:22:05 +02:00
"R": "\u0281",
"R\\": "\u0280",
"S": "\u0283",
"T": "\u03B8",
"U": "\u028A",
"V": "\u028C",
"W": "\u028D",
2020-05-17 10:22:05 +02:00
"X": "\u03C7",
"X\\": "\u0127",
"Y": "\u028F",
"Z": "\u0292",
"^": "\uA71B",
"_": "\u0361",
2020-05-17 10:22:05 +02:00
"_+": "\u031F",
"_-": "\u0320",
"_0": "\u0325",
"_=": "\u0329",
"_>": "\u02BC",
"_?\\": "\u02E4",
"_A": "\u0318",
"_B": "\u030F",
"_B_L": "\u1DC5",
2020-05-17 10:22:05 +02:00
"_F": "\u0302",
"_F_R": "\u1dc9",
2020-05-17 10:22:05 +02:00
"_G": "\u02E0",
"_H": "\u0341",
"_H_T": "\u1DC4",
"_L": "\u0340",
"_M": "\u0304",
"_N": "\u033C",
"_O": "\u0339",
2020-05-17 10:22:05 +02:00
"_R": "\u030C",
"_R_F": "\u1dc8",
"_T": "\u030B",
"_X": "\u0306",
"_^": "\u032F",
"_a": "\u033A",
2020-05-17 10:22:05 +02:00
"_c": "\u031C",
"_d": "\u032A",
"_e": "\u0334",
"_h": "\u02B0",
"_j": "\u02B2",
"_k": "\u0330",
"_l": "\u02E1",
"_m": "\u033B",
"_n": "\u207F",
"_o": "\u031E",
"_q": "\u0319",
2020-05-17 10:22:05 +02:00
"_r": "\u031D",
"_t": "\u0324",
"_v": "\u032C",
"_w": "\u02B7",
"_x": "\u033D",
"_}": "\u031A",
"_~": "\u0303",
"`": "\u02DE",
"b_<": "\u0253",
"d_<": "\u0257",
"d`": "\u0256",
"d`_<": "\u1D91",
"g_<": "\u0260",
"h\\": "\u0266",
"j\\": "\u029D",
"l\\": "\u027A",
"l`": "\u026D",
"n`": "\u0273",
"p\\": "\u0278",
"r\\": "\u0279",
"r\\`": "\u027B",
"r` ": "\u027D",
"s\\": "\u0255",
"s`": "\u0282",
"t`": "\u0288",
"v\\": "\u028B",
"x\\": "\u0267",
"z\\": "\u0291",
"z`": "\u0290",
"{": "\u00E6",
"|\\": "\u01C0",
"|\\|\\": "\u01C1",
"}": "\u0289",
"~": "\u0303",
'"': "\u02C8",
'_"': "\u0308",
}
if __name__ == "__main__":
2020-06-04 13:29:01 +02:00
text = sys.stdin.read()
for xsampa, ipa in sorted(XSAMPA_TO_IPA.items(), key=lambda item: -len(item[0])):
text = text.replace(xsampa, ipa)
sys.stdout.write(text)