古神语研究

本文最后更新于:2022年12月28日 早上

Part 1 前置

读音按照新派普通话标注(老派普通话有把 bo 读成 /po/ 等与现在不同的特点)。

假设大家都会汉语拼音和 IPA。

先把汉语拼音修改一下以反映实际发音。yiiyuüwuu,其余的 yiwuiu, ui, uniou, uei, uenbo, po, mo, fobuo, puo, muo, fuoj, q, x, y 后的 u 还原成 ü

此外你可以发现 ao 其实是 au(实际发音略有区别),ie, üe, ian, üan 其实是 iê, üê, iên, üên(后面两个实际发音略有区别),ei 其实是 êi。还有更细一点的,如 a, an, ang 中的 ao, ou, ong 中的 oe, en, eng 中的 e 都是不同的。由于不影响后面分析就不改了。

作为介音的 i, u, ü 视为近音。

然后介绍一些术语:

  • 一个音节的近音(如果有的话)、元音及后面的鼻音(如果有的话)合起来叫韵母。如果只有鼻音(n, m, hm, hng 等)叫空韵
  • 一个音节的韵母外其余部分叫声母,如果没有的话叫零声母

Part 2 韵母

做出韵母 IPA 表(根据 Wikipedia,按照 IPA 排序),只大概拼一下音值:

元音 开口呼   齐齿呼(i- /j/  合口呼(u- /w/  撮口呼(ü- /ɥ/)
/a/ ia
/aɪ/ ai uai
/an/ an uan
/ᴀ/[1] a
/ɑ/ ua
/ɑʊ/ ao iao
/ɑŋ/ ang uang
/ɛn/~/æn/ ian üan
/ᴇ/[2] ê ie üe
/ᴇɪ/[2] ei uei
/ən/ en uen
/ɤ̞ŋ/ eng ueng
/ⱺ/[3] o[4] uo
/ⱺʊ/[3] ou iou
/ɤ/ e
/ʊŋ/ ong iong
/i/ i
/in/ in
/iŋ/ ing
/y/~/ʏ/ ü
/yn/~/ʏn/ ün
/u/ u
  1. 也拼作 ä
  2. 也拼作
  3. 也拼作
  4. o 单独出现时只可能是零声母,此时实际发音也可能是 /ɔ/

此外 er 的读音目前争议比较大,这里简单一点直接视作 /ɤɻ/

z, c, si 拼作 /ɿ/zh, ch, shi 拼作 /ʅ/

空韵的情况在表中未列出。

Part 3 声母

声母就明显简单许多。直接按照汉语拼音表排序:

汉语拼音 IPA
b /p/
p /pʰ/
m /m/
f /f/
d /t/
t /tʰ/
n /n/
l /l/
g /k/
k /kʰ/
h /x/
j /tɕ/
q /tɕʰ/
x /ɕ/
zh /ʈʂ/
ch /ʈʂʰ/
sh /ʂ/
r /ɻ/[1]
z /ts/
c /tsʰ/
s /s/
  1. r 的具体读音有争议,也可能是 /ʐ/

现在我们来尝试拼写一下。

原文:拜谢问卷星

拼音:bài xiè wèn juàn xīng

修改拼音:bài xiè uèn jüàn xīng

IPA:/paɪ⁵¹ ɕjᴇ⁵¹ wən⁵¹ tɕɥɛn⁵¹ ɕiŋ⁵⁵/(五度标记法,采用数字标记)

Part 3 反转&拉丁化

反转分为四种。

  1. 以字为单位,适合写文章用(但是我觉得应该不会有人拿这玩意写文章)。
  2. 以分句为单位,比较少见。
  3. 以句为单位,最常见。
  4. 以文章为单位,相当于全文倒放。

我们只考虑单字(显然此时四种方法是等价的)。

IPA 反转后送气符号仍然放在后面。此外 tsʰ 反转后变成 stʰ 而不是 sʰt,其他同理。

声母的拉丁化按字面写就行了,此时的读音直接按照英语读。大于号后表示根据英语习惯修改的读音和拼写。

汉语拼音 IPA 反转 拉丁化 读音
b /p/ /pʰ/
p /pʰ/ > /f/
m /m/ /m/
f /f/ /f/
d /t/ /tʰ/
t /tʰ/ /θ/
n /n/ /n/
l /l/ /l/[1]
g /k/ /kʰ/
k /kʰ/ > /tʃʰ/
h /x/ > /h/>/s/
j /tɕ/ /ɕt/ /stʰ/[2]
q /tɕʰ/ /ɕtʰ/ > /sθ/>/θ/[3]
x /ɕ/ /s/
zh /ʈʂ/ /ʂʈ/ /ʃt/
ch /ʈʂʰ/ /ʂʈʰ/ > /ʃθ/>/ʃs/
sh /ʂ/ /ʃ/
r /ɻ/ /ɹ/[4]
z /ts/ /st/ /stʰ/[2]
c /tsʰ/ /stʰ/ > /sθ/>/θ/[3]
s /s/ /s/
  1. 实际发音为 /ɫ/,即英语单词结尾的 dark l。
  2. 与英语里普遍不送气的 st 不同。这样做是因为现在英语的不送气清塞音已经和浊塞音混淆。
  3. 参考英语里很多人把 sixth 读成 sickth。
  4. 实际会使前一个音(必定是元音)卷舌化。

注意修改后 pf 合流,j, q, xz, c, s 合流,此外 qc 合并后再与 t 合并,xs 合并后再与 h 合并。事实上从语音学角度说这些现象都是合理的。

韵母的拉丁化直接对 IPA 转写。

IPA 拉丁化   读音
/a/ /ᴀ/ /ɑ/ /a/
/ɛ/ /ᴇ/ /ə/ /ɤ̞/ /ɤ/ /e/
/ⱺ/ /o/
/ɪ/ /i/ /ɿ/ /ʅ/ /i/
/ʊ/ /u/ /u/
/y/ /v/
/j/ /j/
/w/ /w/
/ɥ/ /ʒ/
/m/[1] /m/
/n/ /n/
/ŋ/ /ŋ/
/ɻ/ /ɹ/[2]
  1. 前面表中未列出,实际上只用于 m(如“呣”)、hm(如“噷”)中。
  2. 读音同 rabbit 的 r。

注意 /y//ɥ/ 变成了辅音。 的读音与英语习惯不一致。

我们接着前面的“拜谢问卷星”写,以字为单位反转,暂时忽略声调:

IPA 反转:/ɪap ᴇjɕ nəw nɛɥɕt ŋiɕ/

拉丁化:

读音:/iap ejs new neʒst ŋis/

Part 4 声调

不考虑普通话中的音变(如“马老板比李老板少给两百五”中连续上声的变调和“一”“不”等原入声字的变调)。

阳平把清音变成浊音(,读 /ð/,/dʒ/,/ʒ/),m, n, l, r 和零声母在后面加

上声将 修改成 ,其余在开头加 。去声在开头加 ,阴平和轻声不变。

以“番茄炒蛋”为例。

拼音:fān qié chǎo dàn

修改拼音后不变。

IPA:/fan⁵⁵ tɕʰjᴇ³⁵ ʈʂʰɑʊ²¹⁴ tan⁵¹/(新派上声读作 212 或 21)

IPA 反转(以字为单位,无声调):/naf ᴇjɕtʰ ʊɑʂʈʰ nat/

拉丁化(无声调):

读音(无声调):/naf eʒθ uaʃs nat/

拉丁化(有声调):

读音(有声调):/naf eʒð huaʃs snat/

前面的“拜谢问卷星”加入声调后拼作 ,读作 /siapʰ sejs snew sneʒst ŋis/

Part 5 自动转换

基于 pypinyin

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
from pypinyin import pinyin, Style
from pypinyin.converter import DefaultConverter

class Converter:
def __init__(self, py, initial, final, tone):
try:
if tone == '!':
conv = DefaultConverter()
initial = conv.convert_style('', py, Style.INITIALS, True)
final = conv.convert_style('', py, Style.FINALS, True)
tone = conv.convert_style('', py, Style.TONE3, True)[-1]

def parse_final():
nonlocal final
# Fix: 'bo', 'po', 'mo', 'fo' => 'buo', 'puo', 'muo', 'fuo'
if initial and initial in 'bpmf' and final == 'o':
final = 'uo'

# Fix: 'ao', 'iao', 'ian', 'üan', 'ong', 'iong' => 'au', 'iau', 'ien', 'üen', 'ung', 'iung'
for k, v in {'ao': 'au', 'iao': 'iau', 'ian': 'ien', 'van': 'ven', 'ong': 'ung', 'iong': 'iung'}.items():
if final == k:
final = v

# Encode: 'ê' => `e`
final = final.replace('ê', 'e')

# Encode: 'ng' => `0`
final = final.replace('ng', '0')

# Encode: medial 'i', 'u', 'ü' => `y`, `w`, `j`
if len(final) >= 2 and final[0] in 'iuv' and final[1] in 'aoeu':
final = {'i': 'y', 'u': 'w', 'v': 'j'}[final[0]] + final[1:]

# Reverse
final = final[::-1]

def parse_initial():
nonlocal initial
initial = {
'': '', # silent initial
'b': 'p', 'p': 'f', 'm': 'm', 'f': 'f',
'd': 't', 't': '1', 'n': 'n', 'l': 'l', # 1="th" /θ/
'g': 'k', 'k': '2', 'h': 's', # 2="ch" /tʃʰ/
'j': 'st', 'q': '1', 'x': 's',
'zh': '3t', 'ch': '3s', 'sh': '3', 'r': 'r', # 3="sh" /ʃ/
'z': 'st', 'c': '1', 's': 's',
}[initial]

parse_final()
parse_initial()
self.word = final+initial

def parse_tone():
nonlocal self
if tone == '2':
flag = False
for k, v in {
'p': 'b', 't': 'd', 'k': 'g', 'f': 'v', 's': 'z',
'1': '4', # 4="dh" /ð/
'2': '5', # 5="gh" /dʒ/
'3': 'j',
}.items():
if k in self.word:
flag = True
self.word = self.word.replace(k, v)
if not flag:
self.word = self.word+'s'
if tone == '3':
if self.word[0] in 'vn0':
# `v`, `n`, `0`('ng') => `b`, `d`, `g`
self.word = {'v': 'b', 'n': 'd', '0': 'g'}[self.word[0]] + self.word[1:]
else:
self.word = 'h'+self.word
if tone == '4':
self.word = 's'+self.word

parse_tone()
except:
self.word = py

def latin(self):
word = self.word
for k, v in {
'0': 'ng',
'1': 'th', '2': 'ch', '3': 'sh',
'4': 'dh', '5': 'gh',
}.items():
word = word.replace(k, v)
return word

def ipa(self):
word = self.word
for k, v in {
'j': 'ʒ', 'r': 'ɹ', 'y': 'j',
'p': 'pʰ', 't': 'tʰ', 'k': 'kʰ',
'0': 'ŋ',
'1': 'θ', '2': 'tʃʰ', '3': 'ʃ',
'4': 'ð', '5': 'dʒ',
}.items():
word = word.replace(k, v)
return word

def convert(sentence):
py = []
words = []
initials = []
finals = []
tones = []
for w in sentence.split():
py.extend([ch[0] for ch in pinyin(w)])
initials.extend(pinyin(w, style=Style.INITIALS))
finals.extend(pinyin(w, style=Style.FINALS))
tones.extend(pinyin(w, style=Style.TONE3, errors=lambda x: "!"))
res = [Converter(py[i], initials[i][0], finals[i][0], tones[i][0][-1]) for i in range(len(py))]
latin = [ch.latin() for ch in res]
ipa = [ch.ipa() for ch in res]
print(*py)
print(*latin)
print(*ipa)

if __name__ == '__main__':
while True:
convert(input('>>> '))

输入一行字,输出分为三行,分别是汉语拼音、古神语拉丁化和古神语读音。

如果拼音转换错误可以手动输入拼音(可以是标注的或前面魔改的,但是如果不合法可能会出现不可预料的错误),空格用于手动分词。

以句为单位反转把 print(*latin) 改成 print(*latin[::-1])(后面一行同理)就行了。

转换器使用一种内码系统作为中间结果,对应关系如下(按照 ASCII 编码排序),不同之处标红:

内码 拉丁化 读音
/ŋ/
/θ/
/tʃʰ/
/ʃ/
/ð/
/dʒ/
/a/
/b/
/d/
/e/
/f/
/g/
/h/
/i/
/ʒ/
/kʰ/
/l/
/m/
/n/
/o/
/pʰ/
/ɹ/
/s/
/tʰ/
/u/
/v/
/w/
/j/
/z/

Part 6 拼写示例

我知道大家都想看这个。

拼写陈奕迅的《浮夸》,以句(也就是一行)为单位反转。

有人问我 我就会讲 但是无人来
yǒu rén wèn wǒ wǒ jiù huì jiǎng dàn shì wú rén lái

/ials neɹs us siʃ snatʰ gajstʰ siews suojstʰ how how snew neɹs huoj/

我期待 到无奈 有话要讲 得不到装载
wǒ qī dài dào wú nài yǒu huà yào jiǎng dé bú dào zhuāng zài

/siastʰ ŋawʃtʰ suatʰ ub ed gajstʰ suaj saws huoj sian us suatʰ siatʰ iθ how/

我的心情犹像樽盖 等被揭开
wǒ de xīn qíng yóu xiàng zūn gài děng bèi jiē kāi

/iatʃʰ ejstʰ siepʰ getʰ siakʰ newstʰ sŋajs uojs ŋið nis etʰ how/

嘴巴却在养青苔
zuǐ bā què zài yǎng qīng tái

/iað ŋiθ gaj siastʰ seʒθ apʰ hiewstʰ/

人潮内 愈文静 愈变得 不受理睬
rén cháo nèi yù wén jìng yù biàn dé bù shòu lǐ cǎi

/hiaθ hil suoʃ supʰ ed snejpʰ sv sŋistʰ news sv sien uaʒz neɹs/

自己要搞出意外 像突然地高歌
zì jǐ yào gǎo chū yì wài xiàng tū rán de gāo gē

/ekʰ uakʰ etʰ naɹs uθ sŋajs siaw si uʃs huakʰ suaj histʰ sistʰ/

任何地方也像开四面台
rèn hé dì fāng yě xiàng kāi sì miàn tái

/iað snejm sis iatʃʰ sŋajs hej ŋaf sitʰ ez sneɹ/

着最闪的衫 扮十分感慨
zhuó zuì shǎn de shān bàn shí fēn gǎn kǎi

/hiatʃʰ dakʰ nef iʒ snapʰ naʃ etʰ daʃ siewstʰ owʒd/

有人来拍照要记住插袋
yǒu rén lái pāi zhào yào jì zhù chā dài

/siatʰ aʃs suʃtʰ sistʰ suaj suaʃtʰ iaf ials neɹs huoj/

你当我是浮夸吧 夸张只因我很怕
nǐ dāng wǒ shì fú kuā ba kuā zhāng zhǐ yīn wǒ hěn pà

/saf des how ni hiʃtʰ ŋaʃtʰ awtʃʰ apʰ awtʃʰ uv siʃ how ŋatʰ hin/

似木头 似石头的话 得到注意吗
sì mù tou sì shí tou de huà dé dào zhù yì ma

/am si suʃtʰ suatʰ ed saws etʰ uoθ iʒ sis uoθ sum sis/

其实怕被忘记 至放大来演吧
qí shí pà bèi wàng jì zhì fàng dà lái yǎn ba

/apʰ dej ials satʰ sŋaf siʃtʰ sistʰ sŋaw siepʰ saf iʒ ið/

很不安 怎去优雅
hěn bù ān zěn qù yōu yǎ

/haj uoj svθ destʰ na supʰ des/

世上还赞颂沉默吗 不够爆炸
shì shàng hái zàn sòng chén mò ma bù gòu bào zhà

/saʃtʰ suapʰ suokʰ supʰ am sowm neʒz sŋus snastʰ iaz sŋaʃ siʃ/

怎么有话题 让我夸 做大娱乐家
zěn me yǒu huà tí ràng wǒ kuā zuò dà yú lè jiā

/ajstʰ sel vs satʰ sowstʰ awtʃʰ how sŋaɹ ið saws huoj em destʰ/

 

那年十八 母校舞会 站着如喽啰
nà nián shí bā mǔ xiào wǔ huì zhàn zhe rú lóu luó

/owls uols uɹs eʃtʰ snaʃtʰ siews hu suajs hum apʰ iʒ nejns san/

那时候 我含泪发誓各位 必须看到我
nà shí hòu wǒ hán lèi fā shì gè wèi bì xū kàn dào wǒ

/how suatʰ snatʃʰ vs sipʰ siew sekʰ siʃ af siel naz how suos iʒ san/

在世间 平凡又普通的路太多
zài shì jiān píng fán yòu pǔ tōng de lù tài duō

/owtʰ siaθ sul etʰ ŋuθ huf suoj nav ŋiv nejstʰ siʃ siastʰ/

屋村你住哪一座
wū cūn nǐ zhù nǎ yī zuò

/sowstʰ i han suʃtʰ hin newθ u/

情爱中 工作中 受过的忽视太多
qíng ài zhōng gōng zuò zhōng shòu guò de hū shì tài duō

/owtʰ siaθ siʃ us etʰ sowkʰ suoʃ ŋuʃtʰ sowstʰ ŋukʰ ŋuʃtʰ sia ŋið/

自尊已饱经跌堕 重视能治肚饿
zì zūn yǐ bǎo jīng diē duò zhòng shì néng zhì dù è

/se sutʰ siʃtʰ ŋens siʃ sŋuʃtʰ sowtʰ ejtʰ ŋistʰ huapʰ hi newstʰ sistʰ/

未曾获得过便知我为何
wèi céng huò dé guò biàn zhī wǒ wèi hé

/ez siew how iʃtʰ snejpʰ sowkʰ ed sows ŋeð siew/

大动作很多 犯下这些错
dà dòng zuò hěn duō fàn xià zhè xiē cuò

/sowθ ejs seʃtʰ sajs snaf owtʰ des sowstʰ sŋutʰ satʰ/

搏人们看看我 算病态么
bó rén men kàn kàn wǒ suàn bìng tài me

/em siaθ sŋipʰ snaws how snatʃʰ snatʃʰ nem neɹs owb/

你当我是浮夸吧 夸张只因我很怕
nǐ dāng wǒ shì fú kuā ba kuā zhāng zhǐ yīn wǒ hěn pà

/saf des how ni hiʃtʰ ŋaʃtʰ awtʃʰ apʰ awtʃʰ uv siʃ how ŋatʰ hin/

似木头 似石头的话 得到注意吗
sì mù tou sì shí tou de huà dé dào zhù yì ma

/am si suʃtʰ suatʰ ed saws etʰ uoθ iʒ sis uoθ sum sis/

其实怕被忘记 至放大来演吧
qí shí pà bèi wàng jì zhì fàng dà lái yǎn ba

/apʰ dej ials satʰ sŋaf siʃtʰ sistʰ sŋaw siepʰ saf iʒ ið/

很不安 怎去优雅
hěn bù ān zěn qù yōu yǎ

/haj uoj svθ destʰ na supʰ des/

世上还赞颂沉默吗 不够爆炸
shì shàng hái zàn sòng chén mò ma bù gòu bào zhà

/saʃtʰ suapʰ suokʰ supʰ am sowm neʒz sŋus snastʰ iaz sŋaʃ siʃ/

怎么有话题 让我夸 做大娱乐家
zěn me yǒu huà tí ràng wǒ kuā zuò dà yú lè jiā

/ajstʰ sel vs satʰ sowstʰ awtʃʰ how sŋaɹ ið saws huoj em destʰ/

 

幸运儿并不多 若然未当过就知我为何
xìng yùn ér bìng bù duō ruò rán wèi dāng guò jiù zhī wǒ wèi hé

/ez siew how iʃtʰ suojstʰ sowkʰ ŋatʰ siew naɹs sowɹ owtʰ supʰ sŋipʰ ɹes snv sŋis/

用十倍苦心 做突出一个
yòng shí bèi kǔ xīn zuò tū chū yī gè

/sekʰ i uʃs uθ sowstʰ nis hutʃʰ siepʰ iʒ sŋuj/

正常人够我富议论性么
zhèng cháng rén gòu wǒ fù yì lùn xìng me

/em sŋis snewl si suf how suokʰ neɹs ŋaʒz sŋeʃtʰ/

你 叫我做浮夸吧 加几声嘘声也不怕
nǐ jiào wǒ zuò fú kuā ba jiā jǐ shēng xū shēng yě bù pà

/saf supʰ hej ŋeʃ vs ŋeʃ histʰ ajstʰ apʰ awtʃʰ uv sowstʰ how suajstʰ hin/

我在场 有闷场的话
wǒ zài chǎng yǒu mèn chǎng de huà

/saws etʰ gaʃs snem huoj gaʃs siastʰ how/

表演你看吗 够歇斯底里吗
biǎo yǎn nǐ kàn ma gòu xiē sī dǐ lǐ ma

/am hil hitʰ is ejs suokʰ am snatʃʰ hin dej huajpʰ/

以眼泪淋花吧 一心只想你惊讶
yǐ yǎn lèi lín huā ba yī xīn zhǐ xiǎng nǐ jīng yà

/saj ŋistʰ hin gajs hiʃtʰ nis i apʰ aws nils siel dej hi/

我旧时似未存在吗 加重注码
wǒ jiù shí shì wèi cún zài ma jiā zhòng zhù mǎ

/ham suʃtʰ sŋuʃtʰ ajstʰ am siastʰ newð siew siʃ iʒ suojstʰ how/

青筋也现形 话我知 现在存在吗
qīng jīn yě xiàn xíng huà wǒ zhī xiàn zài cún zài ma

/am siastʰ newð siastʰ snejs iʃtʰ how saws ŋiz snejs hej nistʰ ŋiθ/

凝视我 别再只看天花
níng shì wǒ bié zài zhǐ kàn tiān huā

/aws nejθ snatʃʰ hiʃtʰ siastʰ ejb how siʃ ŋins/

我非你杯茶 也可尽情地喝吧
wǒ fēi nǐ bēi chá yě kě jìn qíng de hē ba

/apʰ es etʰ ŋið snistʰ hetʃʰ hej aʒz iepʰ hin ief how/

别遗忘有人在 为你声沙
bié yí wàng yǒu rén zài wèi nǐ shēng shā

/aʃ ŋeʃ hin siew siastʰ neɹs huoj sŋaw is ejb/

彩蛋:

原文:似木头 似石头的话 得到注意吗

粤拼:ci⁵ muk⁶ tau⁴ ci⁵ sek⁶ tau⁴ dik¹ waa⁶ dak¹ dou² zyu³ ji³ maa³

IPA(无声调):tsʰiː mʊk̚ tʰɐu tsʰiː sɛːk̚ tʰɐu tɪk̚ waː tɐk̚ tou tsyː jiː maː 表示无声除阻)

IPA 反转(无声调,以句为单位,去空格):aːmiːjyːstuotk̚ɐtaːwk̚ɪtuɐtʰk̚ɛːsiːstʰuɐtʰk̚ʊmiːstʰ

阿米浴说的道理!


古神语研究
https://blog.m256i.ml/huk-nej-b-neys-uoyst/
作者
m256i
发布于
2022年12月10日
更新于
2022年12月28日
许可协议