#!/usr/bin/perl
#
#
# Copyright (c) 2013 anausagi
#
#
# なお、Juliuslib の yomi2voca.pl を参考にしている
#
#
# 語彙、読み方 のcsvリストからJulius用の語彙辞書を作成する
#
# 入力形式（csv）
# 表記語彙,読み方
#
# 出力
# 表記語彙	[表記語彙]	発音
# の順で出力する
#
#
# 読み方はひらがな、カタカナを使用できる
#
# 助詞の「は」「へ」「を」→「w a」「e」「o」は変換後に手動で直す
#
# 、。．などの記号に修正が必要かも？
#
#
#


# </s>などを出力しておく
print "</s>\t[]\tsilE\n";
print "<s>\t[]\tsilB\n"
print "、\t[、]\tsp\n"
print "。\t[。]\tsp\n"
print "．\t[．]\tsp\n"

while(<>) {

	chomp;
	
	@tmp_array = split;
	$_ = $tmp_array[1]; # 読み方を取り出す
	
# ひらがな，長音以外はそのまま

# 3文字以上からなる変換規則（v a）
    s/う゛ぁ/ b a/g;
    s/う゛ぃ/ b i/g;
    s/う゛ぇ/ b e/g;
    s/う゛ぉ/ b o/g;
    s/う゛ゅ/ by u/g;
    #カタカナ
    s/ウ゛ァ/ b a/g;
    s/ウ゛ィ/ b i/g;
    s/ウ゛ェ/ b e/g;
    s/ウ゛ォ/ b o/g;
    s/ウ゛ュ/ by u/g;

# 2文字からなる変換規則
    s/ぅ゛/ b u/g;

    s/あぁ/ a a/g;
    s/いぃ/ i i/g;
    s/いぇ/ i e/g;
    s/いゃ/ y a/g;
    s/うぅ/ u:/g;
    s/えぇ/ e e/g;
    s/おぉ/ o:/g;
    s/かぁ/ k a:/g;
    s/きぃ/ k i:/g;
    s/くぅ/ k u:/g;
    s/くゃ/ ky a/g;
    s/くゅ/ ky u/g;
    s/くょ/ ky o/g;
    s/けぇ/ k e:/g;
    s/こぉ/ k o:/g;
    s/がぁ/ g a:/g;
    s/ぎぃ/ g i:/g;
    s/ぐぅ/ g u:/g;
    s/ぐゃ/ gy a/g;
    s/ぐゅ/ gy u/g;
    s/ぐょ/ gy o/g;
    s/げぇ/ g e:/g;
    s/ごぉ/ g o:/g;
    s/さぁ/ s a:/g;
    s/しぃ/ sh i:/g;
    s/すぅ/ s u:/g;
    s/すゃ/ sh a/g;
    s/すゅ/ sh u/g;
    s/すょ/ sh o/g;
    s/せぇ/ s e:/g;
    s/そぉ/ s o:/g;
    s/ざぁ/ z a:/g;
    s/じぃ/ j i:/g;
    s/ずぅ/ z u:/g;
    s/ずゃ/ zy a/g;
    s/ずゅ/ zy u/g;
    s/ずょ/ zy o/g;
    s/ぜぇ/ z e:/g;
    s/ぞぉ/ z o:/g;
    s/たぁ/ t a:/g;
    s/ちぃ/ ch i:/g;
    s/つぁ/ ts a/g;
    s/つぃ/ ts i/g;
    s/つぅ/ ts u:/g;
    s/つゃ/ ch a/g;
    s/つゅ/ ch u/g;
    s/つょ/ ch o/g;
    s/つぇ/ ts e/g;
    s/つぉ/ ts o/g;
    s/てぇ/ t e:/g;
    s/とぉ/ t o:/g;
    s/だぁ/ d a:/g;
    s/ぢぃ/ j i:/g;
    s/づぅ/ d u:/g;
    s/づゃ/ zy a/g;
    s/づゅ/ zy u/g;
    s/づょ/ zy o/g;
    s/でぇ/ d e:/g;
    s/どぉ/ d o:/g;
    s/なぁ/ n a:/g;
    s/にぃ/ n i:/g;
    s/ぬぅ/ n u:/g;
    s/ぬゃ/ ny a/g;
    s/ぬゅ/ ny u/g;
    s/ぬょ/ ny o/g;
    s/ねぇ/ n e:/g;
    s/のぉ/ n o:/g;
    s/はぁ/ h a:/g;
    s/ひぃ/ h i:/g;
    s/ふぅ/ f u:/g;
    s/ふゃ/ hy a/g;
    s/ふゅ/ hy u/g;
    s/ふょ/ hy o/g;
    s/へぇ/ h e:/g;
    s/ほぉ/ h o:/g;
    s/ばぁ/ b a:/g;
    s/びぃ/ b i:/g;
    s/ぶぅ/ b u:/g;
    s/ふゃ/ hy a/g;
    s/ぶゅ/ by u/g;
    s/ふょ/ hy o/g;
    s/べぇ/ b e:/g;
    s/ぼぉ/ b o:/g;
    s/ぱぁ/ p a:/g;
    s/ぴぃ/ p i:/g;
    s/ぷぅ/ p u:/g;
    s/ぷゃ/ py a/g;
    s/ぷゅ/ py u/g;
    s/ぷょ/ py o/g;
    s/ぺぇ/ p e:/g;
    s/ぽぉ/ p o:/g;
    s/まぁ/ m a:/g;
    s/みぃ/ m i:/g;
    s/むぅ/ m u:/g;
    s/むゃ/ my a/g;
    s/むゅ/ my u/g;
    s/むょ/ my o/g;
    s/めぇ/ m e:/g;
    s/もぉ/ m o:/g;
    s/やぁ/ y a:/g;
    s/ゆぅ/ y u:/g;
    s/ゆゃ/ y a:/g;
    s/ゆゅ/ y u:/g;
    s/ゆょ/ y o:/g;
    s/よぉ/ y o:/g;
    s/らぁ/ r a:/g;
    s/りぃ/ r i:/g;
    s/るぅ/ r u:/g;
    s/るゃ/ ry a/g;
    s/るゅ/ ry u/g;
    s/るょ/ ry o/g;
    s/れぇ/ r e:/g;
    s/ろぉ/ r o:/g;
    s/わぁ/ w a:/g;
    s/をぉ/ o:/g;
    
    s/う゛/ b u/g;
    s/でぃ/ d i/g;
    s/でぇ/ d e:/g;
    s/でゃ/ dy a/g;
    s/でゅ/ dy u/g;
    s/でょ/ dy o/g;
    s/てぃ/ t i/g;
    s/てぇ/ t e:/g;
    s/てゃ/ ty a/g;
    s/てゅ/ ty u/g;
    s/てょ/ ty o/g;
    s/すぃ/ s i/g;
    s/ずぁ/ z u a/g;
    s/ずぃ/ z i/g;
    s/ずぅ/ z u/g;
    s/ずゃ/ zy a/g;
    s/ずゅ/ zy u/g;
    s/ずょ/ zy o/g;
    s/ずぇ/ z e/g;
    s/ずぉ/ z o/g;
    s/きゃ/ ky a/g;
    s/きゅ/ ky u/g;
    s/きょ/ ky o/g;
    s/しゃ/ sh a/g;
    s/しゅ/ sh u/g;
    s/しぇ/ sh e/g;
    s/しょ/ sh o/g;
    s/ちゃ/ ch a/g;
    s/ちゅ/ ch u/g;
    s/ちぇ/ ch e/g;
    s/ちょ/ ch o/g;
    s/とぅ/ t u/g;
    s/とゃ/ ty a/g;
    s/とゅ/ ty u/g;
    s/とょ/ ty o/g;
    s/どぁ/ d o a/g;
    s/どぅ/ d u/g;
    s/どゃ/ dy a/g;
    s/どゅ/ dy u/g;
    s/どょ/ dy o/g;
    s/どぉ/ d o:/g;
    s/にゃ/ ny a/g;
    s/にゅ/ ny u/g;
    s/にょ/ ny o/g;
    s/ひゃ/ hy a/g;
    s/ひゅ/ hy u/g;
    s/ひょ/ hy o/g;
    s/みゃ/ my a/g;
    s/みゅ/ my u/g;
    s/みょ/ my o/g;
    s/りゃ/ ry a/g;
    s/りゅ/ ry u/g;
    s/りょ/ ry o/g;
    s/ぎゃ/ gy a/g;
    s/ぎゅ/ gy u/g;
    s/ぎょ/ gy o/g;
    s/ぢぇ/ j e/g;
    s/ぢゃ/ j a/g;
    s/ぢゅ/ j u/g;
    s/ぢょ/ j o/g;
    s/じぇ/ j e/g;
    s/じゃ/ j a/g;
    s/じゅ/ j u/g;
    s/じょ/ j o/g;
    s/びゃ/ by a/g;
    s/びゅ/ by u/g;
    s/びょ/ by o/g;
    s/ぴゃ/ py a/g;
    s/ぴゅ/ py u/g;
    s/ぴょ/ py o/g;
    s/うぁ/ u a/g;
    s/うぃ/ w i/g;
    s/うぇ/ w e/g;
    s/うぉ/ w o/g;
    s/ふぁ/ f a/g;
    s/ふぃ/ f i/g;
    s/ふぅ/ f u/g;
    s/ふゃ/ hy a/g;
    s/ふゅ/ hy u/g;
    s/ふょ/ hy o/g;
    s/ふぇ/ f e/g;
    s/ふぉ/ f o/g;

	# カタカナ
    s/ゥ゛/ b u/g;
    
    s/アァ/ a a/g;
    s/イィ/ i i/g;
    s/イェ/ i e/g;
    s/イャ/ y a/g;
    s/ウゥ/ u:/g;
    s/エェ/ e e/g;
    s/オォ/ o:/g;
    s/カァ/ k a:/g;
    s/キィ/ k i:/g;
    s/クゥ/ k u:/g;
    s/クャ/ ky a/g;
    s/クュ/ ky u/g;
    s/クョ/ ky o/g;
    s/ケェ/ k e:/g;
    s/コォ/ k o:/g;
    s/ガァ/ g a:/g;
    s/ギィ/ g i:/g;
    s/グゥ/ g u:/g;
    s/グャ/ gy a/g;
    s/グュ/ gy u/g;
    s/グョ/ gy o/g;
    s/ゲェ/ g e:/g;
    s/ゴォ/ g o:/g;
    s/サァ/ s a:/g;
    s/シィ/ sh i:/g;
    s/スゥ/ s u:/g;
    s/スャ/ sh a/g;
    s/スュ/ sh u/g;
    s/スョ/ sh o/g;
    s/セェ/ s e:/g;
    s/ソォ/ s o:/g;
    s/ザァ/ z a:/g;
    s/ジィ/ j i:/g;
    s/ズゥ/ z u:/g;
    s/ズャ/ zy a/g;
    s/ズュ/ zy u/g;
    s/ズョ/ zy o/g;
    s/ゼェ/ z e:/g;
    s/ゾォ/ z o:/g;
    s/タァ/ t a:/g;
    s/チィ/ ch i:/g;
    s/ツァ/ ts a/g;
    s/ツィ/ ts i/g;
    s/ツゥ/ ts u:/g;
    s/ツャ/ ch a/g;
    s/ツュ/ ch u/g;
    s/ツョ/ ch o/g;
    s/ツェ/ ts e/g;
    s/ツォ/ ts o/g;
    s/テェ/ t e:/g;
    s/トォ/ t o:/g;
    s/ダァ/ d a:/g;
    s/ヂィ/ j i:/g;
    s/ヅゥ/ d u:/g;
    s/ヅャ/ zy a/g;
    s/ヅュ/ zy u/g;
    s/ヅョ/ zy o/g;
    s/デェ/ d e:/g;
    s/ドォ/ d o:/g;
    s/ナァ/ n a:/g;
    s/ニィ/ n i:/g;
    s/ヌゥ/ n u:/g;
    s/ヌャ/ ny a/g;
    s/ヌュ/ ny u/g;
    s/ヌョ/ ny o/g;
    s/ネェ/ n e:/g;
    s/ノォ/ n o:/g;
    s/ハァ/ h a:/g;
    s/ヒィ/ h i:/g;
    s/フゥ/ f u:/g;
    s/フャ/ hy a/g;
    s/フュ/ hy u/g;
    s/フョ/ hy o/g;
    s/ヘェ/ h e:/g;
    s/ホォ/ h o:/g;
    s/バァ/ b a:/g;
    s/ビィ/ b i:/g;
    s/ブゥ/ b u:/g;
    s/フャ/ hy a/g;
    s/ブュ/ by u/g;
    s/フョ/ hy o/g;
    s/ベェ/ b e:/g;
    s/ボォ/ b o:/g;
    s/パァ/ p a:/g;
    s/ピィ/ p i:/g;
    s/プゥ/ p u:/g;
    s/プャ/ py a/g;
    s/プュ/ py u/g;
    s/プョ/ py o/g;
    s/ペェ/ p e:/g;
    s/ポォ/ p o:/g;
    s/マァ/ m a:/g;
    s/ミィ/ m i:/g;
    s/ムゥ/ m u:/g;
    s/ムャ/ my a/g;
    s/ムュ/ my u/g;
    s/ムョ/ my o/g;
    s/メェ/ m e:/g;
    s/モォ/ m o:/g;
    s/ヤァ/ y a:/g;
    s/ユゥ/ y u:/g;
    s/ユャ/ y a:/g;
    s/ユュ/ y u:/g;
    s/ユョ/ y o:/g;
    s/ヨォ/ y o:/g;
    s/ラァ/ r a:/g;
    s/リィ/ r i:/g;
    s/ルゥ/ r u:/g;
    s/ルャ/ ry a/g;
    s/ルュ/ ry u/g;
    s/ルョ/ ry o/g;
    s/レェ/ r e:/g;
    s/ロォ/ r o:/g;
    s/ワァ/ w a:/g;
    s/ヲォ/ o:/g;
    
    s/ウ゛/ b u/g;
    s/ディ/ d i/g;
    s/デェ/ d e:/g;
    s/デャ/ dy a/g;
    s/デュ/ dy u/g;
    s/デョ/ dy o/g;
    s/ティ/ t i/g;
    s/テェ/ t e:/g;
    s/テャ/ ty a/g;
    s/テュ/ ty u/g;
    s/テョ/ ty o/g;
    s/スィ/ s i/g;
    s/ズァ/ z u a/g;
    s/ズィ/ z i/g;
    s/ズゥ/ z u/g;
    s/ズャ/ zy a/g;
    s/ズュ/ zy u/g;
    s/ズョ/ zy o/g;
    s/ズェ/ z e/g;
    s/ズォ/ z o/g;
    s/キャ/ ky a/g;
    s/キュ/ ky u/g;
    s/キョ/ ky o/g;
    s/シャ/ sh a/g;
    s/シュ/ sh u/g;
    s/シェ/ sh e/g;
    s/ショ/ sh o/g;
    s/チャ/ ch a/g;
    s/チュ/ ch u/g;
    s/チェ/ ch e/g;
    s/チョ/ ch o/g;
    s/トゥ/ t u/g;
    s/トャ/ ty a/g;
    s/トュ/ ty u/g;
    s/トョ/ ty o/g;
    s/ドァ/ d o a/g;
    s/ドゥ/ d u/g;
    s/ドャ/ dy a/g;
    s/ドュ/ dy u/g;
    s/ドョ/ dy o/g;
    s/ドォ/ d o:/g;
    s/ニャ/ ny a/g;
    s/ニュ/ ny u/g;
    s/ニョ/ ny o/g;
    s/ヒャ/ hy a/g;
    s/ヒュ/ hy u/g;
    s/ヒョ/ hy o/g;
    s/ミャ/ my a/g;
    s/ミュ/ my u/g;
    s/ミョ/ my o/g;
    s/リャ/ ry a/g;
    s/リュ/ ry u/g;
    s/リョ/ ry o/g;
    s/ギャ/ gy a/g;
    s/ギュ/ gy u/g;
    s/ギョ/ gy o/g;
    s/ヂェ/ j e/g;
    s/ヂャ/ j a/g;
    s/ヂュ/ j u/g;
    s/ヂョ/ j o/g;
    s/ジェ/ j e/g;
    s/ジャ/ j a/g;
    s/ジュ/ j u/g;
    s/ジョ/ j o/g;
    s/ビャ/ by a/g;
    s/ビュ/ by u/g;
    s/ビョ/ by o/g;
    s/ピャ/ py a/g;
    s/ピュ/ py u/g;
    s/ピョ/ py o/g;
    s/ウァ/ u a/g;
    s/ウィ/ w i/g;
    s/ウェ/ w e/g;
    s/ウォ/ w o/g;
    s/ファ/ f a/g;
    s/フィ/ f i/g;
    s/フゥ/ f u/g;
    s/フャ/ hy a/g;
    s/フュ/ hy u/g;
    s/フョ/ hy o/g;
    s/フェ/ f e/g;
    s/フォ/ f o/g;
    
    
# 1音からなる変換規則
    s/あ/ a/g;
    s/い/ i/g;
    s/う/ u/g;
    s/え/ e/g;
    s/お/ o/g;
    s/か/ k a/g;
    s/き/ k i/g;
    s/く/ k u/g;
    s/け/ k e/g;
    s/こ/ k o/g;
    s/さ/ s a/g;
    s/し/ sh i/g;
    s/す/ s u/g;
    s/せ/ s e/g;
    s/そ/ s o/g;
    s/た/ t a/g;
    s/ち/ ch i/g;
    s/つ/ ts u/g;
    s/て/ t e/g;
    s/と/ t o/g;
    s/な/ n a/g;
    s/に/ n i/g;
    s/ぬ/ n u/g;
    s/ね/ n e/g;
    s/の/ n o/g;
    s/は/ h a/g;
    s/ひ/ h i/g;
    s/ふ/ f u/g;
    s/へ/ h e/g;
    s/ほ/ h o/g;
    s/ま/ m a/g;
    s/み/ m i/g;
    s/む/ m u/g;
    s/め/ m e/g;
    s/も/ m o/g;
    s/ら/ r a/g;
    s/り/ r i/g;
    s/る/ r u/g;
    s/れ/ r e/g;
    s/ろ/ r o/g;
    s/が/ g a/g;
    s/ぎ/ g i/g;
    s/ぐ/ g u/g;
    s/げ/ g e/g;
    s/ご/ g o/g;
    s/ざ/ z a/g;
    s/じ/ j i/g;
    s/ず/ z u/g;
    s/ぜ/ z e/g;
    s/ぞ/ z o/g;
    s/だ/ d a/g;
    s/ぢ/ j i/g;
    s/づ/ z u/g;
    s/で/ d e/g;
    s/ど/ d o/g;
    s/ば/ b a/g;
    s/び/ b i/g;
    s/ぶ/ b u/g;
    s/べ/ b e/g;
    s/ぼ/ b o/g;
    s/ぱ/ p a/g;
    s/ぴ/ p i/g;
    s/ぷ/ p u/g;
    s/ぺ/ p e/g;
    s/ぽ/ p o/g;
    s/や/ y a/g;
    s/ゆ/ y u/g;
    s/よ/ y o/g;
    s/わ/ w a/g;
    s/ゐ/ i/g;
    s/ゑ/ e/g;
    s/ん/ N/g;
    s/っ/ q/g;
    s/ー/:/g;
    
    #カタカナ
    s/ア/ a/g;
    s/イ/ i/g;
    s/ウ/ u/g;
    s/エ/ e/g;
    s/オ/ o/g;
    s/カ/ k a/g;
    s/キ/ k i/g;
    s/ク/ k u/g;
    s/ケ/ k e/g;
    s/コ/ k o/g;
    s/サ/ s a/g;
    s/シ/ sh i/g;
    s/ス/ s u/g;
    s/セ/ s e/g;
    s/ソ/ s o/g;
    s/タ/ t a/g;
    s/チ/ ch i/g;
    s/ツ/ ts u/g;
    s/テ/ t e/g;
    s/ト/ t o/g;
    s/ナ/ n a/g;
    s/ニ/ n i/g;
    s/ヌ/ n u/g;
    s/ネ/ n e/g;
    s/ノ/ n o/g;
    s/ハ/ h a/g;
    s/ヒ/ h i/g;
    s/フ/ f u/g;
    s/ヘ/ h e/g;
    s/ホ/ h o/g;
    s/マ/ m a/g;
    s/ミ/ m i/g;
    s/ム/ m u/g;
    s/メ/ m e/g;
    s/モ/ m o/g;
    s/ラ/ r a/g;
    s/リ/ r i/g;
    s/ル/ r u/g;
    s/レ/ r e/g;
    s/ロ/ r o/g;
    s/ガ/ g a/g;
    s/ギ/ g i/g;
    s/グ/ g u/g;
    s/ゲ/ g e/g;
    s/ゴ/ g o/g;
    s/ザ/ z a/g;
    s/ジ/ j i/g;
    s/ズ/ z u/g;
    s/ゼ/ z e/g;
    s/ゾ/ z o/g;
    s/ダ/ d a/g;
    s/ヂ/ j i/g;
    s/ヅ/ z u/g;
    s/デ/ d e/g;
    s/ド/ d o/g;
    s/バ/ b a/g;
    s/ビ/ b i/g;
    s/ブ/ b u/g;
    s/ベ/ b e/g;
    s/ボ/ b o/g;
    s/パ/ p a/g;
    s/ピ/ p i/g;
    s/プ/ p u/g;
    s/ペ/ p e/g;
    s/ポ/ p o/g;
    s/ヤ/ y a/g;
    s/ユ/ y u/g;
    s/ヨ/ y o/g;
    s/ワ/ w a/g;
    s/ヰ/ i/g;
    s/ヱ/ e/g;
    s/ン/ N/g;
    s/ッ/ q/g;
    s/ー/:/g;
    
# ここまでに処理されてない ぁぃぅぇぉ はそのまま大文字扱い
    s/ぁ/ a/g;
    s/ぃ/ i/g;
    s/ぅ/ u/g;
    s/ぇ/ e/g;
    s/ぉ/ o/g;
    s/ゎ/ w a/g;
    s/ぉ/ o/g;
    
    #カタカナ
    s/ァ/ a/g;
    s/ィ/ i/g;
    s/ゥ/ u/g;
    s/ェ/ e/g;
    s/ォ/ o/g;
    s/ヮ/ w a/g;
    s/ォ/ o/g;

# その他特別なルール
    s/を/ o/g;
    s/ヲ/ o/g;

# 最初の空白を削る
    s/^ ([a-z])/$1/g;

# 変換の結果長音記号が続くことがまれにあるので一つにまとめる
    s/:+/:/g;
    
    #出力する
	print @tmp_array[0], "\t", "[",@tmp_array[0],"]\t", $_, "\n";

}

