The keyboard layout is mirrored down the middle, such that each side has
the same keys available and the same fingers have access to the same
keys (e.g. D, G, Z, and W are available to either pointer finger). By
convention, when writing Yawei steno code only one order is used,
regardless of which side it is actually used on. The order of the keys
is given below:
(Yawei textbooks tend to reorder NA as AN, since it corresponds to the
sound 'an'. This helps with ease of reading, but for the sake of
consistency this convention will not be followed here.)
Above the keyboard on the Yawei steno machine is a row of six function
keys which are primarily used to select output if the input is
ambiguous. The screen above the function keys is a display for the
output.
One area where Yawei steno differs from Plover (and most English steno
theories?) is the placement of the fingers: the index fingers cover the
first four fingers on both sides (i.e. D, Z, G, W), while the middle,
ring, and pinky fingers each get one column (I and U for the middle, N
and E for the ring, and A and O for the pinky).
2. Phonetic Input
Four of the keys are for consonants (B, D, Z, G) and six are for
vowels/rimes (I, U, N, E, A, O). X and W are largely used as function
keys, but X is also used in conjunction with the consonant keys.
Each of the sound keys (i.e. all keys except for X and W) also
corresponds to a syllable of Mandarin, so that single key combinations
can be used to form disyllabic compounds. The correspondences for each
of these keys are as follows:
B = bu, D = de, Z = zhi, G = ge
I = yi, U = wu, N = en, E = e, A = a, O = (w)o
Below are some example combinations of single keys, one on each hand
(note: the Yawei convention of showing which side a given key is on is
to use a colon (:) much in the same way a hyphen (-) is used in English
steno, and so for the sake of clarity the English steno convention will
be followed):
D-Z 得知 dezhi B-D 不得 bude G-Z 擱置 gezhi
I-U 義務 yiwu A-I 阿姨 ayi N-D 恩德 ende
E-U 訛誤 ewu O-D 我的 wode I-G 一個 yige
Relatedly, each consonant has an associated vowel, so that if that vowel
is used, there is no need to stroke the rest of the syllable. That is,
there is no need to stroke BU for 'bu', as B already covers 'bu'. If
another vowel is used, e.g. BA 'ba', then the default vowel is removed.
The other consonants of Mandarin are stroked using combinations of the
consonant keys, generally with two thumb keys X and B changing the
quality of the consonant (e.g. unaspirated to aspirated, oral to nasal,
etc.), but not the place of articulation. Below is the full list of
consonants and their Yawei codes:
B 'bu' BG 'pu' XB 'mu' XBU 'fu'
D 'de' BD 'te' XBD 'ne' XD 'le'
Z 'zhi' BZ 'chi' XZ 'shi' XBZ 'ri'
DZ 'zi' BDZ 'ci' XDZ 'si'
G 'ge' XBG 'ke' XG 'he'
GI 'ji' XGI 'qi' XI 'xi'
The vowel/rime keys are also used in conjunction to form the various
rimes of Mandarin. While many of the key combinations resemble their
pinyin equivalents, some of them differ rather significantly. Below is
the full list of rime codes:
I 'yi' U 'wu' IU 'yu/ü' N 'en'
E 'e, ei' NE 'eng' A 'a' O '(w)o'
AO 'ao' NA 'an' EO 'ou' IN 'yin'
UE 'wei' IA 'ya' NO 'ang' IO 'ai'
IE 'ye' EA 'yo' XE 'er' UN 'wen'
UA 'wa' UIO 'wai' INE 'ying' IUE 'yue'
IUN 'yun' IAO 'yao' INA 'yan' UEO 'ong/weng'
IUEO 'yong' IEO 'you' INO 'yang' UNO 'wang'
UAN 'wan' IUAN 'yuan'
Note that given the nature of pinyin spelling rules, there is some
variation in how the corresponding syllables will be spelled out, e.g.
in the above table U stands for 'wu', but the pinyin syllable 'gu' is
nevertheless GU, as the leading w/y is dropped if another consonant is
used. Also, while the correspondence between Yawei steno codes and
pinyin is nearly one-to-one, the keys E and O potentially refer to two
different rime categories.
The key E has both 'e' and 'ei', and this works because these two rhymes
only contrast in a small handful of cases, namely 'ge' vs. 'gei', 'ze'
vs. 'zei', 'she' vs. 'shei', and 'me' vs 'mei'. In the first example,
'ge' is stroked as G, leaving 'gei' to be stroked as GE, so there is no
conflict. In the second and third examples, 'ze' and 'she' are stroked
DZE and XZE respectively, and so to make a distinction I is added to the
codes for 'zei' and 'shei', giving DZIE and XZIE. In the final example,
'me' is stroked as XBE and 'mei' is stroked as XBIU.
In the case of the O key, which on its own is 'wo', it is also used for
'o', which is only a rime on its own (i.e. without a preceding
consonant) in sentence final particles, usually written 哦, 喔, or 噢. I am
not yet certain how Yawei handles the latter case.
2.1 Alternative Phonetic Codes
Given the gaps in the combinations of the consonant and rime codes,
there are a few alternative strokes for some syllables that may be
easier to type, either because they involve using "stronger" fingers
(thumb, index, middle) instead of "weaker" fingers (ring or pinky), or
they use keys that are next to each other (allowing the use of only one
finger depressing both keys at once), or they use fewer keys. Some of
these involve either dropping some of the rime keys and/or replacing one
or more keys with the function key W.
All of the alternative codes are given below with their fully phonetic code on the right for comparison.
WIU=GIU 'ju' XWIU=XGIU 'qu'
WIUN=GIUN 'jun' XWIUN=XGIUN 'qun'
WIUE=GIUE 'jue' XWIUE=XGIUE 'que'
WIUNA= GIUNA 'juan' XWIUNA=XGIUNA 'quan'
XBZIU=XBDIU 'nü' XZIU=XDIU 'lü'
BWIU=XDIU 'lü' XWIUO=XGIUO 'huai'
WIUEO=GIUEO 'jiong' GWA=GUA 'gua'
XBGW=XBGUA 'kua' ZIU=ZUA 'zhua'
XZWU=XZUA 'shua' GWI=GUNA 'guan'
GWIU=DZUNA 'zuan' BGWIU=XDZUNA 'suan'
WUNO=ZUNO 'zhuang' BWIUE=XDIUE 'lüe'
XBWIUE=XBDIUE 'nüe' XWIUEO=XGIUEO 'qiong'
XBGI=XBGUIO 'kuai' XDN=XDNE 'leng'
BDN=BDNE 'teng' BDIN=BDINE 'ting'
DIN=DINE 'ding' BUI=XBUA 'fa'
XGW=XGUA 'fa'
3. Briefs in Yawei Steno
Yawei handles certain types of briefs in a rather formulaic manner,
categorizing them based on how the function keys are used. Each category
is described below.
3.1 Specific Character Codes (Single Briefs) 漢字特定碼
3.1.1 One Hand Briefs [numbers, etc]
These briefs are mostly used for certain commonly used individual
characters (as well as a few phrases), and also the characters for
numbers. Stroking the specific code on the left hand while using one of
the function keys on the right then gives a two character brief, as in
WU for 五 wu "five", when used in WU-W gives 五月 wuyue "May (the fifth
month)".
WO 零 líng "zero"
WI 一 yī "one" WI-X 一切 yíqiè "all" WI-W 一般 yìbān "ordinary"
XWE 二 èr "two" XWE-X 二者 èrzhě "both"
WN 三 sān "three" WN-X 三好 sān hǎo "three virtues" WN-W 三月 sānyuè "March"
ZW 四 sì "four" ZW-W 四月 sìyuè "April"
WU 五 wǔ "five" WU-W 五月 wǔyuè "May"
WEO 六 liù "six" WEO-W 六月 liùyuè "June"
XGWI 七 qī "seven" XGWI-W 七月 qīyuè "July"
BW 八 bā "eight" BW-W 八月 bāyuè "August"
GW 九 jiǔ "nine" GW-W 九月 jiǔyuè "September"
XZW 十 shí "ten" XZW-X 十分 shífēn "very" XZW-W 十月 shíyuè "October"
WIO 百分之 bǎifēn zhī "percent"
WIAN 千分之 qiānfēn zhī "(a) thousandth"
Certain specific character codes are used to distinguish otherwise
homophonous phrases, as in the following examples where the specific
character code for 是 shì "to be" is used to distinguish it from other
characters that are also pronounced 'shi':
XZI-G 是個 'shi ge' vs XZ-G 詩歌 'shige'
XZI-B 是不 'shi bu' vs XZ-B 師部 'shibu
3.1.2 Two Hand Single Briefs 單音詞特定碼
For most of the possible syllables in Mandarin, up to three of the most commonly used characters with that pronunciation are chosen for briefs of the form X-[code], W-[code], or XW-[code]. That is, for a given syllable, stroking X on the left hand and the code for that syllable on the right results in a particular character, stroking W on the left hand results in another, and so on. Consider the following examples with homophonous syllables.
IEO 'you' X-IEO 有 yǒu "have" W-IEO 由 yóu "by" XW-IEO 又 yòu "again"
IU 'yu' X-IU 於 yú "at" W-IU 與 yǔ "and" XW-IU 于 "at"*
GI 'ji' X-GI 及 jí "and" W-GI 幾 jǐ "how many" XW-GI 即 jí "that is"
D 'de' X-D 的 de "of" W-D 得 de "aspect marker"
DZ 'zi', X-DZ 自 zì "self, from" W-DZ 字 zì "character"
XZ 'shi' X-XZ 使 shǐ "cause" W-XZ 時 shí "time"
BDZ 'ci' X-BDZ 此 cǐ "this" W-BDZ 次 cì "instance"
BD 'te' X-BD 特 tè "special"
O 'wo' X-O 我 wǒ "I, me"
XBDIU 'nv' X-XBDIU 女 nǚ "woman"
*The codes for 於 and 于 here are reversed from original due to their differing distributions in Traditional Chinese.
Though in fact, there are only 10 uses of the XW briefs, and not all possible syllables use either X or W briefs (though if the W brief is used, then there is also an X brief).
XW-BZNE 乘 chéng "ride"
XW-BZU 處 chǔ "place"
XW-IEO 又 yòu "again"
XW-IU 於/于 yú "at"
XW-GI 即 jí "that is, thus"
XW-XZN 神 shén "god"
XW-XZNE 省 shěng "province"
XW-UE 唯 wéi "only"
XW-XINA 縣 xiàn "county"
XW-XNE 爭 zhēng "struggle"
In addition, the codes for the banker's numerals are the single hand number codes on the right hand, with W stroked on the left, as shown below.
W-WI 壹 yī "one" W-XWE 貳 èr "two" W-WN 參 sān "three"
W-ZW 肆 sì "four" W-WU 伍 wǔ "five" W-WEO 陸 liù "six"
W-XGWI 柒 qī "seven" W-BW 捌 bā "eight" W-GW 玖 jiǔ "nine"
W-XZW 拾 shí "ten" W-WIO 佰 bǎi "hundred" W-WIAN 仟 qiān "thousand"
3.2 Two Character Briefs (1-2 Briefs) 雙音詞語略碼
The format of 1-2 briefs is either [syl]-X or [syl]-W, where [syl] is a given syllable code. This means that for each possible syllable, there is the potential for up to two briefs that start with that syllable. Below are few examples:
B 'bu' B-X 不能 bùnéng "cannot" B-W 部分 bùfèn "part"
XB 'mu' XB-X 目的 mùdì "goal" XB-W 目前 mùqián "at present"
D 'de' D-X 得到 dédào "receive" D-W 德國 Déguó "Germany"
XZ 'shi' XZ-X 時間 shíjiān "time" XZ-W 時候 shíhòu "(at what) time"
3.3 Three Character Briefs (1-3 Briefs) 三音詞語略碼
The format of 1-3 briefs is [syl]/X-X, where [syl] is a given syllable code, stroked with either hand. Note that not all possible syllables actually have a corresponding 1-3 brief, i.e. there are some gaps.
Below are some examples of 1-3 briefs:
BD 'te' BD/X-X 特別是 tèbié shì "especially"
XBU 'fu' XBU/X-X 服務員 fúwùyuán "customer service representative"
XGI 'qi' XGI/X-X 企業家 qìyèjiā "entrepreneur"
DI 'di' DI/X-X 第一次 dì yí cì "the first time"
3.4 Four Character Briefs (2-4 Briefs) 四音詞語略碼
The format of 2-4 briefs is [syl1]-[syl4]/X-X, where [syl1] is the code for the first syllable of the target phrase, and [syl4] is the code for the fourth syllable of the target phrase. See the examples below:
B 'bu', XDZ 'si' B-XDZ/X-X 不好意思 bùhǎoyìsi "sorry, excuse me"
XDZUE 'sui', BDZ 'ci' XDZUE-BDZ/X-X 雖然如此 suīrán rú cǐ "be that as it may"
XZ 'shi', G 'ge' XZ-G/X-X 市場價格 shìchǎng jiàgé "market value"
B 'bu', GI 'ji' B-GI/X-X 不切實際 bú qiè shíjì "unrealistic"
DINA 'dian', BO 'bo' DINA-BO/X-X 電視廣播 diànshì guǎngbō "TV commerical"
3.5 Multiple Character Briefs (Multi Briefs) 多音詞語略碼
The format of Multi Briefs is [syl1]-[syl2]/[syl#]-XO, where [syl1] is the code for the first syllable of the target phrase, [syl2] is the second, and [syl#] is the code for the final syllable. See the examples below:
DZEO 'zou', DZ 'zi', XDU 'lu' DZEO-DZ/XDU-XO 走自己的路 zǒu zìjǐ de lù "to go down one's own path"
BDI 'ti', GAO 'gao', XDIU 'lü' BDI-GAO/XDIU-XO 提高工作效率 tígāo gōngzuò xiàolü "increase work productivity"
DZOI 'zai', ZE 'zhe' XIA 'xia' DZOI-ZE/XIA-XO 在這種情況下 zài zhè zhǒng qíngkuàng xià "under this sort of circumstance"
GIA 'jia', XDI 'li', IA 'ya' GIA-XDI/IA-XO 加利福尼亞 jiālìfúníyà "California"
3.6 Disyllabic Suffix Briefs (Suffix Briefs) 後置成分雙音詞特定碼
The format of Suffix Briefs is [syl1]-[suffix], where [syl1] is the code for the first syllable of the target phrase, and [suffix] is the brief for the corresponding two syllable ending. The structure of the [suffix] is to take the consonant of the first syllable + W + the rime of the second syllable. For example, the suffix brief for ZU-I 主義 zhǔyì "-ism" is ZWI. At the time of writing, there are only 11 suffixes that are used in this way, four of which are given in examples below.
XZE 'she' XZE-ZWI 社會主義 shèhuìzhǔyì "socialism"
XBA 'ma' XBA-ZWI 馬克思主義 makèsizhǔyì "Marxism"
IO 'ai' IO-ZWI 愛國主義 àiguózhǔyì "patriotism"
XBUNE 'feng' XBUNE-XZWUE 封建社會 fēngjiànshèhuì "feudalist society"
GUE 'gui' GUE-ZWU 規章制度 guīzhāng zhìdù "rules and regulations"
GAO 'gao' GAO-XWAO 高等學校 gāoděng xuéxiào "college/university (i.e. schools of higher learning)"
4. Other Types of Output
4.1 Punctuation
Much of the commonly used punctuation marks come in pairs, each member of the pair using the same code, but on opposite sides. For example, the full-width comma (,) is -DGI and the full-width period (。) is DGI-. Below are a few more such pairs:
ZG- ? -ZG 、
DGIN- ; -DGIN !
DW- “ -DW ”
DZIU- 《 -DZIU 》
Some of the punctuation marks are "on their own", as it were, and there is a whole category of additional punctuation marks and symbols that stroke XU- combined with a mnemonic syllable. This category also has some overlap with the above commonly used marks. The "mnemonics" are given in square brackets, with an explanation in English in parentheses.
XBDG- :
XU-GINE # [井] (similar in appearance)
XU-BIO % [百(分號)] (using 100, as percent is "per 100")
XU-IUAN( [圓(括號)] (meaning "round")
XU-IUN ) [云(諧音)] (similar in sound to the above)
XU-UN? [問(號)] (meaning "question (mark)")
XU-GIU。 [句(號)] (meaning "sentence (mark)")
4.2 Arabic Numerals and Math Notation
Arabic numerals (1, 2, 3, etc.) and other symbols used for math are output by stroking XN on one side, and depressing a key on the other side. By stroking XN, a new sort of layout is activated, as shown below:
< ÷ × - + 1 3 5 7 9
> ) ( / = 2 4 6 8 0
% X X .
Stroking XN- and a key on the right side gives the numbers, while -XN and a key on the left gives the symbols. Using the X keys as shown above would give a space, i.e. XN-X and X-XN both give a single space. Below are a few more examples:
XN-D = 1 XN-B = .
XN-Z = 2 XN-O = 0
D-XN = + W-XN = /
A-XN = < B-XN = %
Note that there is usually a space between a numeral and a Chinese character, but this is not supplied by the machine, so the user is expected to supply the space using XN-X or X-XN.
4.3 Latin Letters and Pinyin
Latin letters (A, a, B, b, etc) can be input individually using XU- (for capital letters) or XUE- (for lower case letters) combined with a code on the right hand side. These codes are roughly what one would expect based on the phonetic input-output. That is, XBU corresponds to 'fu' in pinyin, and so XU-XBU is 'F'. Below are a few more representative examples:
XU-A A XUE-A a
XU-GI J XUE-GI j
XU-BD T XUE-BD t
XU-UE V XUE-UE v
XU-IA Y XUE-IA y
Latin letter output is also handled via pinyin output, where the user inputs phonetic code (no briefs), and then strokes WUE or WUEO to output the corresponding pinyin for that phonetic code. According to the textbook, this is to avoid typing out the wrong characters for a name, with the note that the stenographer would go back and correct the script once they know how the name is written. Below are the examples given in the text:
XDI/WUE/XGUEO-XGI/WUE lihongqi (i.e. 李宏起, a personal name)
ZNO/WUE/GIA-GIE/WUE zhangjiajie (i.e. 張家界, a place name)
Note that spaces are not added automatically.
An apparent feature of Yawei steno machines not mentioned in the textbook but included in the software package on the company website, is the inclusion of English output via Chinese. What this means is, rather than typing out each individual letter as would shown above, it is apparently possible to stroke a phrase of Chinese, and then input a code afterwards that converts that phrase into Chinese.
I'm not sure the exact intention behind this, but I believe that it's meant to deal with situations where the speaker switches to English for a word or two. For example, in Taiwan it's not uncommon for people to use certain words of English, such as "idea", "care", "logo", etc., in a Mandarin sentence. Consider a sentence like the one below, which switches into English:
我沒有什麼idea - wǒ méiyǒu shénme 'idea' - "I don't have any ideas."
For the stenographer, it would take a bit longer to stroke the individual letters of "idea" than it would to stroke a Chinese equivalent to "idea" (意見 yìjiàn, for example), and then use a code similar to the brief codes to have that converted into English. I forget what the actual code is, but I can certainly find it again.
5. Strategies for Single Character Output
Given the issue of homophony, typing a given Chinese character sans context and using only phonetic input forces the user to choose which character to output. Forced character selection, while a part of the Yawei steno process, is not the only strategy for dealing with this problem, however. Below are two strategies (that don't involve the single character briefs discussed above) for typing individual characters.
5.1 Selection Via Elimination 聯詞消字定字法
This strategy involves typing out a phrase containing the target character, then deleting a non-target character that is also in that phrase. For example, to output 知 zhī "know", the textbook recommends stroking Z-DAO for 知道 zhīdào "to know", and then pressing -W to delete 道 dào, leaving the target character 知 zhī.
This strategy also works with phrases where the target character is at the end, and so the user must delete the preceding character. For example, one way to type 家 jia "house" would be to stroke BNA-GIA for 搬家 bānjiā "to move (house)", then press W- to delete the second-to-last character on the stack, namely 搬 ban.
In theory, using W to delete either the last or the second-to-last character also works when stroking phrases of more than two characters. In practice, I'm not sure how often this is employed.
Note that briefs may also be used for this strategy, so to type 起 qǐ "rise" for example, one could stroke XGI-X for 起來 qǐlái "come up", then delete 來 lái using -W.
5.2 Character Shape Codes 形碼
In a situation where the stenographer must type a character whose pronunciation may not be clear to the stenographer, there is a way to type the character by looking at it's "shape", i.e. its component parts. On the machine, to enter into this mode, the typist strokes XN-XN, then types the target character(s), and strokes XN-XN again to leave this mode.
To give an example of how this works, if the user wanted to type 謝 xiè "to thank" in this way, they would break the character up into two parts, picking the largest coherent parts available. In the case of 謝 xie, that would be 言 yán and 射 shè -- the typist should avoid picking out a smaller part of a larger whole, so picking out 言 yán and 寸 cùn for example, would not work. With the two parts found, the user then strokes those two parts phonetically, so in the above case that would be IAN-XZE.
Another example would be the comparatively rare character 趑 zī (the first character in 趑趄 zījū "walk with difficulty"): this character can be broken up into 走 zǒu and 次 cì, and so after entering into the character shape input mode, user would stroke DZEO-BDZ. The user should not take the smaller 欠 qiàn character that could also be found within 次 cì / 趑 zi.
For characters that cannot be easily broken up into distinct parts this way, the typist can instead take the phonetic code for one part and the stroke code for the other part, or instead use the stroke codes for the first and last parts of the character. For example, the character 孓 jue could be typed by using the phonetic code XD 'le' standing for 了, combined with XBDA 'nà' which stands for 捺 "a stroke going down and to the right", giving XD-XBDA. See two more examples below
幺 ZE-XDZ -- 折 'zhé' "a bent/turning stroke" + 私/厶 'si'
工 XGNE-XNGE -- 橫 'héng' "a horizontal stroke" x2 (both the first and last strokes in the case are the same)
If a character cannot be easily broken up, then then the left hand types it phonetically while the right hand gives the code for the first stroke. For example, 之 zhi "of" is stroked Z-DINA in this way, with Z 'zhi' for the sound and DINA 'dian' referring to 點 dian "a dot" (the top part of the character is a "dot" stroke).
5.3 (Forced) Character Selection
In the event that a given stroke cannot be disambiguated, it is up to the typist to pick the target output using the function keys above the keyboard. On the Yawei steno software, it gives each phrase a sort of "index", representing where said phrase will appear. For example, if a given output is the third choice on the first page, its index will be (1-3), with the page first and the spot on that page second. To give an example of this, XZ-GINA 'shijian' could refer to a number of different possible phrases, so under the heading for XZ-GINA 'shijian', each output would be given an index, as in the hypothetical example below.
實踐 (1-1) "(put into) practice"
事件 (1-2) "event, incident"
始建 (1-3) "start building"
失檢 (1-4) "be indiscreet"
屍檢 (1-5) "autopsy"
時艱 (2-1) "hard times"
Note that this kind of output selection could also be used for single characters, but given the amount of homophony in such circumstances and how long it would take to "find" the target character, it would probably be best to avoid such an approach.
6. Other Functions [deletion, selection, movement, etc]
As mentioned above, the Yawei steno machine also allows the typist certain typesetting functions, such as punctuation, deletion, adding spaces and line breaks, as well as "moving" the cursor. Below is a brief overview of some of these other functions:
-X adds a space
W- deletes the second-to-last character
-W deletes the last character
W-W deletes the preceding stroke
XBW- adds a line break and indents two spaces
-XBW adds a line break without indenting
WUE converts the previous phonetic input into Pinyin output
WUEO same as above
XAN-I move cursor up
XAN-U move cursor down
XAN-W move cursor left
XAN-E move cursor right
XU-XZEO move to the beginning of the line (= HOME), right hand strokes 首 shou "beginning"
XU-XBO move to the end of the line (= END), right hand strokes 末 mò "end"
XU-IAN move up one page (= PgUp)
XU-UEO move down one page (= PgDn)
7. Concluding Remarks
So that's the basics of Yawei steno for Chinese. I have some thoughts about how this system could be adapted for Plover, and I am working on a sample dictionary as a sort of "proof of concept". I will try to get these thoughts organized well enough soon and provide another write-up along with the sample dictionary.