from mecab import *\r
\r
def __print(s):\r
- print s.encode('cp932', 'ignore')\r
+ print s.encode('utf-8', 'ignore')\r
\r
buffer = ''\r
\r
rd = ar[0]\r
reading += rd\r
if len(ar) > 12:\r
- braille += ar[12] + r" "\r
+ braille += ar[12] + r"/"\r
else:\r
braille += rd + r"/"\r
return (reading, braille.rstrip(r" /"))\r
# tasks: 要素2は音声合成の読み、(もしあれば)要素3は点訳用のカナ表記\r
# 点訳の表記と分かち書きは、規則で処理できないものを\r
# Mecab 辞書の第13フィールドに追加している。\r
+# 要素3のスラッシュは形態素の区切り、スペースは形態素内のマスアケ\r
\r
# some examples from nvdajp-jtalk-dic:\r
# http://nvdajp-jtalk-dic.heroku.com/items/\r
['files', 'ファイルズ'],\r
['docs', 'ドックス'],\r
['labs', 'ラブス'],\r
+ ['japan', 'ジャパン'],\r
+ ['japanese', 'ジャパニーズ'],\r
+ ['favorites', 'フェイバリッツ'],\r
+ ['documents', 'ドキュメンツ'],\r
+ ['settings', 'セッティングズ'],\r
+ ['one', 'ワン'],\r
+ #['onegai', 'オネーガイー'],\r
+ ['redistributable', 'リディストリビュータブル'],\r
+ ['app', 'アップ'],\r
+ ['types', 'タイプス'],\r
+ ['mouse', 'マウス'],\r
+ ['page', 'ページ'],\r
+\r
['行', 'ギョー'],\r
- ['一行', 'イチギョー'],\r
+ #['一行', 'イチギョー'],\r
+ ['1行', 'イチギョー'],\r
['1行', 'イチギョー'],\r
['1行下', 'イチギョーシタ'],\r
['1行上', 'イチギョーウエ'],\r
['をりがみ', 'オリガミ', ], # 点訳のてびき第3版 第2章 その1 2 5 No.25\r
['八幡平', 'ハチマンタイ', ], # ヤワタダイラ\r
['山ん中', 'ヤマンナカ', ], # 点訳のてびき第3版 第3章 その1 2 No.14\r
- ['そういうわけ', 'ソーユウワケ', 'ソー イウ ワケ', ], # 点訳のてびき第3版 第3章 その1 3 No.51\r
+ ['そういうわけ', 'ソーユウワケ', 'ソー イウ/ワケ', ], # 点訳のてびき第3版 第3章 その1 3 No.51\r
['そういう', 'ソーユウ', 'ソー イウ', ], # 点訳のてびき第3版 第3章 その1 5 No.2\r
['どうして', 'ドーシテ', 'ドー シテ', ], # 点訳のてびき第3版 第3章 その1 5 No.5\r
\r
['いちばん', None, '1バン'],\r
['X線', None, 'Xセン'],\r
\r
+ {'text':'カムイト゚ラノ', 'speech':'カムイトラノ'}, # U+ff9f\r
+ {'text':'カムイト゚ラノ', 'speech':'カムイトラノ'}, # U+309a\r
+ {'text':'カムイト゜ラノ', 'speech':'カムイトラノ'}, # U+309c\r
+\r
+ {'text':'触読', 'braille':'ショクドク'},\r
+ {'text':'触読式時計', 'braille':'ショクドクシキ トケイ'},\r
+ {'text':'触手話', 'braille':'ショクシュワ'},\r
+ {'text':'触読手話', 'braille':'ショクドク/シュワ'},\r
+ {'text':'盲ろう', 'braille':'モーロー'},\r
+\r
+ {'text':'泉質', 'braille':'センシツ'},\r
+ {'text':'硫酸塩', 'braille':'リューサンエン'},\r
+ {'text':'硫酸塩泉', 'braille':'リューサンエンセン'},\r
+ {'text':'塩化物泉', 'braille':'エンカブッセン'},\r
+ {'text':'泉温', 'braille':'センオン'},\r
+ {'text':'冷鉱泉', 'braille':'レイコーセン'},\r
+ {'text':'微温泉', 'braille':'ビオンセン'},\r
+ {'text':'療養泉', 'braille':'リョーヨーセン'},\r
+ {'text':'低張性', 'braille':'テイチョーセイ'},\r
+ {'text':'等張性', 'braille':'トーチョーセイ'},\r
+ {'text':'高張性', 'braille':'コーチョーセイ'},\r
+ {'text':'酸性泉', 'braille':'サンセイセン'},\r
+ {'text':'放射能泉', 'braille':'ホーシャノーセン'},\r
+\r
+ {'text':'次章', 'braille':'ジショー'},\r
+ {'text':'お土産を有難うございます', 'braille':'オ/ミヤゲ/ヲ/アリガトー/ゴザイ/マス'},\r
+\r
#['好かんやつ', 'スカンヤツ', 'スカン ヤツ', ], #点訳のてびき第3版 第3章 その1 2 No.16\r
#['嘘みたいな話', 'ウソミタイナハナシ', 'ウソミタイナ ハナシ', ], # 点訳のてびき第3版 第3章 その1 2 No.17\r
#['行っていらっしゃい', 'イッテイラッシャイ', 'イッテ イラッシャイ', ], # 点訳のてびき第3版 第3章 その1 4 No.77\r
#['ごめんください', 'ゴメンクダサイ', 'ゴメン クダサイ', ], # 点訳のてびき第3版 第3章 その1 4 No.84\r
#['おはようございます', 'オハヨーゴザイマス', 'オハヨー ゴザイマス', ], # 点訳のてびき第3版 第3章 その1 4 No.86\r
+\r
+ # 点字表記辞典「あ」(1)\r
+ ['相対する', 'アイタイスル'],\r
+ ['相対的', 'ソータイテキ'], # regression test\r
+ ['相たずさえて', 'アイタズサエテ'],\r
+ ['相整う', 'アイトトノウ'],\r
+ ['同病相憐れむ', 'ドービョーアイアワレム', 'ドービョー/アイアワレム'],\r
+ ['木立の間から見える', 'コダチノアイダカラミエル'],\r
+ ['開いた口がふさがらぬ', 'アイタクチガフサガラヌ'],\r
+ ['相無く涙ぐみ足り', 'アイナクナミダグミタリ'],\r
+ ['お生憎様', 'オアイニクサマ'],\r
+ ['開かずの間', 'アカズノマ'],\r
+ ['不開の間', 'アカズノマ'],\r
+ ['山田県主', 'ヤマダノアガタヌシ'],\r
+ ['暁闇', 'アカツキヤミ'],\r
+ ['上がり降り', 'アガリオリ'],\r
+ ['河原町四条上ル', 'カワラマチシジョーアガル'],\r
+ ['秋津国', 'アキツクニ'],\r
+ ['現つ神', 'アキツカミ'],\r
+ ['阿Q正伝', 'アキューセイデン'],\r
+ ['悪源太', 'アクゲンタ'],\r
+ ['明くる朝', 'アクルアサ', 'アクル アサ'],\r
+ ['明くる年', 'アクルトシ', 'アクル トシ'],\r
+ ['明の星', 'アケノホシ', 'アケノ ホシ'],\r
+ ['麻布十番', 'アザブジューバン', 'アザブ ジューバン'],\r
+ ['男漁り', 'オトコアサリ', 'オトコ アサリ'],\r
+ ['古本漁り', 'フルホンアサリ', 'フルホン アサリ'],\r
+ ['足の甲', 'アシノコー', 'アシノ コー'],\r
+ ['日の足が伸びる', 'ヒノアシガノビル', 'ヒノアシ/ガ/ノビル'],\r
+ {'text':'醤油味', 'braille':'ショーユ アジ'},\r
+ {'text':'砂糖醤油', 'speech':'サトージョウユ'}, # regression test\r
+\r
+ # 点字表記辞典「あ」(2)\r
+ #{'text':'足手纏い', 'braille':'アシデ マトイ'},\r
+ #{'text':'手荷物預かり所', 'braille':'テニモツ アズカリジョ'},\r
+ #{'text':'額に汗して', 'braille':'ヒタイニ アセ シテ'},\r
+ #{'text':'認め遊ばす', 'braille':'シタタメアソバス'},\r
+ {'text':'源朝臣頼政', 'braille':'ミナモトノ アソン ヨリマサ'},\r
+ {'text':'東漢直駒', 'braille':'ヤマトノ アヤノ アタイノ コマ'},\r
+ #{'text':'徒し男', 'braille':'アダシ オトコ'},\r
+ #{'text':'徒し世', 'braille':'アダシヨ'},\r
+ #{'text':'新し物好き', 'braille':'アタラシモノズキ'},\r
+ #{'text':'暖かご飯', 'braille':'アッタカ ゴハン'},\r
+ #{'text':'城跡', 'braille':'シロアト'},\r
+ #{'text':'兄妹', 'braille':'アニ イモート'},\r
+ {'text':'兄貴風を吹かす', 'input':'アニキカゼヲ フカス', 'braille':'アニキカゼ/ヲ/フカス'},\r
+ #{'text':'秀兄イ', 'braille':'ヒデ アニイ'},\r
+\r
+ {'text':'一日から十日', 'braille':'イチ/ニチ/カラ/ジュー/ニチ'},\r
+ {'text':'1日から10日', 'braille':'イチ/ニチ/カラ/イチ/ゼロ/ニチ'},\r
+ {'text':'一日から一〇日', 'braille':'イチ/ニチ/カラ/イチ/レイ/ニチ'},\r
+ {'text':'名speech集', 'speech':'メイスピーチシュー', 'braille':'メイspeechシュー'},\r
+ {'text':'一人当り10個ずつ', 'braille':'ヒトリアタリ/イチ/ゼロ/コ/ズツ'},\r
+ {'text':'04月', 'speech':'ゼロシガツ', 'braille':'ゼロ/4ガツ'},\r
+\r
+ # 2013-08-25\r
+\r
+ {'text':'usage', 'speech':'ユーセイジ'},\r
+ {'text':'june', 'speech':'ジューン'},\r
+ {'text':'foundation', 'speech':'ファウンデイション'},\r
+ {'text':'everyone', 'speech':'エブリワン'},\r
+ {'text':'allowed', 'speech':'アラウド'},\r
+ {'text':'designed', 'speech':'デザインド'},\r
+ {'text':'take', 'speech':'テイク'},\r
+ {'text':'share', 'speech':'シェアー'},\r
+ {'text':'change', 'speech':'チェインジ'},\r
+ {'text':'guarantee', 'speech':'ギャランティー'},\r
+ {'text':'preamble', 'speech':'プリアムブル'},\r
+ {'text':'make', 'speech':'メイク'},\r
+ {'text':'sure', 'speech':'シュア'},\r
+ {'text':'users', 'speech':'ユーザーズ'},\r
+ {'text':'some', 'speech':'サム'},\r
+ #{'text':'★~<QUIZ>~~~~~~~~~~~~~~~', 'speech':'★~<QUIZ>~~~~~~~~~~~~~~~', 'braille':'★/~/</QUIZ/>/~/~/~/~/~/~/~/~/~/~/~/~/~/~/~'},\r
+\r
+ {'text':'更衣室', 'braille':'コーイシツ'},\r
+ {'text':'盗撮', 'braille':'トーサツ'},\r
+ #{'text':'北の風晴れ所により一時雨', 'braille':'キタノ/カゼ/ハレ/トコロニ ヨリ/イチジ/アメ'},\r
+ {'text':'晴れ所により一時雨', 'braille':'ハレ/トコロニ ヨリ/イチジ/アメ'},\r
+ {'text':'山西', 'braille':'ヤマニシ'},\r
+ {'text':'久代', 'braille':'ヒサヨ'},\r
+\r
+ {'text':'編集人', 'braille':'ヘンシューニン'},\r
+ {'text':'発行人', 'braille':'ハッコーニン'},\r
+ {'text':'受取人', 'braille':'ウケトリニン'},\r
+ {'text':'配達人', 'braille':'ハイタツニン'},\r
+ {'text':'管理人', 'braille':'カンリニン'},\r
+ {'text':'下請人', 'braille':'シタウケニン'},\r
]\r
\r
if __name__ == '__main__':\r
JT_DIR = os.path.normpath(os.path.join(os.getcwdu(), '..', '..', 'source', 'synthDrivers', 'jtalk'))\r
print JT_DIR\r
Mecab_initialize(__print, JT_DIR)\r
- for item in tasks:\r
+ for i in tasks:\r
+ if isinstance(i, dict):\r
+ if 'braille' in i:\r
+ if 'speech' in i:\r
+ item = [ i['text'], i['speech'], i['braille'] ]\r
+ else:\r
+ s = i['braille'].replace(' ', '').replace('/', '')\r
+ item = [ i['text'], s, i['braille'] ]\r
+ elif 'input' in i:\r
+ if 'speech' in i:\r
+ item = [ i['text'], i['speech'], i['input'] ]\r
+ else:\r
+ s = i['input'].replace(' ', '').replace('/', '')\r
+ item = [ i['text'], s, i['input'] ]\r
+ else:\r
+ item = [ i['text'], i['speech'] ]\r
+ else:\r
+ item = i\r
buffer = ''\r
result = get_reading(item[0])\r
if item[1] is not None and result[0] != item[1]:\r