Skip to content

Commit

Permalink
Improve options in chiangxhua.js
Browse files Browse the repository at this point in the history
  • Loading branch information
untunt committed May 12, 2023
1 parent 11687b6 commit 6b51961
Show file tree
Hide file tree
Showing 3 changed files with 159 additions and 39 deletions.
117 changes: 117 additions & 0 deletions 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
楊貴妃(ようきひ)

季 秋
所 蓬莱宮
素謡時間 55分
【分類】三番目物
【作者】禅竹氏信 典拠:長恨歌による
【登場人物】シテ:楊貴妃、ワキ:方士

詞章(胡山文庫)

ワキ
〔次第上〕 我がまだ知らぬ東雲の。/\。道を何処と尋ねん。
〔詞〕 是は唐土玄宗皇帝に仕へ申す方士にて候。扨も我が君政正しくまします中に。色を重んじ艶を専とし給ふにより。容色無双の美人を得給ふ。楊家の娘たるに因つて其名を楊貴妃と号す。然れどもさる子細あつて。馬嵬が原にて失ひ申して候。余りに帝歎かせ給ひ。急ぎ魂魄の在所を尋ねて参れとの宣旨に任せ。上碧落下黄泉まで尋ね申せども。更に魂魄の在所を知らず候。茲に未だ蓬莱宮に至らず候ふ程に。此度蓬莱宮にと急ぎ候。
〔道行上〕 尋ね行く。幻もがなつてにても。/\。魂の在所は其処としも。波路を分けて行く船の仄に見えし島山の。草の仮寐の枕ゆふ。常世の国に着きにけり。/\。
〔詞〕 急ぎ候ふ程に。 蓬莱宮に着きて候。この処にて委しく尋ねばやと存じ候。
〔狂言シカ〕 /\
ワキ
〔カカル上〕 有りし教に随つて蓬莱宮に来て見れば。空殿盤々として更に辺際もなく。荘厳巍々としてさながら七宝をちりばめたり。漢宮万里の粧。長生驪山のありさまも。これにはさらになぞらふべからず。あら美しの所やな。
〔詞〕 又教の如く宮中を見れば。太真殿と額の打たれたる宮あり。まづこの所に徘徊し。事の由をもうかゞはゞやと存じ候。
シテ
〔サシ上〕 昔は驪山の春の園に。共に眺めし花の色。移れば変る習とて。今は蓬莱の秋の洞に。独り眺むる月影も。濡るゝ顔なる袂かな。あら恋しの古やな。
ワキ
〔詞〕 如何にこの内へ案内申し候。
〔カカル上〕 唐の天子の勅の使。方士これまで参りたり。玉妃は内にましますか。
シテ
〔上〕 なに唐帝の使とは。何しにこゝに来れるぞと。九華の帳を押しのけて。玉の簾をかかげつゝ。
ワキ
〔上〕 立ち出で給ふ御姿を見れば。
シテ
〔上〕 雲の鬢づら。
ワキ
〔上〕 花の顔ばせ。
シテ・ワキ
〔上〕 寂寞たる御眼のうちに。涙を浮べさせたまへば。
(小謡「梨花一枝」ヨリ「理りや」マデ)
〔上〕 梨花一枝 雨を帯びたる粧の。/\。太液の芙蓉の紅未央の柳の緑もこれにはいかで優るべき。げにや六宮の粉黛の顔色の無きも。理や顔色のなきも理りや。
ワキ
〔詞〕 如何に申し上げ候。さても后宮世にまし/\し時だにも。朝政は怠り給ひぬ。況んやかくならせ給ひて後。唯ひたすらの御歎に。今は御命も危く見えさせ給ひて候。然れば宣旨に任せ是まで尋ね参り。御姿を見奉る事。
〔下〕 唯これ君の御志浅からざりし故と思へば。いよいよ御痛はしうこそ候へ。
シテ
〔詞〕 げに/\汝が申す如く。今はかひなき身の露の。有るにもあらぬ魂のありかを。かように尋ね給ふ事。御情には似たれども。
〔下〕 訪ふにつらさのまさり草。枯々ならば中々に。便の風は恨めしや。
〔下二〕 又今更の恋慕の涙。旧里を思ふ魂を消す。
ワキ 
〔カカル上〕 さてしも有るべき事ならねば。急ぎ帰りて奏聞せん。
〔詞〕 さりながら御形見の物をたび給へ。
シテ
〔詞〕 これこそありし形見よとて。玉の釵とり出でて。

〔カカル上〕 方士に与へ給びければ。
ワキ
〔詞〕 いやとよこれは世の中に。たぐひ有るべき物なれば。いかでか信じ給ふべき。御身と君と人知れず。契り給ひし言の葉あらば。それをしるしに申すべし。
シテ
〔詞〕 げに/\これも理なり。思ひぞ出づる我も又。
〔上〕 その初秋の七日の夜。二星に誓ひし事の葉にも。
(小謡「天に在らば願はくば」ヨリ「涙かな」マデ)
〔下〕 天に在らば願はくば。比翼の鳥とならん。地に在らば願はくは。連理の枝とならんと誓ひし言を。密に伝へよや。私語なれども今洩れ初むる涙かな。
〔上〕 されども世の中の。/\。流転生死のならひとて。その身は馬嵬に留まり魂は仙宮に至りつゝ。比翼も友を恋ひ独り翅をかたしき。連理の枝朽ちて。忽ち色を変ずとも。同じ心の行くへならば。終の逢ふ瀬を頼むぞと語り給へや。
ワキ
〔ロンギ上〕 さらばといひて出舟の。伴ひ申し帰るさと。思はゞ嬉しさのなほ如何ならんその心。
シテ
〔上〕 我は又なになか/\に三重の帯。廻り逢はんも知らぬ身に。よしさらば暫し待て有りし夜遊をなすべし。
〔上〕 げにや驪山の宮の内。月の夜遊の羽衣の曲。
シテ
〔上〕 そのかざしにて舞ひしとて。
〔上〕 又取りかざし。
シテ
〔上〕 さす袖の。
〔上〕 そよや霓裳羽衣の曲。そよや霓裳羽衣の曲そゞろに。濡るゝ袂かな。
〘物着〙
シテ
〔上〕 何事も夢幻のたはぶれや。
〔上〕 あはれ胡蝶の舞ならん。
〘イロヱ〙
シテ
〔クリ上〕 それ過去遠々の昔を思へば。いつを衆生の始と知らず。
〔上〕 未来永々の流転。更に生死の終もなし。
シテ
〔サシ上〕 然るに二十五有の内。何れか生者必滅の理に洩れん。
〔上〕 先天上の五衰より。須弥の四州のさま%\に。北州の千年つひに朽ちぬ。
シテ
〔下〕 いはんや老少。不定の境。
〔下〕 歎の中の歎とかや。
(仕舞「我もそのかみは」ヨリ「別れなりけれ」マデ)
シテ
〔クセ下〕 我もそのかみは。上界の諸仙たるが。往昔のちなみありて。仮に人界に生れ来て。楊家の深窓に養はれ。いまた知る人なかりしに。君聞し召されつゝ。急ぎ召しいだし后宮に定め置き給ひ。偕老同穴のかたらひも縁尽きぬれば徒らに。又この島にたゞ一人。帰り来りて澄む水の。あはれはかなき身の露の。たまさかに逢ひ見たり。静かに語れ憂き昔。
(独吟「さるにても」ヨリ「別れなりけれ」マデ)
シテ
〔上〕 さるにても。思ひ出づれば恨ある。
〔上〕 その文月の七日の夜。君とかはせし睦言の比翼連理の言の葉も枯々になる私語の。笹の一夜の契だに名残は思ふ習なるに。ましてや年月馴れて程経る世の中に。さらぬ別のなかりせば。千代も人には添ひてましよしそれとても遁れ得ぬ。会者定離ぞと聞く時は。逢ふこそ別れなりけれ。
〔上〕 羽衣の曲。
〘序ノ舞〙
シテ
〔上〕 羽衣の曲。稀にぞ返す。乙女子が。
〔上〕 袖打ち振れる。心しるしや。/\。
シテ
〔上〕 恋しき昔の物語。
〔下〕 恋しき昔の物語。尽くさば月日も移り舞の。しるしの釵又賜はりて。暇申してさらばとて。勅使は都に帰りければ。
シテ
〔上〕 さるにても/\。
〔上〕 君にはこの世逢ひ見ん事も蓬が島つ鳥。浮世なれども恋しや昔はかなや別の常世の台に。伏し沈みてぞとどまりける。
79 changes: 41 additions & 38 deletions chiangxhua.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
* https://zhuanlan.zhihu.com/p/498778513
*
* 默認顯示音值,採用北宋早期音系通常拼寫風格
* 默認入聲尾音位用 /-p -t -k/,音值用 [-β -ɾ -ɣ]
* 如需顯示原圖的音位轉寫,請在「顯示」選擇「音位,入聲用陰聲尾」
*
* 代碼注釋中的等均指韻圖等(聲音唱和圖等),而不是切韻等
*
Expand All @@ -13,36 +11,42 @@

const is = (...x) => 音韻地位.屬於(...x);
const when = (...x) => 音韻地位.判斷(...x);
const 顯示高級選項 = 選項.顯示高級選項 ?? false;
const is音值 = 選項.顯示 !== '音位';

const 知照組符號字典 = {
'tɹ tʃ': 'ʃʒɹ',
'tɹ tɕ': 'ɕʑɹ',
'tɻ tʂ': 'ʂʐɻ',
// '二等 tɻ tʂ,三等 tɹ tɕ': 'ʂʐɻ|ɕʑɹ',
};

if (!音韻地位) return [
['顯示', [4,
'音位,入聲用陰聲尾(僅作爲原圖轉寫,不推薦)',
'音位,入聲用入聲尾',
'音值,保留二等介音,知照組用齦腭音',
'音值,省略二等介音,知照組用齦腭音',
'音值,省略二等介音,知照組用捲舌音',
'音值,省略二等介音,知照組二等捲舌、三等齦腭',
['顯示', [2,
'音位',
'音值',
]],
['入聲尾', [1,
'默認',
'ʋ ɹ ɣ',
'標音風格',
['知照組', [1].concat(Object.keys(知照組符號字典))],
['入聲尾', is音值 ? [1,
// 'ʋ ɹ ɣ',
'β ɾ ɣ',
'b d ɡ',
'p t k',
] : [2,
'ˀ ʋˀ jˀ wˀ', // 僅作爲原圖的音位轉寫,不推薦
'p t k ',
]],
['聲調', [1, '附加符號', '調類數字']],
['聲調', [1, '附加符號', '調類數字', '省略']],
['省略二等介音', is音值 ? true : null],
['全濁平省略送氣', false],
['次濁上省略喉化', false],
// ['山攝二等脣音歸合口', false], // (僅作爲原圖轉寫)圖中“八”在合口,但二等不應該在合口。《韻鏡》《七音略》脣音刪舒、山入在合口,刪入、山舒在開口
'演變規則',
['部分蟹攝二等入假攝', true],
['部分流攝脣音入遇攝', true],
['全濁上歸去', true], // 圖中未體現全濁上字的聲調,按口語則已歸去聲,按《蒙古字韻》風格則仍算上聲
['影喻上聲合併', false], // 圖中無影喻上聲對立的空間,可能口語已合併,但同期反切沒有相混的情況
['顯示高級選項', 顯示高級選項],
].concat(顯示高級選項 ? [
'高級選項',
['部分蟹攝二等入假攝', false],
['部分流攝脣音入遇攝', false],
['次濁上省略喉化', false],
['全濁平省略送氣', false],
['山攝二等脣音歸合口', false], // (僅作爲原圖轉寫)圖中“八”在合口,但二等不應該在合口。《韻鏡》《七音略》脣音刪舒、山入在合口,刪入、山舒在開口
] : []);
];

function 調整音韻地位() {
function 調整(表達式, 調整屬性) { if (is(表達式)) 音韻地位 = 音韻地位.調整(調整屬性); }
Expand All @@ -51,8 +55,8 @@ function 調整音韻地位() {
調整('明母 東韻', { : '一' });

// [慧琳反切體現的, 唐代用韻體現的, 據今音推測的]
const 蟹攝二等入假攝字 = ['崖咼(呙)扠涯搋派差絓畫(画)罣罷(罢)', '佳鼃娃解釵(钗)卦柴', '哇洼蛙灑蝸話(话)掛挂查叉杈衩'].join('');
const 流攝脣音入遇攝字 = ['浮戊母罦罘蜉矛茂覆懋拇某負(负)阜', '謀(谋)部畝(亩)畮婦(妇)不否桴富牟缶', '復複(复)副牡'].join('');
const 蟹攝二等入假攝字 = ['崖咼(呙)扠涯派差絓畫(画)罣罷(罢)', '佳鼃娃解卦', '灑蝸話(话)掛挂查叉杈衩'].join('');
const 流攝脣音入遇攝字 = ['浮戊母罦罘蜉覆拇負(负)阜', '部畝(亩)畮婦(妇)不否桴富', '復複(复)副牡'].join('');
if (選項.部分蟹攝二等入假攝 && 蟹攝二等入假攝字.includes(字頭)) 調整('蟹攝 二等', { : '麻' });
if (選項.部分流攝脣音入遇攝 && 流攝脣音入遇攝字.includes(字頭)) 調整('幫組 尤侯韻', { : is`尤韻` ? '虞' : '模' });
}
Expand Down Expand Up @@ -152,6 +156,7 @@ function get韻基() {
}

function get聲調() {
if (選項.聲調 === '省略') return '';
return {
: { 附加符號: '̀', 調類數字: '¹' },
: { 附加符號: '́', 調類數字: '²' },
Expand Down Expand Up @@ -191,22 +196,22 @@ function 音位to音值(音節) {
// 噝音後的開音節 /ə/ 變 [ɹ̩](實際僅精組開口和莊組有字)
音節.介音.includes('u') ? 音節.韻尾 = 'ɹ' : 音節.韻核 = 'ɹ̩';
}
if (選項.顯示.includes('知照組用捲舌音') ||
選項.顯示.includes('知照組二等捲舌') && 音節.介音.includes('ʕ')) {
[...'ɕʑɹ'].forEach((e, i) => { 音節.聲母 = 音節.聲母.replace(e, 'ʂʐɻ'[i]); });
if (音節.介音.includes('ʕ')) {
音節.韻核 = 音節.韻核.replace('ɹ̩', 'ɻ̍');
音節.韻尾 = 音節.韻尾.replace('ɹ', 'ɻ');
}
}
if (選項.顯示.includes('省略二等介音')) 音節.介音 = 音節.介音.replace('ʕ', '');
音節.介音 = 音節.介音.replace('iu', 'ʉ');
if (!音節.韻核) 音節.韻尾 = 音節.韻尾.replace('j', 'i'); // /iuəj/ 實際上是 [i] 的合口
音節.韻尾 = 音節.韻尾.replace('wŋ', 'uŋ');
音節.韻尾 = 音節.韻尾.replace('wɣ', 'uɣ');
}

function 後處理(音節) {
let 知照組符號 = 知照組符號字典[選項.知照組];
if (!音節.介音.includes('ʕ')) 知照組符號 = 知照組符號.slice(-3); // 二等取開頭 3 個符號,三等取最後 3 個符號
[...'ɕʑɹ'].forEach((e, i) => { 音節.聲母 = 音節.聲母.replace(e, 知照組符號[i]); });
if (知照組符號.includes('ɻ')) {
音節.韻核 = 音節.韻核.replace('ɹ̩', 'ɻ̍');
音節.韻尾 = 音節.韻尾.replace('ɹ', 'ɻ');
}
if (選項.省略二等介音) 音節.介音 = 音節.介音.replace('ʕ', '');

if (音節.介音.includes('ʲ')) {
音節.聲母 += ['', 'ˀ'].includes(音節.聲母) ? 'j' : 'ʲ';
音節.聲母 = 音節.聲母.replace('ʰʲ', 'ʲʰ');
Expand All @@ -216,9 +221,7 @@ function 後處理(音節) {
if (選項.全濁平省略送氣 && is`全濁`) 音節.聲母 = 音節.聲母.replace('ʰ', '');
if (is`入聲`) {
let 入聲尾 = 選項.入聲尾;
if (入聲尾 === '默認') 入聲尾 = 選項.顯示.includes('音值') ? 'β ɾ ɣ' : 'p t k';
if (選項.顯示.includes('入聲用陰聲尾')) 入聲尾 = 'ˀ ʋˀ jˀ wˀ';
const 韻尾to = 入聲尾.split(' ');
const 韻尾to = 入聲尾.trim().split(' ');
const 韻尾from = 韻尾to.length === 3 ? [...'βɾɣ'] : ['ɾ', 'β', is`曾梗攝` && 'ɣ', /.?ɣ/];
韻尾from.forEach((e, i) => { 音節.韻尾 = 音節.韻尾.replace(e, 韻尾to[i]); });
}
Expand All @@ -233,7 +236,7 @@ function get音節() {
韻尾: 韻基.substring(1),
聲調: get聲調(),
};
if (選項.顯示.includes('音值')) 音位to音值(音節);
if (is音值) 音位to音值(音節);
後處理(音節);
音節.韻母 = 音節.介音 + 音節.韻核 + 音節.韻尾;
音節.帶調韻母 = 音節.介音 + 音節.韻核 + (選項.聲調 === '調類數字' ? 音節.韻尾 + 音節.聲調 : 音節.聲調 + 音節.韻尾);
Expand Down
2 changes: 1 addition & 1 deletion test/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ assert_equal(panwuyun(音韻地位), "ɕiᴇu˧˥");
assert_equal(unt(音韻地位), "ɕéw");
assert_equal(msoeg_v8(音韻地位), "çiɛuˀ");
assert_equal(mid_tang(音韻地位), "ɕiɛw˦˥");
assert_equal(chiangxhua(音韻地位), "ɕiɛ́w");
assert_equal(chiangxhua(音韻地位), "ʃiɛ́w");
assert_equal(zhongyuan(音韻地位), "ʂjɛw³");
assert_equal(fanwan(音韻地位), "shiu2");
assert_equal(putonghua(音韻地位), "shǎo");
Expand Down

0 comments on commit 6b51961

Please sign in to comment.