~~SLIDESHOW~~ ====== NVDA Japanese enhancements ====== * The Localization of NVDA for Japanese Language Users * Takuya Nishimoto, Director of [[http://en.sourceforge.jp/projects/nvdajp/|NVDA Japanese Team]] * nishimotz @ gmail.com / Twitter @nishimotz * to appear in * PyCon JP 2012 [[http://workshop.nvda.jp/|NVDA Workshop in Japan]] (Sep.16,2012) * NVDA Japanese public meeting (Sep.17,2012) * [[http://ja.nishimotz.com/nvdajp_workshop|Japanese version]] ===== Prehistory ===== * 1980s: Japanese screen reader. character description. * 1988: online braille translation by IBM Japan * 1996: 95Reader. screen reader for Windows * 1997: IBM Home Page Reader. male voice for text, female voice for link. * 1998: PC-Talker. best selling in Japan. * 1999: 95Reader with Japanese braille support. * 2001: JAWS for Windows from IBM Japan. * 2006: Mobile phone which announce input method. ===== History ===== * 2006: NVDA released. * 2008: Internet Technology Research Committee (ITRC) Universal Access to the Internet (UAI) started discussions of NVDA Japanese support. (Prof. Takayuki Watanabe, Mitsue-Links Co.,Ltd) * 2010: Japanese speech engine, input method, character desription. (Takuya Nishimoto, Masataka Shinke) * 2011: Japanese braille support. 64bit system support. local community in Hiroshima city. * 2012: NVDA Japanese team restructured. ===== Python & nvdajp ===== * PyCon mini JP, PyCon JP 2011 * Bazaar version control system, lunchpad.net, sourceforge.jp * ctypes for Japanese speech engine, text analysis, braille display driver * Python for NVDA and add-ons * Plone for workshop.nvda.jp web site * NLTK for natural language processing? ===== Internationalization ===== * NVDA Translation team: 40 languages. * messages, documents, symbols * character descriptions (from Chinese community) * add-ons: OCR, Vocalizer * community web site ===== Japanese support ===== * Dependency (Japanese support unavailable) * eSpeak: multi-lingual open-source speech synthesizer * liblouis: multi-lingual open-source braille translator * speech engine is pluggable. braille translator is not. * Input methods * Character review functions ===== Community (2012) ===== * Team: non-profit developer community * 24 persons * weekly Skype meeting * Japanese Users List * 179 persons * share development snapshots, e-mail discussions * Friends * increase people who can teach NVDA * text book for support volunteers * Taiwan-Japan collaboration * bi-monthly Skype meeting ===== Works ===== * Development for Japanese users * enhancement for Japanese * 2012.2.1jp: more than 2000 downloads * discuss requirements for Japanese support * Support international users of Japanese language * add-on speech engine * Participate in international team * translation * support East-Asia enhancement work ===== Japanese requirements ===== * Why/how Chinese support and Japanese support are different? * No screen reader have merged Japanese version and international version? * domestic conventions? * screen readers since 1980s * Characteristics of Japanese language * [[http://shop.oreilly.com/product/9780596514471.do|CJKV Information Processing, 2nd Ed]] * uniqueness of writing system, braille system * Technical limitations * keyboard, speech engine ===== Input methods ===== * Correct pronunciation, wrong characters * gohenkan http://bit.ly/NXaVI2 * 'ha i ri so u de su': 'Yes, it is an ideal.' / 'It is likely to go into inside.' * serious problem for screen reader users * Same technology * Input Method Manager (IMM), Text Service Framework (TSF) * Difference of writing systems * candidates: many characters, many phrases * candidates contain both ideograph characters and syllable characters ===== State transitions ===== * Chinese input composition * initial state * editing reading string (on the spot) * candidate selection (composition window) * read all candidates, press number key to select * Japanese input composition * initial state * editing reading string (on the spot), before translation key pressed * composition string (on the spot), after translation key pressed * candidate selection (candidate window pop up), translation key pressed twice * number keys are not used ===== Half shape/full shape ===== * History: single byte/double byte * Unicode: shape does not correspond to byte size * Input method * disabled: half shape only * enabled: half shape and full shape are selectable * Discrimination * not necessary for understanding the meaning * necessary for writing, typing URLs, filling web forms (especially user authorization), software development ===== Characters 1 ===== * Latin (alphabet) * half shape, full shape * Number * half shape roman digit, full shape roman digit, ideograph * Pronunciation syllable (Kana) * Hiragana: grammatical words, inflectional endings * Katakana: foreign words. half shape and full shape ===== Characters 2 ===== * Ideographs * Kanji in Japanese, Hanzi in Chinese, Hanja in Korean * Chinese traditional > Japanese > Chinese simplified * typically many readings for one character * Symbols, punctuations * 600 full shape symbols by Japanese standard. * some symbols available for half shape and full shape ===== Writing system 1 ===== * Sentence contains both syllables and ideographs * Word is not separeted with spaces * Pronunciation of ideograph depends on the context * Input method * syllable-to-ideograph conversion using dictionary ===== Writing system 2 ===== * Braille * popular six-dot system * syllable based symbols are defined for Japanese braille. * reduce ambiguity: word break rules * 'ha i ri so - de su' * 'ha i/ ri so - de su' * ideographic braille: six-dot system and eight-dot system * Speech synthesis * pronunciation of single character (spelling reading) is undefined. * Morphological analysis: useful in many places * based on dictionary, and sometimes statics (machine learning) ===== Character descriptions 1 ===== * Chinese: many examples and explanations * announce first or announce all * Japanese: one example or explanation * written in syllable character * Usage * input method candidates * character review * text edit: very frequently ===== Character descriptions 2 ===== * Charater description * spelling reading (with dictionary) * ideographic character: necessary for descrimination * both for speech and braille display * phonetic reading: help listening of speech * latin character for English * syllable character for Japanese katakana and hireagana * Character attributes * similarity to announce capital letter * possible with speech, beep, pitch * half-shape/full-shape (Latin, katakana, number, symbol) * types of syllable character: katakana/hiragana ===== Syllable input ===== * Transliteration: Latin-to-syllable (roman) * US key array * Japanese key array * braille input (Latin six-dot system) * Direct: (kana) * Japanese key array * braille input (Japanese six-dot system) ===== Keyboard 1 ===== * 'Half-shape/Full-shape' key * enable or disable input method (not switching systems) * with/without ALT modifier key * US key array: ALT-tilde is equivalent * 'Non-Conversion' key * transliteration mode change * do not convert reading string (Hiragana) * convert to foreign word charaters (Katakana) * 'Conversion' key * space key is equivarent in most cases * 'Katakana/Hiragana/Roman' key * with ALT modifier, syllable input mode change ===== Keyboard 2 ===== * Caps Lock key * in Japanese array, cannot be used as NVDA modifier key * Variations * Non-Conversion equivalents: Ctrl-U,I,O,P and F6-F9 * Preferences * change mode before typing syllables * (non) convert after typing syllables ===== Japanese speech ===== * Very few free software * SAPI4 engines still popular * W3C SSML 1.1: poorly supported in Japan * JTalk (based on Open JTalk, MMDAgent) * Hidden Markov Model (HMM) synthesizer, BSD license * Mecab text processor * ultra-fast speech * JTalk2 * automatic language change * JTalk for 'ja' * eSpeak for others ===== Applications ===== * Input method editors (third parties) * ATOK from Just System, Google Japanese Input, Baidu IME * PC-Talker companions * NetReader may be associated with web pages. * OpwBE: braille translation tool * Hidemaru editor, domestic e-mail clients * ControllerClient enhancement: speakSpelling ===== Braille support ===== * Devices: KGS braille display * Japanese company: KGS Corporation * braille input support * serial port support requested from users * vendor library depends on serial port emuration * Braille translator * experimental translator * new version is under development * liblouis enhancement? * Number of characters and number of cells * wrong cursor position ===== Braille translator ===== * (1) Pre-process * separation: Japanese, English, computer * (2) Morphological analysis (Japanese) * Mecab already used for JTalk speech engine * (3) Morphological unit processing (Japanese) * word break, long vowel marks * Latin, number, Japanese symbol * number translation * (4) Word break detemination (Japanese) * (5) Post-process: make dot patterns * merge Japanese and English/computer * foreign mark, cap mark, number mark, braille symbols ===== Future ===== * Separate interface language and content language * speech is already multilingual * multilingual input methods support * Costly development in Japanese community * digital signature required for release * is our language really special? * Character/symbol description, abbreviations(chk, rbtn) * efficiency, completeness, conventions * Touch device and input methods * bluetooth keyboard for smartphone