thomas0104 commited on
Commit
f958a0b
·
1 Parent(s): 2d48e2b

upload training code

Browse files
Files changed (6) hide show
  1. ji_char&rome.py +37 -0
  2. label.txt +1 -0
  3. pred.txt +1 -0
  4. run.sh +34 -0
  5. run_speech_recognition_seq2seq_streaming.py +616 -0
  6. ryNormText.py +81 -0
ji_char&rome.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import re
2
+ import jiwer
3
+ p = open('label.txt',encoding="utf-8")
4
+ label = p.readline().split('=')[1]
5
+ label = eval(label)
6
+ label_ch = []
7
+ label_rm = []
8
+
9
+ for i in range(len(label)):
10
+ q = re.search('[^A-z]+\s+', str(label[i])).span()
11
+ label_ch.append(label[i][:q[1]])
12
+ label_rm.append(label[i][q[1]:])
13
+
14
+
15
+ p = open('pred.txt','r',encoding="utf-8")
16
+
17
+ pred = p.readline().split('=')[1]
18
+ pred = eval(pred)
19
+ pred_ch = []
20
+ pred_rm = []
21
+
22
+ for i in range(len(pred)):
23
+ q = re.search('[^A-z]+\s+', str(pred[i])).span()
24
+ pred_ch.append(pred[i][:q[1]])
25
+ pred_rm.append(pred[i][q[1]:])
26
+
27
+
28
+ for i in range(len(label_rm)):
29
+ if len(label_rm[i]) == 0:
30
+ print(i)
31
+ label_rm[i] = 'a'
32
+
33
+ wer_ch = jiwer.wer(label_ch, pred_ch)
34
+ print(f'{wer_ch=}')
35
+
36
+ wer_rm = jiwer.wer(label_rm, pred_rm)
37
+ print(f'{wer_rm=}')
label.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ label_str=['心 理 性 別 sim li sing piat', '火 燒 尻 川 hue sio kha tshng', '草 仔 色 tshau a sik', '十 三 行 tsap sann hang', '水 里 鄉 chui li hiong', '這 搭 有 一 个 大 商 場 tsit tah u tsit e tua siong tiunn', '聯 合 國 lian hap kok', '菜 頭 籠 仔 tshai thau long a', '辣 椒 luah tsio', '肉 筋 bah kin kun kirn', '新 興 區 sin hing khu', '癩 疒 哥 病 thai ko penn', '覕 冬 bih tang', '摧 仔 tshue a', '西 藥 房 se ioh pang', '心 碎 sim tshui', '燒 包 仔 sio pau a', '通 敨 thong thau', '皇 軍 hong kun', '濁 水 溪 出 代 誌 lo tsui khe tshut tai tsi', '粗 細 tshoo se', '哀 哼 ai hainn', '九 年 一 貫 kau ni it kuan', '精 靈 tsing ling', '三 寶 sann po', '速 速 sok sok', '坐 疶 咧 等 tse tshuah leh tan', '儑 目 袂 曉 看 懸 低 gam bak be hiau khuann kuan ke', '圳 後 tsun au', '兩 个 人 已 經 講 和 矣 nng e lang i king kong ho ah', '足 媠 tsiok sui', '細 空 喙 se khang tshui', '掠 著 根 頭 liah tioh kin thau', '茨 城 縣 tsu sing kuan', '概 率 kai lut khai lut', '草 人 坑 tshau lang khenn chhau lang khen', '祝 你 生 日 快 樂 tsiok li senn jit khuai lok', '坑 崁 khenn kham', '出 水 tshut tsui', '咇 怦 喘 phih phenn tshuan', '夯 枷 gia ke', '外 勞 gua lo', '臺 灣 人 tai uan lang', '落 湳 loh lam', '苑 裡 坑 uan li khenn', '坑 仔 內 khinn a lai khin a lai', '起 慼 到 地 khi tsheh kau te', '雨 晴 hoo tsinn hoo tsenn', '紅 蟲 ang thang', '大 湖 tua oo', '誻 誻 叫 ta ta kio', '柴 球 tsha kiu', '大 胃 王 tua ui ong', '大 稻 埕 tua tiu tiann', '偷 壘 thau lui', '鬆 餅 sang piann', '喙 罨 囊 tshui am long', '龍 文 liong bun', '時 局 si kiok', '摔 死 siak si', '煞 尾 suah bue', '無 話 講 茭 荖 bo ue kong ka lo', '下 暗 飯 e am png', '一 籠 tsit lang', '一 定 考 袂 牢 it ting kho be tiau', '看 一 个 影 生 一 个 囝 khuann tsit e iann senn tsit e kiann', '倒 踅 to seh', '筆 型 pit hing', '歸 正 修 善 kui tsing siu sian', '滯 到 tu tau', '變 天 pian thinn', '一 工 到 暗 tsit kang kau am', '雲 吞 hun thun', '有 幾 項 菜 u kui hang tshai', '炎 舞 iam bu', '鹿 角 龜 lok kak ku', '過 路 線 kue loo suann ke loo suann', '惡 馬 惡 人 騎 ok be ok lang khia', '粗 俗 tshoo siok', '這 个 偌 濟 錢 tsit e gua tse tsinn', '七 仔 tshit a', '看 甲 凊 凊 楚 楚 khuann kah tshing tshing tsho tsho', '戇 神 gong sin', '發 生 huat senn huat sinn', '病 囡 仔 penn gin a', '心 花 當 開 sim hue tong khui', '番 鼎 仔 huan tiann a', '老 硞 硞 lau khok khok', '大 傢 伙 tua ke hue', '名 聲 真 敨 mia siann tsin thau', '攕 烘 肉 tshiam hang bah', '滑 kut', '龜 蛇 ku tsua', '水 雞 皮 仔 tsui ke phue a', '攑 硬 篙 giah nge ko', '抾 無 三 門 墓 著 想 欲 做 土 公 khioh bo sannbun bong tioh siunn beh tso thoo kong', '紅 圓 仔 ang inn a', '臺 北 橋 tai pak kio', '雲 林 縣 hun lim kuan', '臺 中 港 tai tiong kang', '水 里 tsui li', '臺 南 市 tai lam tshi tai lam chhi', '七 堵 chhit to', '做 功 德 tso kong tik', '大 村 鄉 tai tshuan hiong', '小 喇 叭 sio lat pah', '紹 siau', '漢 草 真 好 han tshau tsin ho', '田 嬰 tshan inn', '按 呢 生 an ne sinn', '海 尾 hai be', '無 米 閣 拄 著 閏 月 bo bi koh tu tioh lun gueh bo bi koh tu tioh lun geh', '枝 香 小 細 ki hiunn sio se', '噗 phok', '頭 尾 thau bue', '五 短 生 張 ngoo te senn tiunn ngoo tuan sinn tiunn', '正 常 tsing siong', '套 牢 咧 tho tiau leh', '動 物 性 膠 質 tong but sing ka tsit', '雪 文 精 sap bun tsing', '悠 遊 卡 iu iu khah', '你 攏 無 歇 睏 喔 li long bo hioh khun ooh', '埤 頭 鄉 pi thau hiong', '信 義 大 安 路 口 sin gi tai an loo khau', '三 三 八 八 sam sam pat pat', '你 話 毋 通 烏 白 講 li ue m thang oo peh kong', '麥 寮 鄉 beh liau hiong', '你 莫 定 定 挖 肚 臍 li mai tiann tiann oo too tsai', '新 安 路 sin an lo', '金 錢 毋 是 萬 能 的 kim tsinn m si ban ling e', '菠 菱 仔 菜 pue ling a tshai', '富 寮 里 hu liau li', '你 是 啥 人 li si siang li si siann lang', '反 烏 huan oo', '新 街 sin ke', '合 銅 hap tang', '疼 疼 thiann thiann', '番 麥 殼 huan beh khak', '天 氣 冷 矣 你 就 愛 加 疊 一 領 衫 thinn khi ling ah li to ai ke thah tsit nia sann', '我 到 底 看 著 啥 物 gua tau te khuann tioh siann mih', '手 扞 仔 tshiu huann a', '姑 不 二 三 將 koo put ji sann tsiong', '品 格 phin keh', '透 種 仔 thau tsing a', '漚 腳 數 au kioh siau', '隔 音 壁 keh im piah', '拍 通 透 phah thong thau', '開 花 滿 天 芳 結 子 才 驚 人 khui hue mua thinn phang kiat tsi tsiah kiann lang', '東 北 季 風 tang pak kui hong', '無 人 機 bu jin ki', '做 牛 無 惜 力 tso gu bo sioh lat', '淨 空 排 放 tsing khong pai hong', '這 藥 仔 抹 落 去 真 緊 就 會 退 癀 矣 tse ioh a buah loh khi tsin kin to e the hong ah', '毛 蓑 仔 mng sui a', '抉 喙 䫌 kuat tshui phue kuat tshui phe', '陽 明 山 iong bing suan', '咖 啡 館 ka pi kuan', '囡 仔 色 gin a sik', '佇 墜 樓 前 一 點 鐘 ti tui lau tsing chit tiam tsing', '伊 規 心 欲 考 大 學 i kui sim beh kho tai hak', '東 湖 國 中 tang oo kok tiong tang 0 kok tiong', '中 原 公 園 tiong kong hng tiong goan kong hng', '半 路 店 puann loo tiam', '檳 榔 坑 pin nng khinn pin nng khin', '東 石 鄉 tang tsioh hiong', '摒 掃 的 piann sau e', '無 中 心 化 bo tiong sim hua', '肉 粽 角 bah tsang kak', '編 譯 器 pian ik khi', '厝 邊 頭 尾 tshu pinn thau bue', '桃 源 街 tho guan kue', '仁 愛 杭 州 路 口 jin ai hang tsiu loo khau', '千 葉 tshian iap', '七 色 圖 tshit sik too', '大 吉 大 利 tai kiat tai li', '尪 仔 頭 鏡 ang a thau kiann', '徐 tshi', '咱 做 代 誌 的 時 陣 lan tso tai tsi e si tsun', '包 水 餃 pau tshui kiau pau tsui kiau', '歹 鳥 毋 知 飛 歹 柴 破 袂 開 phainn tsiau m tsai pue phainn tsha phua be khui', '分 裝 場 hun tsong tiunn hun chong tiun', '健 康 中 心 kian khong tiong sim', '印 度 尼 西 亞 in too ni se a', '新 里 族 sin li tsok', '獅 仔 頭 sai a thau', '大 度 路 tua too loo', '市 仔 tshi a', '露 營 區 loo iann khu', '學 姐 hak tsi', '枋 南 線 pang lam suann', '虎 尾 鎮 ho boe tin', '瀉 腹 肚 sia pak too', '恆 春 鎮 heng chhun tin', '小 血 球 sio hueh kiu', '破 格 phua keh', '我 衫 攏 穿 上 大 領 gua sann long tshing siong tua nia', '溜 落 來 liu loh lai', '半 條 命 puann tiau mia', '生 活 習 慣 sing uah sip kuan', '電 影 間 tian iann king', '菜 脯 卵 tshai poo nng', '塗 塗 塗 thoo thoo thoo', '鐵 甲 牛 thih kah gu', '風 火 頭 hong hue thau hong he thau', '現 流 仔 hian lau a', '白 了 工 peh liau kang', '空 港 khong kang', '較 大 khah toa', '公 正 橋 kong cheng kio', '巴 結 pa kiat', '果 汁 ker tsap ke tsiap kue tsiap', '有 䆀 無 一 好 u bai bo tsit ho', '這 時 tsit si', '竹 北 tik pak', '下 早 e tsa e tsai', '較 早 睏 khah tsa khun', '六 六 大 順 liok liok tai sun', '公 視 kong si', '趕 趕 緊 緊 kuann kuann kin kin', '帕 仔 phe a', '藍 瘦 香 菇 na san hiunn koo', '山 貓 suann niau', '大 頭 狗 母 tua thau kau bo', '土 板 仁 豆 thoo pan jin tau', '咧 teh leh', '內 緣 lai ian', '阮 會 曉 唸 guan gun e hiau liam', '茶 末 te buah te buat', '真 有 喙 水 tsin u tshui sui', '魔 導 士 moo to su', '先 承 認 你 就 是 恁 朋 友 sing sing jin li to si lin ping iu', '青 山 王 tshing suann ong', '奧 克 蘭 0 khik lan', '金 東 kim tang', '便 若 pian na', '陳 奕 齊 tan ik tse', '九 尾 金 kau bue kim', '貓 空 niau khang niau khang', '過 tang跤 kue tang kha', '頭 汴 坑 溪 thau pan khenn khe', '無 定 著 bo tiann tioh', '控 機 仔 khong ki a', '趨 湧 tshu ing', '中 洲 tiong tsiu tiong chiu', '青 田 街 tshing tian kue', '同 房 tang pang tong pang', '鼢 底 的 bun te e', '多 元 性 別 to guan sing piat', '舊 厝 ku tshu', '貓 潲 niau siau', '福 連 國 小 hok lian kok sio', '點 撇 tiam phuat', '玜 玳 kong tai', '欲 起 鼓 矣 beh khi koo ah', '納 豆 lap tau', '中 環 tiong huan tiong khuan', '你 死 我 活 li si gua uah', '踏 著 歹 地 步 tah tioh phainn te poo', '曲 去 khiau khi', '怙 喙 講 个 無 準 算 koo tshui kong e bo tsun sng', '交 力 坪 ka lat penn ka lat pen', '愈 來 愈 嚴 重 ju lai ju giam tiong lu lai lu giam tiong', '一 个 一 个 tsit e tsit e', '淡 江 大 橋 tam kang tua kio tam kang toa kio', '上 大 代 死 煞 siang tua tai si suah', '檨 仔 葉 公 suainn a hioh kong', '胳 胴 跤 kueh tang kha kueh lang kha', '郁 永 河 hiok ing ho', '講 啥 物 芋 仔 番 薯 kong siann mih oo a han tsi', '霓 ge', '青 盲 雞 啄 著 蟲 tshenn me ke tok tioh thang tshinn mi kue tok tioh thang', '搣 屎 毋 知 臭 me sai m tsai tshau', '斗 南 tau lam', '孤 笑 無 嗣 koo khut tshio bo su', '水 鬼 仔 tsui kui a', '門 將 mng tsiong', '手 控 tshiu khong', '心 胞 膜 炎 sim pau mooh iam', '敢 食 汽 油 kann tsiah khi iu', '阿 卜 蛇 a poh tsua', '機 動 戰 士 ki tong tsian su', '便 當 pian tong', '敧 一 爿 khi tsit ping', '敲 仙 古 kha sian koo', '所 羅 門 群 島 soo lo bun kun to', '終 界 tsiong kai', '我 愛 台 語 gua ai tai gi', '溝 頂 kau ting', '墊 定 tiam tiann', '詳 解 siong kai', '火 燒 hue sio', '絡 繹 不 絕 lok ik put tsuat', '尻 川 門 kha tshng mng kha tshuinn mui', '甌 仔 疊 碟 仔 au a thiap tih a', '黃 巾 甕 仔 hong kin ang a', '汕 suann', '生 甲 袂 䆀 senn kah be bai', '狗 母 酥 kau bo so', '倚 桌 仔 ua toh a', '中 央 大 學 tiong iong tai hak', '石 門 水 庫 tsioh mng tsui khoo', '亂 使 想 luan su siunn', '百 貨 店 pah hue tiam', '酸 素 矸 sng soo kan', '蛤 kai kap kai', '洗 衫 仔 枋 se sann a pang', '天 台 thian tai', '數 位 pay soo ui phe', '漚 缺 au khueh', '鈍 市 貨 tun tshi hue tun tshi he', '偷 走 壘 thau tsau lui', '夭 壽 鬼 iau siu kui', '好 所 在 ho soo tsai', '軟 市 nng tshi', '徹 理 thiat li', '現 挽 hian ban', '叫 電 話 kio tian ue', '伊 生 做 遮 爾 臭 老 i senn tso tsiah ni tshau lau', '魔 神 仔 咒 讖 moo sin a tsiu tsham', '一 點 點 仔 tsit tiam tiam a', '兩 光 liong kong', '契 查 某 囝 khe tsa boo kiann khue tsa boo kiann', '提 著 theh tioh', '傷 心 酒 店 siong sim tsiu tiam', '過 失 致 死 kue sit ti si', '較 拚 咧 kah piann leh', '透 身 大 汗 thau sin tua kuann', '碌 硞 馬 仔 lok khok be a', '兄 弟 姊 妹 著 愛 仝 心 hiann ti tsi mue tioh ai kang sim', '家 伙 仔 ke hue a', '垃 圾 物 仔 lap sap mih a lah sap mih a', '狐 狸 貂 hoo li tiau', '石 斑 tsioh pan', '虎 魚 hoo hi', '落 雨 了 後 塗 跤 變 甲 澹 漉 漉 loh hoo liau au thoo kha pian kah tam lok lok', '較 慘 khah tsham', '基 隆 市 ke lang tshi ke lang chhi', '你 欲 行 對 佗 位 去 li beh kiann tui to ui khi', '敦 化 和 平 路 口 tun hua ho ping loo khau tun hoa ho peng lo khau', '港 仔 喙 kang a tshui', '阮 囝 今 年 二 十 出 頭 矣 guan kiann kin ni ji tsap tshut thau ah', '新 港 飴 sin kang i', '哀 父 叫 母 ai pe kio bu', '一 份 tsit hun', '毛 毛 仔 雨 mui mui a hoo', '磐 安 poan an', '牛 籠 gu long', '袂 看 得 be khuann tit', '立 功 立 德 lip kong lip tik', '龜 山 島 ku suann to', '過 晝 kue tau', '捒 做 堆 sak tso tui', '梅 仔 跤 mui a kha', '包 帶 pau tua', '番 地 huan te', '三 重 sam ting sam tiong', '林 子 口 na a kau', '筆 電 pit tian', '操 刀 tsho to', '揣 轉 來 tshue tng lai', '指 中 指 ki tiong tsainn', '珠 仔 台 tsu a tai', '新 廍 sin phoo sin pho', '相 帶 sio tua', '頂 塊 廖 ting te liau teng te liau', '竹 南 tik lam', '你 共 包 仔 提 去 熁 燒 一 下 li ka pau a theh khi hannh sio tsit e', '平 方 根 ping hong kin ping hong kun', '頂 公 館 ting kong kuan', '散 仙 suann sian', '演 藝 界 ian ge kai', '繪 本 hue pun', '毋 情 毋 願 m tsing m guan', '較 緊 khah kin', '有 也 好 無 也 好 u ia ho bo ia ho', '操 心 tshau sim', '摃 槌 仔 龍 kong thui a liong', '怪 奇 古 kuai ki koo', '國 破 家 亡 kok pho ka bong', '新 羅 sin lo', '貴 氣 kui khi', '沓 沓 仔 ta ta a', '拍 薄 phah poh', '物 件 若 予 伊 提 過 手 mih kiann na hoo i theh kue tshiu', '輾 仔 鞋 lian a e', '異 界 i kai', '鼠 尾 風 tshi bue hong', '湖 內 oo lai', '提 走 theh tsau', '無 打 無 啥 bo ta bo sann', '我 欲 準 備 落 山 矣 gua beh tsun pi loh suann ah', '盜 用 to iong', '聽 無 thiann bo', '彼 个 頭 家 娘 對 人 客 誠 好 禮 hit e thau ke niu tui lang kheh tsiann ho le', '大 細 輦 tua se lian', '無 歇 bo hioh', '無 疑 悟 你 會 出 國 讀 冊 bo gi ngoo li e tshut kok thak tsheh', '石 園 tsioh hng', '嘉 義 ka gi', '後 寮 au liau', '我 攏 有 看 著 gua long u khuann tioh', '劍 南 路 kiam lam loo kiam lam lo', '歹 天 phai thinn phainn thinn', '三 跤 步 一 坎 店 sann kha poo tsit kham tiam', '臘 肉 lah bah', '舊 里 族 ku li tsok', '下 晡 點 心 e poo tiam sim', '冷 管 ling kuan', '無 及 格 bo kip keh', '公 允 kong un kong in', '十 喙 九 尻 川 tsap tshui kau kha tshng', '投 影 片 tau iann phinn', '納 錢 lap tsinn', '墓 坑 鳥 bong khenn tsiau', '活 餌 桶 仔 uah ji thang a', '激 屎 面 kik sai bin', '袂 對 同 be tui tang bue tui tang', '紡 織 機 phang tsit ki', '木 質 部 bok tsit poo', '落 口 講 出 來 lau khau kong tshut lai', '投 丁 tau ting', '棚 頂 做 甲 流 汗 棚 跤 嫌 甲 流 瀾 ', '僫 鬥 陣 0 tau tin', '拍 死 板 phah si pan', '捅 鼻 thong phinn', '搭 峇 tah ba', '簡 述 kan sut', '一 个 接 一 个 tsit e tsiap tsit e', '緊 來 旋 kin lai suan', '閒 仔 話 ing a ue', '拍 爽 phah song', '德 拉 瓦 tik la ua', '總 舖 tsong phoo', '三 日 不 見 久 溜 溜 sann jit put kian kiu liu liu', '合 掛 kah kua', '手 神 重 tshiu sin tang', '電 子 tian tsi', '暗 空 am khang', '瘦 食 san tsiah', '塑 膠 車 sok ka tshia', '要 意 iau i', '燒 雞 胿 sio ke kui', '吊 猴 tiau kau', '掠 猴 liah kau', '暗 頭 仔 am thau a', '濟 囝 濟 擘 腹 濟 新 婦 濟 體 剔 tse kiann tse peh pak tse sin pu tse the thak', '交 球 kau kiu', '無 拄 好 bo tu ho', '搶 頭 標 tshiunn thau pio', '金 環 失 日 kim khuan sit jit', '觀 音 大 士 kuan im tai su', '在 準 tsai tsun', '欲 暗 矣 beh am ah', '嘔 落 au lau', '蛣 蛚 kiat le', '一 目 仔 tsit bak nih a', '提 款 片 the khuan phinn', '無 你 个 代 bo li e tai', '天 公 祖 thinn kong tsoo', '串 講 tshuan kong', '離 題 li tue li te', '馬 鈴 薯 條 ma ling tsi tiau', '做 塗 水 的 tso thoo tsui e', '人 情 味 jin tsing bi', '劉 銘 傳 lau bing thuan', '肝 包 油 kuann pau iu', '糖 醋 thng tshoo', '二 戰 ji tsian', '拍 鐵 師 phah thih sai', '慢 一 跤 步 ban tsit kha poo', '提 批 的 theh phe e', '下 禮 拜 e le pai', '死 亡 之 握 si bong tsi ak', '你 毋 通 囥 佇 心 肝 內 li m thang khng ti sim kuann lai', '臭 龜 仔 tshau ku a', '趁 一 空 食 三 冬 than tsit khang tsiah sann tang', '我 欲 學 臺 語 gua beh 0 tai gi', '埋 tai', '馬 卡 道 ma ka tau', '箍 喙 罨 khoo tshui am', '貴 州 省 kui tsiu sing', '敦 化 北 路 tun hua pak loo tun hoa pak lo', '你 看 起 來 是 遮 爾 仔 媠 li khuann khi lai si tsiah ni a sui', '精 个 食 戇 戇 个 食 天 公 tsing e ttsiah gong gong e tsiah thinn kong', '轉 去 tng khi tuinn khi', '下 晡 市 e poo tshi', '幾 个 kui e', '邦 長 pang tiunn', '港 墘 kang kinn kang kin', '字 條 仔 ji tiau a li tiau a', '無 去 矣 bo khi ah', '言 行 錄 gian hing liok', '買 空 be khang', '六 點 lak tiam', '死 忠 si tiong', '石 母 奶 tsioh bo ling', '耳 仔 機 hinn a ki', '貢 寮 區 kong liau khu', '含 血 噴 天 kam hueh phun thinn kam huih phun thinn', '大 好 額 人 tua ho giah lang', '行 政 院 hing tsing inn', '食 市 tsiah tshi', '九 塊 厝 kau te tshu', '冷 清 ling tshing', '月 光 gueh kuinn', '種 喙 齒 tsing tshui khi', '街 友 ke iu kue iu', '天 公 星 thinn kong tshenn thinn kong tshinn', '縣 kuan', '愛 臺 語 ai tai gi', '我 強 欲 袂 赴 矣 gua kiong beh be hu ah', '添 飯 thinn png', '有 連 線 u lian suann', '昶 tshiong', '中 國 話 tiong kok ue', '攑 香 綴 拜 giah hiunn tue pai giah hiunn te pai', '四 跤 草 si kha tshau', '疼 風 thiann hong', '觀 覽 kuan lam', '吉 祥 卵 kiat siong nng', '擲 掉 tan tiau', '打 狗 山 ta kau suann ta kau san tann kau suann tann kau san', '西 瓜 倚 大 爿 si kue ua tua ping', '有 這 款 的 代 誌 我 攏 毋 知 u tsit khuan e tai tsi gua long m tsai', '磨 豆 仔 機 bua tau a ki', '國 姓 爺 kok sing ia', '林 口 區 na khau khu', '潘 phuann phun', '可 算 名 詞 kho suan bing su kho suan mia su', '代 誌 大 碗 tai tsi tua uann', '半 信 半 疑 puann sin puann gi', '恬 稚 恬 稚 討 客 兄 唯 是 tiam ti tiam ti tho kheh hiann bi si', '遛 光 光 liu kng kng', '扲 糖 無 洗 手 的 朋 友 gim thng bo se tshiu e ping iu', '烏 日 oo jit 0 jit', '魏 風 gui hong', '膵 臟 tsui tsong', '犯 險 huan hiam', '連 半 个 人 影 嘛 無 lian puann e lang iann ma bo', '吊 褲 tiau khoo', '塗 水 工 thoo tsui kang', '霧 嗄 嗄 bu sa sa', '飛 行 船 hui hing tsun', '欲 完 矣 beh uan ah', '運 將 un tsiang', '恁 老 母 拄 咧 念 你 lin lau bu tu teh liam li', '伊 有 誠 濟 內 孫 i u tsiann tse lai sun', '港 仔 喙 國 小 kang a tshui kok sio kang a chui kok sio', '橐 個 束 個 lok ko sok ko', '落 尾 loh bue loo bue', '平 枋 電 腦 penn pang tian nau', '毛 毛 仔 雨 落 久 塗 塗 嘛 會 澹 mng mng a hoo loh ku thoo ma e tam', '冷 滾 水 ling kun tsui', '一 个 紅 龜 按 一 个 位 tsit e ang ku an tsit e ui', '鹹 酥 雞 kiam soo ke', '雞 卵 糕 仔 ke nng ko a kue nng ko a', '溼 汗 sip kuann', '諸 島 tsu to', '聖 誕 老 阿 公 sing tan lau a kong', '天 頂 白 茫 茫 thinn ting peh bong bong', '飯 煎 png tsian', '男 權 lam koan', '毋 認 輸 m jin su', '餘 溫 i un u un', '包 山 包 海 pau suann pau hai', '踮 空 龜 tiam khang ku', '洗 衫 精 se sann tsing', '迒 境 電 商 hann king tian siong', '開 喙 蚶 粒 粒 臭 khui tshui ham liap liap tshau', '焦 水 期 ta tsui ki', '老 龜 精 lau ku tsiann', '塑 膠 橐 仔 sok ka lok a', '蘇 維 埃 聯 盟 soo ui ia lian bing', '臭 水 tshau tsui', '束 頷 頸 仔 sok am kun a', '飛 行 機 hui hing ki', '平 溪 ping khue', '唯 恐 天 下 不 亂 ui khiong thian ha put luan', '錢 票 tsinn phio', '瓜 仔 鬚 kue a tshiu', '羊 角 三 劍 iunn kak sam kiam', '半 腰 puann io', '辭 彙 su lui', '衝 湧 tshiong ing', '敢 有 問 題 kann u bun te', '食 涼 tsiah liang', '畫 蛇 添 足 ua sia thiam tsiok ue tsua thiam tsiok', '做 塗 水 tso thoo tsui', '怪 奇 kuai ki', '板 金 pan kim', '交 關 kau kuan', '海 牙 hai ga', '中 山 路 tiong san loo', '番 仔 狗 huan a kau', '粉 圓 仔 hun inn a', '龜 龜 毛 毛 ku ku moo moo', '毋 捌 字 看 告 示 m bat ji khuann ko si', '表 單 piau tuann pio tuann', '莒 光 號 ki kong ho', '海 豬 仔 hai ti tu a', '猴 頭 果 kau thau ko', '翕 新 娘 相 hip sin niu siong', '面 書 bin tsu bin tsir', '茶 葉 蛋 te hioh nng', '花 枝 招 展 hua tsi tsiau tian', '食 人 一 口 還 人 一 斗 tsiah lang tsit khau hing lang tsit tau', '鐵 彈 thih tuann', '東 白 仔 tang peh a', '年 兜 ni tau', '佛 心 投 資 者 put sim tau tsu tsia', '人 講 綴 人 講 lang kong tue lang kong', '金 剛 戰 士 kim kong tsian su', '做 肉 餅 tso bah piann tsue bah piann', '相 駁 喙 sio poh tshui', '鸚 哥 魚 ing ko hi', '扁 桃 泉 pinn tho tsuann', '一 筆 錢 tsit pit tsinn', '果 菜 ko tshai', '柑 仔 蜜 醬 kam a bit tsiunn', '一 枝 草 一 點 露 tsit ki tshau tsit tiam loo', '早 時 tsa si', '大 頭 母 人 tua thau bu lang', '包 的 pau e', '頂 禮 拜 ting le pai', '尿 苴 仔 jio tsu a', '人 驚 鬼 鬼 驚 人 lang kiann kui kuikiann lang', '無 記 持 症 bo ki ti tsing', '日 落 山 jit loh suann', '偏 鄉 phian hiong', '拭 塗 跤 tshit thoo kha', '袂 死 心 be si sim', '蓋 濟 kai tse kai tsue', '左 右 鄰 tso iu lin', '有 聽 �� 無 u thiann tioh bo', '大 圓 埕 tua inn tiann', '斗 籠 仔 本 tau lang a pun', '摃 寇 kong koo', '野 蓮 ia lian', '勥 查 某 khiang tsa boo', '暗 頓 食 啥 am tng tsiah siann', '草 其 略 仔 tshau ki liok a', '暢 快 thiong khuai', '小 包 sio pau', '薄 餅 poh piann', '趒 tshio tio tshio tio', '暖 帽 luan bo', '無 精 彩 bo tsing tshai', '內 家 lai ke', '鬍 鬚 hoo tshiu', '燒 仙 草 sio sian tshau', '痀 崙 ku lun', '吳 剛 剉 桂 ngoo kong tsho kui', '沙 灘 sua thuann', '人 聲 喊 喝 lang siann hiam huah', '天 公 無 帶 著 thinn kong bo tua tioh', '望 安 鄉 bang uann hiong', '食 風 tsiah hong', '分 子 hun tsi pun tsi', '批 車 phe tshia', '大 舌 tua tsih tua tsi', '公 館 路 kong kuan loo kong koan lo', '碧 潭 路 phik tham loo', '臺 北 歐 洲 學 校 小 學 部 au chiu hak hau', '充 耳 不 聞 tshiong ni put bun', '四 份 仔 si hun a', '頭 崁 的 thau kham e', '南 機 場 lam ki tiunn lam ki tiun', '永 綏 街 ing sui kue', '朴 子 溪 phoh tsu khe', '池 上 ti siong', '跤 車 kha tshia', '管 待 kuan thai', '苦 袂 當 khoo be tang', '陳 滄 江 tan tshong kang', '缺 囝 化 khueh kiann hua kheh kiann hua', '硨 磲 tshia ku', '共 人 唌 ka lang siann', '頂 塊 黃 ting te ng', '潮 州 街 口 tio tsiu kue khau', '社 群 sia kun', '鄉 長 厝 hiong tiunn tshu hiong tiun chhu', '豐 樂 公 園 hong lok kong hng', '金 湖 鎮 kim oo tin', '忠 孝 復 興 tiong hau hok hing', '民 族 區 運 路 口 bin tsok khu un loo khau', '松 信 路 siong sin loo', '糋 麭 粉 tsinn phang hun', '鄞 州 gun tsiu', '台 北 聯 絡 線 tai pak lian lok suann', '又 閣 咧 咳 嗽 iu koh leh ka sau', '伊 加 我 一 輩 i ke gua tsit pue', '霜 仔 sng a', '魚 池 鄉 hi ti hiong', '囝 甘 仔 囝 kiann kam a kiann', '四 跤 水 仙 si kha tsui sian', '暖 暖 區 loan loan khu', '用 齒 抿 仔 洗 喙 時 愛 先 捋 齒 膏 ing khi bin a se tshui si ai sing lut khi ko', '新 社 sin sia', '母 身 若 顧 予 伊 好 bo sin na koo hoo i ho', '實 喉 tsat au', '埔 尾 poo bue', '步 路 poo loo', '冰 糖 ping thng', '復 興 橋 hok heng kio', '阿 拉 a la', '繏 絚 sng an', '員 林 市 oan lim chhi', '蝦 糋 he tsinn', '戇 代 誌 gong tai tsi', '年 拄 年 ni tu ni', '景 興 路 king hing loo', '海 結 仔 頭 hai kat a thau', '一 過 半 過 tsit kue puann kue', '實 聯 制 sit lian tse', '後 擴 au khok', '瑞 芳 sui hong', '蘭 嶼 貓 頭 鳥 lan su niau thau tsiau', '貓 羅 溪 bau lo khue', '子 宮 喙 癌 tsu kiong tshui gam', '果 子 宅 ker tsi theh', '假 說 ka suat', '不 在 put tsai', '燕 巢 區 ian tsau khu', '上 海 毛 蟹 siong hai moo he', '意 式 麵 i sit mi', '捲 風 kng hong', '話 語 之 中 ue gi tsi tiong', '皮 蛋 精 肉 糜 phi tan tsiann bah mue phi tan tsiann bah be', '紅 豆 仔 麭 ang tau a phang', '頂 回 ting hue', '相 見 siong kinn', '三 兩 人 講 四 斤 話 sann niu lang kong si kin ue', '梘 尾 king bue king be', '質 子 tsit tsu', '兩 箍 nng khoo', '真 珠 看 做 鳥 鼠 屎 tsin tsu khuann tso niau tshi sai', '天 晴 thinn tsinn thinn tsenn', '角 運 動 量 kak un tong liong', '莫 問 足 恐 怖 mai mng tsiok khiong poo', '鼻 隔 間 phinn keh king', '叨 撚 lo lian', '止 疼 藥 tsi thiann ioh', '恙 蟲 病 iong thang penn iong thang pinn', '火 成 岩 he sing gam he sing giam hue sing gam hue sing giam', '許 崑 源 khoo khun guan', '土 象 thoo siong', '豬 頭 癀 ti thau hong', '禁 喙 kim tshui', '昨 昏 tsa huinn', '卡 通 khah thong', '番 薯 片 han tsi phinn', '砰 去 piang khi', '卵 珠 nng tsu', '歡 喜 甘 願 huann hi kam guan', '大 海 毋 驚 大 水 tua hai m kiann tua tsui', '橫 的 huinn e huainn e', '跤 手 賤 kha tshiu tsian', '旭 hiok', '仙 巴 掌 sian pa tsiong', '徛 桌 櫃 khia toh kui', '查 畝 營 tsa boo iann', '番 薯 球 han tsi kiu', '芳 料 草 phang liau tshau', '大 火 tua hue tua he', '夥 計 某 hue ki boo', '英 國 話 ing kok ue', '明 知 故 問 bing ti koo bun', '老 街 lau ke lau kue', '看 有 khuann u', '燃 柴 添 火 著 hiann tsha thinn hue toh', '藝 文 活 動 ge bun uah tang', '臺 羅 字 tai lo li', '利 lai', '金 煌 檨 kim hong suainn', '死 袂 見 笑 si be kian siau', '嚇 止 heh tsi', '加 法 ka huat', '馬 鈴 薯 片 ma ling tsi phinn ma ling tsi phinn', '日 頭 曝 尻 川 矣 閣 毋 起 來 jit thau phak kha tshng ah koh m khi lai', '英 語 課 本 ing gi kho pun ing gu kho pun', '凍 水 機 tang tsui ki', '大 肚 胿 仔 tua too kuai a', '卑 南 pi lam', '袂 當 干 焦 我 看 著 be tang kan na gua khuann tioh', '牛 睏 山 gu khun suann', '代 誌 好 勢 矣 未 tai tsi ho se ah bue', '媠 氣 sui khui', '景 文 街 king bun kue keng bun koe', '咒 天 咒 地 tsiu thinn tsiu te', '今 年 是 一 个 好 年 冬 kin ni si tsit e ho ni tang', '事 假 su ka', '烏 山 頭 oo suann thau', '三 講 四 毋 著 sann kong si m tioh', '語 素 文 字 gi soo bun ji', '反 差 huan tsha', '大 日 本 帝 國 tai jit pun te kok', '迒 界 網 商 hann kai bang siong', '嚨 喉 na au', '褪 躘 thun liong', '莫 假 mai ke', '緊 去 做 代 誌 較 要 緊 kin khi tso tai tsi khah iau kin', '你 講 啥 li kong siann', '頸 椎 king tsui', '違 扴 ui keh', '身 體 健 康 sin the kian khong', '跤 手 十 足 kha tshiu tsap tsiok', '電 磁 學 tian tsu hak', '繫 年 he ni', '大 鑼 大 鼓 tua lo tua koo', '伊 是 一 个 大 美 人 i si tsit e tua bi jin', '解 溶 kai iunn', '磅 去 pong ki', '你 陪 我 去 彼 爿 好 無 li pue gua khi hit ping ho bo', '網 路 用 甲 牢 咧 bang loo iong kah tiau leh', '酒 駛 tsiu sai', '孤 單 一 身 koo tuann tsit sin', '家 治 ka ti', '死 忠 迷 眾 si tiong be tsiong', '浮 洲 仔 phu tsiu a', '孤 行 獨 市 koo hang tok tshi', '日 冕 jit mian', '注 目 tsu bak', '擉 仔 tiak a', '燒 狗 sio kau', '名 喙 bing tshui', '創 辦 人 tshong pan jin', '水 燦 林 tsui tshan na', '飼 奶 動 物 tshi ling tong but', '目 睭 擘 金 bak tsiu peh kim', '抾 囡 仔 khioh gin a', '我 予 滾 水 燙 一 下 膨 疱 足 疼 的 gua hoo kun tsui thng tsit e phong pha tsiok thiann e', '象 桮 sin pue sionn pue siunn pue', '有 的 人 u e lang', '瓜 月 kue gueh', '三 字 經 sam ji king', '飯 焦 png ta', '天 車 thian tshia', '梅 毒 mui tok', '目 仔 久 bak nih a ku', '耙 形 pe hing pe heng', '便 物 pian mih', '鹽 酸 草 iam sng tshau', '番 仔 番 薯 huan a han tsi huan a han tsu', '每 一 擺 來 你 攏 煮 好 料 的 mui tsit pai lai li long tsu ho liau e', '來 喔 緊 來 看 喔 lai ooh kin lai khuann ooh', '番 界 huan kai', '總 書 記 tsong su ki', '破 柴 phua tsha', '列 位 liat ui', '鳳 山 hong suann hong soan', '劉 厝 lau tshu', '凱 旋 武 昌 khai suan bu tshiong', '金 美 國 小 kim bi kok sio', '竹 北 市 tik pak tshi', '橋 頭 區 kio thau khu', '南 州 lam tsiu', '和 美 鎮 ho bi tin', '中 壢 tiong lik', '西 區 se khu', '國 泰 kok thai', '水 長 流 tsui tng lau', '中 央 路 tiong iong loo tiong iong lo', '南 福 德 lam hok tik', '金 華 大 廈 kim hua tai ha', '獅 甲 sai kah', '士 林 區 su lim khu', '紙 票 變 厚 tsua phio pian kau', '中 山 橋 tiong san kio', '彰 化 銀 行 tsiong hua gin hang chiong hoa gin hang', '黃 國 昌 ng kok tshiong', '翠 峰 橋 chhui hong kio', '花 仔 菜 hue a tshai', '中 正 國 小 tiong tsing kok sio tiong cheng kok sio', '按 呢 就 好 an ne to ho', '老 去 矣 lau khi ah', '車 埕 tshia tiann chhia tian', '南 陽 街 lam iong kue lam iong koe', '匈 奴 hiong loo', '松 壽 路 口 siong siu loo khau siong siu lo khau', '中 坑 tiong khinn tiong khin', '不 速 之 客 put sok tsi kheh', '瑞 源 sui guan', '後 驛 au iah', '大 稻 埕 tua tiu tiann toa tiu tian', '鳥 仔 弓 tsiau a king', '再 敗 tsai pai', '新 營 區 sin iann khu', '正 義 郵 局 tsing gi iu kiok cheng gi iu kiok', '寧 夏 路 ling ha loo', '動 漫 tong ban', '大 和 園 tua ho hng', '仁 愛 鄉 jin ai hiong', '快 龍 khuai liong', '範 pan', '西 面 se bin', '食 鹼 tsiah kinn', '吊 懸 低 tiau kuan ke', '先 生 娘 sian sinn niu', '拍 鐵 寮 phah thih liau', '露 營 區 loo iann khu lo ian khu', '韻 尾 un bue', '外 雙 溪 gua siang khe', '信 義 區 sin gi khu', '恁 阿 母 敢 知 影 你 佇 遮 發 廢 文 lin a bu kam tsai iann li ti tsia huat hui bun', '敢 按 呢 kam an ne', '厚 操 煩 kau tshau huan', '望 星 橋 bang tshenn kio', '姊 夫 tsi hu', '十 二 甲 tsap ji kah', '文 昌 橋 bun chhiong kio', '有 要 緊 無 u iau kin bo', '林 內 鄉 na lai hiong', '紅 目 石 獅 ang bak tsioh sai', '囡 仔 人 嘛 看 有 gin a lang ma khuann u', '聽 帶 thiann tua', '歕 鼓 吹 pun koo tshue', '歹 喙 斗 phainn tshui tau', '查 某 營 tsa boo iann', '滷 菜 頭 loo tshai thau', '跳 過 thiau kue', '鴨 母 拖 秤 錘 ah bo thua tshin thui', '不 貪 不 取 put tham put tshu', '契 兄 khe hiann khue hiann', '白 墨 粉 peh bak hun', '天 安 門 廣 場 thian an bun kong tiunn', '投 文 tau bun', '隱 名 化 un mia hua', '粗 花 tshoo hue', '雞 籠 蜂 ke lang phang kue lang phang kere lang phang', '暗 眠 摸 山 貓 am bin bong suann niau', '袂 曉 講 話 be hiau kong ue', '搖 床 io tshng', '順 序 sun si sun su', '捎 攏 無 sa long bo', '企 業 家 khi giap ka', '梯 度 thui too', '足 久 無 看 見 tsiok ku bo khuainn', '起 雞 母 皮 khi ke bo phue khi kue bo phe', '台 東 tai tang', '不 見 天 put kian thian', '內 華 達 lue hua tat', '釣 蝦 仔 場 tio he a tiunn', '罟 寮 仔 koo liau a', '五 支 指 頭 仔 咬 起 來 逐 支 嘛 疼 ', '羊 毛 揻 iunn moo ui', '厝 尾 頂 tshu bue ting', '扞 事 人 huann su lang', '大 箍 tua khoo', '較 低 khah ke', '客 服 kheh hok', '鴨 母 泅 ah bo siu', '蚵 仔 菇 0 a koo', '海 口 hai khau', '阿 里 不 達 a li put tah', '反 桌 ping toh', '截 tsueh tseh tsere', '屎 啦 sai lah', '臭 屎 星 tshau sai tshenn', '摸 王 爺 尻 川 bong ong ia kha tshuinn', '切 腹 tshiat pak', '雄 三 飛 彈 hiong sam hui tuann', '一 切 攏 是 假 的 it tshe long si ke e', '小 山 崙 仔 sio suann lun a', '剪 仔 龜 tsian a ku', '青 盲 仔 目 鏡 tshenn me a bak kiann', '親 愛 的 tshin ai e', '在 地 大 漢 tsai te tua han tsai tue tua han', '欲 去 佗 位 beh khi to ui', '崁 頭 鴨 kham thau ah', '冕 旒 bian liu', '跩 著 tsuai tioh tsuainn tioh', '雞 仔 腸 鳥 仔 肚 ke a tng tsiau a too', '門 擋 仔 mng tong a', '菱 角 龍 ling kak liong', '狗 頭 芙 蓉 kau thau phu iong', '癱 瘓 than thuan', '我 欲 去 便 所 gua beh khi pian soo', '彼 當 時 hit tang si', '鼻 淚 管 phinn lui kong', '代 誌 毋 好 tai tsi m ho', '浸 透 tsim thau', '瓦 斯 彈 ga suh tan ga suh tuann', '材 料 科 學 tsai liau kho hak', '甕 底 水 雞 ang te tsui ke', '匯 錢 hue tsinn', '睏 袂 去 khun be khi khun bue khi']
pred.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ pred_str=['心 理 心 白 sim gi sim peh', '火 燒 跤 川 hue sio kha tshun', '打 醒 tsha hing', '十 三 項 tsah sann hang', '水 里 鄉 tsui li hiong', '這 擔 有 一 个 大 傷 重 tsit ta u tsit e tua siong ting', '聯 合 國 lian hap kok', '菜 頭 人 仔 tshai thau lang a', '賴 州 lua tsioh', '肉 羹 bah kun', '新 興 區 sin hing khu', '刣 姑 平 thai koo penn', '米 冬 bi tang', '推 仔 tshue a', '西 洋 棒 senn io pang', '心 喙 sim tshui', '箸 包 仔 hioh pau a', '康 頭 khong thau', '黃 君 hong kun', '羅 水 溪 出 代 誌 lo tsui khe tshut tai tsi', '粗 細 tshoo se', '矮 嗨 ai hai', '九 年 一 關 kau ni it kuan', '精 靈 tsing ling', '三 寶 sam po', '束 束 sok sok', '坐 掣 咧 等 tse tshuah leh tan', '愣 目 袂 歇 看 懸 低 gam bak be hiau khuann kuan ke', '糋 貨 tsun au', '兩 个 人 已 經 講 好 矣 nng e lang i king kong ho', '足 水 tsiok sui', '細 空 喙 tse khang tshui', '掠 著 陰 頭 liah io kinn thau', '資 深 圈 tu sin kuan', '戒 律 kai lut', '草 人 坑 tsau lang khenn', '祝 你 生 日 快 樂 tsiok li senn li khuai lok', '坑 崁 khenn kham', '出 水 tshut tsui', '皮 片 串 phi phenn tshuan', '宜 家 gi a ke', '活 躼 uah lo', '臺 灣 人 tai uan lang', '落 崙 loh lam', '婉 里 坑 uan li khinn', '坑 仔 內 khenn a lai', '起 踅 到 地 khi tsheh kau te', '戶 錢 hoo tsinn', '紅 蟲 ang thang', '青 大 湖 tshi tua oo', '踢 踢 腳 kha tha kioh', '柴 牛 tsha kiu', '大 位 王 tua ui ong', '大 豆 埕 tua tiu tiann', '頭 鑢 thau lui', '鬆 餅 sang piann', '推 暗 廊 tshui am long', '龍 雲 liong gun', '施 菊 si kiok', '熟 士 siak si', '煞 尾 suann bue', '無 話 講 甲 佗 bo ue kong ka lo', '烏 暗 飯 ee am png', '一 籠 tsit lang', '一 定 哭 未 著 it tin khoo bue tioh', '看 一 个 影 踅 一 个 囝 khuann tsit e iann se tsit e kiann', '倒 勢 to se', '埤 衡 pit him', '規 陣 收 蟮 kui tsin siu sian', '度 鬥 tu tau', '變 天 pian thinn', '一 港 九 暗 tsit kang kau am', '運 轉 hun tun', '有 幾 項 菜 u kui hang tshai', '厭 武 iam bu', '鹿 角 龜 lok kak ku', '過 路 山 kue loo suann', '予 欲 予 人 行 oo beh oo lang khia', '粗 俗 tshoo siok', '這 塊 活 錢 tsit e gua tse tsinn', '拭 仔 tshit a', '看 甲 清 清 掣 掣 khuann kah tshin tshing tsho tsho', '楞 神 gong sin', '法 牲 huat siann', '白 囡 仔 peh gin a', '心 花 動 開 sim hue tong khui', '番 鼎 仔 huan tiann a', '流 褲 褲 lau khok khok', '大 雞 血 tua ke hueh', '名 聲 真 厚 mia siann tsin thau', '閃 烘 肉 siam hang bah', '骨 kut', '龜 跩 ku tsua', '水 雞 皮 仔 tsui ke phue a', '夯 硬 果 gia nge ko', '抾 無 三 文 網 著 想 欲 做 土 公 khioh bo sann bun bong tioh siunn beh tso thoo kong', '阿 姆 姨 仔 am inn a', '臺 北 橋 tai pak kio', '溫 林 縣 un lim kuan', '臺 中 港 tai tiong kang', '水 理 tsui li', '臺 南 市 tai lam tshi', '七 堵 tshit too', '做 公 激 tso kong tik', '臺 川 鄉 tai tshuan hiong', '聲 力 擔 sing lah pah', '消 siau', '漢 草 真 好 han tshau tsin ho', '餐 飲 tshan inn', '按 呢 生 an ne senn', '海 尾 hai bue', '無 米 可 拄 著 卵 粿 bo bi khah tu tioh rng kue', '奇 鄉 小 細 ki hiong sio se', '託 thok', '頭 尾 thau bue', '牛 斷 生 長 goo tuan senn tiunn', '政 雄 tsing siong', '吐 蕉 咧 thoo tiau leh', '動 物 性 交 集 tong but sing ka tsit', '雪 文 精 sap bun tsing', '悠 悠 口 iu iu khah', '你 攏 無 歇 睏 喔 lu long boo hioh khun 0', '埤 頭 鄉 pi thau hiong', '信 義 大 安 路 口 sin gi tai an loo khau', '三 三 八 八 sam sam pat pat', '你 話 毋 通 烏 白 講 li ue m thang oo peh kong', '白 寮 鄉 beh liau hiong', '你 莫 著 定 烏 日 財 li mai tioh tiann oo too tsai', '信 案 路 sin an loo', '金 錢 毋 是 萬 盈 的 kim tsinn m si bam ling e', '飛 奶 仔 菜 pue ling a tshai', '忽 了 你 hu liau li', '你 是 誰 li si siang', '番 烏 huan oo', '新 街 sin ke', '合 同 hap tang', '挺 挺 thiann thiann', '番 馬 殼 khuan be khak', '天 氣 冷 仔 你 倒 愛 雞 讀 一 領 三 thinn khi ling na li to ai kue tha tsit nia sann', '我 到 底 看 著 啥 物 gua tau te khuann tioh siann mih', '手 環 tshiu huann', '孤 不 入 三 將 koo put jit sann tsiong', '天 氣 thinn ke', '透 舂 仔 thau tsing a', '澳 叫 錫 au kio siok', '隔 音 壁 keh im piah', '拍 通 頭 phah thong thau', '開 火 滿 天 芳 結 子 才 驚 人 khui hue mua thinn phang kiat tsi tsiah kiann lang', '東 北 貴 風 tang pak kui hong', '無 人 機 bu tsing ki', '做 公 無 小 力 tso gung po sio lat', '真 空 排 放 tsin khong pai hong', '這 藥 仔 活 落 去 真 緊 著 會 退 防 仔 tse ioh a buai loh khi tsin kinn tioh e the hong a', '毛 水 仔 moo sui a', '我 喙 沸 kuattshui phueh', '陽 明 山 iong bing suann', '咖 啡 館 ka pi kuan', '囡 仔 食 gin a sik', '地 對 流 針 一 點 舂 ti tui lau tsim tsit tiam tsing', '伊 規 心 欲 苦 大 學 i kui sim beh khoo tai hak', '東 湖 國 中 tang hoo kok tiong', '中 原 公 園 tiong guan kong hng', '半 路 店 puann loo tiam', '冰 卵 坑 ping nng khinn', '東 石 鄉 tang tsioh hiong', '拚 哨 的 piann sau e', '無 中 心 化 bo tiong sim hua', '肉 葬 角 bah tsang kak', '免 疫 器 pian ik khi', '眵 眵 頭 尾 tshuh pinn thau bue', '波 灣 街 pho uang kue', '人 愛 烘 酒 路 口 jin ai hang tsiu loo khau', '千 頁 tshian iap', '七 色 圖 tshit sik too', '大 激 大 美 tai kik tai bi', '尪 仔 頭 囝 hang a thau kiann', '市 tshi', '咱 做 代 誌 的 時 辰 lan tso tai tsi e si tsun', '包 水 餃 pau tsui kiau', '海 灶 毋 知 飛 海 柴 破 袂 開 hai tsiau m tsai pue hai tsha phuau be khui', '遠 總 場 ng tsong tiunn', '健 康 中 生 tian khong liong sing', '印 輪 你 死 仔 in lun ni si a', '心 理 作 sim li tsok', '獅 仔 頭 sai a thau', '大 肚 路 tua too loo', '市 仔 tshi a', '洛 爺 區 lok iah khu', '學 者 hak tsi', '放 懶 山 pang lang suann', '虎 尾 直 ho bue tik', '赦 腹 肚 sia pak too', '興 村 鎮 hing tshun tik', '小 血 球 sio hueh kiu', '化 格 hua ke', '我 三 攏 輕 鬆 大 貓 gua sann long tshing song puah nia', '溜 落 來 liu loh lai', '半 條 命 puann tiau mia', '神 我 習 慣 hin gua tshi kuan', '斷 領 巾 tan nia king', '菜 保 卵 tshai poo nng', '殕 仔 塗 塗 thoo a thoo thoo', '氣 佮 幕 khi ka bu', '風 火 頭 hong hue thau', '現 流 仔 hian lau a', '白 鳥 工 peh liau kang', '框 港 khong kang', '較 大 khah tua', '公 眾 橋 kong tsing kio', '巴 結 pa kiat', '果 汁 koo tsiap', '有 拜 無 誌 好 u bai bo tsik ho', '這 時 tsik si', '筆 腹 tik pak', '下 晨 e tsa', '較 早 睏 khah tsa khut', '寮 寮 代 説 jio lio tai sun', '公 司 kong si', '我 敢 緊 緊 kuann kuann kin kin', '片 仔 phenn a', '若 屎 香 菇 na san hiunn koo', '山 貓 suann niau', '大 頭 猴 母 tua thau kau bo', '塗 板 印 刀 thong pan jin tau', '奶 ne', '內 延 lai an', '我 會 香 膩 gun e hiann liam', '茶 墓 te buo', '真 有 喙 水 tsin u tshui sui', '毛 德 師 moo to su', '想 想 眼 裡 就 神 你 朋 友 sing sing gin li to sin li ping iu', '輕 鬆 hing suann ong', '好 抾 人 0 khioh lan', '金 東 kim tang', '變 仔 pian a', '單 日 錢 tan ik tsinn', '九 尾 金 kau bue kim', '妙 空 tiau khang', '郭 東 跤 kue tang kha', '頭 辦 坑 坑 thau pan khenn khinn', '無 定 著 bo tiann tioh', '礦 機 仔 khong ki a', '跙 湧 tshu ing', '中 洲 tiong tsiu', '青 天 街 tshing tian kue', '東 方 tong pang', '文 鼎 bun te', '都 原 性 別 to guan sing pit', '舊 厝 ku tshu', '貓 潲 niau siau', '福 建 國 小 hok lian kok sio', '點 破 tiam phuat', '公 貸 kong tai', '目 起 鼓 仔 bok khi koo a', '蜈 蚣 lap tau', '中 環 tiong huan', '螺 絲 瓜 磨 lo si kua uah', '佮 著 排 隊 步 kah tioh phainn tue poo', '驕 褲 khiau khu', '果 水 果 仔 無 準 損 koo tsui kong ai boo tsun sng', '橈 六 平 ka lat pinn', '如 此 如 此 嚴 重 ju lai ju giam tiong', '一 枝 一 枝 tsit e tsit e', '陳 港 大 橋 tan kang tua kio', '想 大 大 時 鑠 siang tua tai si suah', '衰 仔 卑 講 suai a hiok kong', '骨 東 跤 koit tang kha', '旭 盈 胡 hiok ing hoo', '講 啥 物 烏 仔 漢 字 kong siann mih oo a han tsi', '爺 ge', '刺 麵 糕 讀 著 通 tshi mi kue tok tioh thang', '明 星 毋 知 臭 me sai m tsai tshau', '斗 南 tau lam', '姑 克 手 無 事 koo khot tshio bo su', '水 鬼 仔 tsui kui a', '滿 場 ban tsiong', '手 礦 tshiu khong', '心 保 無 厭 sim poo boo iam', '敢 食 戛 油 ka tsiah khe iu', '阿 寶 爪 a po tsua', '機 動 戰 士 ki tong tsian su', '變 動 pian tong', '行 一 平 henn tsit pinn', '敲 仙 鼓 kha sian koo', '所 羅 門 君 佗 soo loo mng kun too', '終 界 tsiong kai', '我 愛 臺 語 gua ai tai gu', '校 鼎 kau ting', '添 經 thiam kiann', '上 蓋 siong kai', '海 嘯 he sio', '落 葉 不 轉 lok ik put tsuat', '跤 蔥 爐 kha tshng lu', '殼 仔 貼 豬 仔 au a thiap ti a', '方 筋 尪 仔 hong kin ang a', '山 suann', '生 甲 袂 䆀 senn kah be bai', '狗 仔 素 kau a soo', '倚 刀 仔 ua to a', '中 央 大 學 tiong iong tai hak', '藉 門 水 庫 tsioh mng tsui khoo', '暖 思 想 nuan su siunn', '百 貨 店 pah hue tiam', '牲 素 甘 sng soo kan', '較 屄 khah kai', '洗 衫 棒 se sann pang', '天 台 thian tai', '數 位 片 soo ui phe', '後 氣 au khue', '鈍 市 會 tun tshi hue', '頭 走 水 thau tsau lui', '夭 壽 鬼 iau siu kui', '好 所 在 ho soo tsai', '軟 飼 nng tshi', '撤 離 thiat li', '現 辦 hian ban', '叫 電 話 kio tian ue', '伊 心 做 佔 一 擦 落 i sim tso tsiann ni tshat lau', '無 神 若 直 針 moo sin na tsik tshiam', '指 甲 甲 仔 tsi kam kam a', '兩 講 liong kong', '隔 十 步 囝 keh tsah boo kiann', '推 著 the tioh', '傷 心 酒 店 siong sim tsiu tiam', '過 時 直 視 kue si tik sih', '較 拼 咧 khah piann leh', '透 生 大 半 thau sing tua kuann', '堉 琅 白 仔 lok khoo peh a', '行 蜘 蛛 袂 著 愛 公 生 hiann ti tsi be tioh ai kang sing', '雞 血 仔 ke hueh a', '��� 三 米 仔 lat sam mih a', '荷 里 貂 ho li tiau', '石 板 tsiau pan', '虎 魚 hoo hi', '落 雨 了 喔 頭 殼 鼻 間 淡 漉 漉 loh hoo liah喔 thoo khak pi kann tam loh loh', '較 慘 khah tshang', '雞 人 飼 ke lang tshi', '你 欲 行 對 佗 位 去 ti beh kiann tui to ui khi', '敦 化 胡 平 路 口 tun hua ho ping loo khau', '敢 仔 喙 kang a tshui', '我 囝 今 年 二 十 出 頭 矣 un kiann ki ni bi tsat tshut thau a', '神 港 醫 sin kang i', '矮 白 腳 母 ai peh kio bu', '一 分 tsit hun', '毛 毛 仔 虎 mng mng a hoo', '元 安 uan an', '牛 郎 gu long', '袂 看 見 be khuann tin', '立 講 立 直 lip kong lip tik', '龜 山 島 ku suann to', '過 島 kue tau', '索 做 堆 sak tso tui', '尾 仔 跤 bui a kha', '包 大 pau tua', '原 地 uan te', '三 藤 三 重 sam ting sam tiong', '林 仔 口 na a khau', '畢 電 pit tian', '草 島 tsho to', '揣 轉 愛 tshue tng ai', '期 中 轉 ki tiong tsan', '珠 仔 台 tsu a tai', '心 腹 sim phoo', '燒 桌 sio tua', '頂 底 了 tin te liau', '竹 南 tit lam', '你 共 包 仔 提 起 啥 燒 這 的 li ka pau a te khi ha sio tsit e', '平 方 間 平 方 君 pin hong kin pin hong kun', '頂 公 館 tin kong kuan', '線 仙 suann siann', '演 藝 界 ian ge kai', '血 本 hue pun', '毋 知 毋 怨 m tsing m uan', '較 緊 khah kin', '有 也 好 無 也 好 u ia ho bo ia ho', '草 鑠 tshau sing', '講 推 仔 龍 kong thui a liong', '怪 奇 果 kuai ki koo', '國 抱 加 盟 kok pho ka pong', '新 羅 sing lo', '過 去 kui khi', '豆 豆 仔 tau tau a', '拍 寶 phah po', '物 件 若 予 伊 提 過 手 mi kiann na hoo i the kue tshiu', '剪 仔 嬰 lian a inn', '奕 界 i kai', '刺 尾 風 tshi bue hong', '烏 來 oo lai', '提 走 the tsau', '無 踏 無 踏 bo tah bo sa', '我 欲 準 備 落 山 gua be tsun pi loh suann', '倒 湧 to iong', '聽 無 thiah bo', '血 頭 雞 娘 對 人 氣 食 好 咧 hie thau ke niu tui lang khe tsiah ho le', '大 細 輾 tua se lian', '母 血 bo hioh', '無 年 誤 你 會 出 國 讀 冊 bo ni goo li e tshut kok that tsheh', '借 園 tsie hng', '虼 字 ka ji', '後 寮 au liau', '我 攏 有 看 著 gua long u khuann tiat', '建 南 路 kiam lam loo', '歹 天 phainn thinn', '三 跤 步 一 坦 店 sann kha poo tsit than piam', '賴 肉 la bah', '龜 你 做 ku li tsok', '下 晡 點 心 e boo tiam sim', '奶 管 lin kuan', '無 極 端 bo kit kiat', '公 文 kong bun', '閘 喙 狗 跤 川 tsah tshui kau kha tshuinn', '猴 仔 片 kau ia phi', '橐 錢 lak tsi', '毛 空 照 moo khang tsiau', '蚵 仔 汁 湯 仔 0 tsi thang a', '結 傘 面 kiat sai min', '白 對 銅 peh tui tang', '空 一 機 khang tsit ki', '無 一 步 boo tsit poo', '落 口 講 出 來 loh khau kong tshuai', '頭 頂 tau tin', '防 地 做 甲 流 汗 防 跤 鄉 甲 流 瀾 hong te tso kah lau kuann hong kha siang kah lau nua', '好 鬥 陣 ho tau tin', '拍 死 辦 phah si pan', '桐 皮 thong pi', '焦 巴 ta pa', '簡 述 kan sun', '節 食 節 tsie tsiak tsie', '緊 來 選 kinn lai suan', '洋 仔 話 iang a ue', '哈 喪 hah song', '你 拉 倚 li lau ua', '總 舖 tsong phoo', '山 里 無 間 舊 溜 溜 san li bo kian ku liu liu', '學 官 hak kua', '手 心 動 tshiu sin tang', '電 子 tian tsi', '暗 空 am khang', '散 食 san tsiah', '塑 膠 車 sok ka tshia', '爪 奕 jiau i', '燒 雞 胿 sio ke kui', '吊 猴 tiau kau', '掠 猴 liah kau', '暗 頭 仔 am thau a', '濟 囝 濟 八 八 濟 新 婦 濟 體 讀 tse kiann tse peh pak tse sin pu tse the thah', '溝 球 kau kiu', '無 都 好 bo tu ho', '草 頭 標 tshioo thau pio', '金 款 失 立 kim khuan sit lip', '觀 音 臺 事 kuan jim tai su', '在 準 tsai tsun', '欲 罨 矣 beh am ah', '拗 路 au lau', '結 禮 kiat le', '汁 仔 里 仔 tsip a li a', '提 款 片 the khuan phinn', '無 你 的 代 bo li e tai', '天 公 做 thinn kong tsoo', '篡 廣 tshuan kong', '離 茶 li te', '馬 鈴 薯 條 ma ling tsi tiau', '做 塗 水 的 tso thoo tsui e', '林 情 美 lin tsing bi', '流 明 傳 lau bing thuan', '橫 包 油 kuann pau iu', '湯 醋 thng tshoo', '離 間 li tsian', '拍 鐵 獅 phah thih sai', '萬 一 跤 步 ban tsit kha poo', '鐵 片 的 the phue e', '下 禮 拜 e le pai', '死 亡 誌 仔 si bong tsi a', '你 毋 通 放 在 心 肝 內 li m thang khong ti sin kuann lai', '臭 龜 仔 tshau ku a', '嘆 一 空 食 三 頓 than tsit khang tsiah sann tang', '我 欲 下 代 語 gua beh a tai gi', '臺 tai', '蛙 蛤 斗 na kah tau', '箍 水 罨 khoo tshui am', '貴 州 姓 kui tsu sing', '敦 化 北 路 tun hua pak loo', '咧 看 起 來 是 隻 年 仔 水 le khuann khia si tsia niann sui', '真 硬 食 講 講 硬 食 天 講 tsin nge tsiah gong gong nge tsiah thinn gong', '長 去 tng khi', '下 晡 時 e bo si', '鬼 爺 kui e', '紅 腸 ang tiunn', '感 情 kam kinn', '字 條 仔 ji tiau a', '無 氣 仔 bo khi a', '原 型 力 gian hing liok', '馬 空 be khang', '六 點 lak tiam', '施 中 si tiong', '車 母 奶 tshe bo ling', '魚 仔 機 hinn a ki', '廣 僚 區 kong liau khu', '甘 血 噴 天 kam hueh phun thinn', '大 好 夯 人 tua ho giah lang', '行 船 員 hing tsing inn', '食 飼 tsiah tshi', '狗 地 厝 kau te tshu', '奶 清 lim hsing', '月 光 ue kng', '盡 水 氣 tsing tsui khi', '雞 柔 ke iu', '天 公 私 thinn kong sinn', '關 kuan', '愛 代 語 ai tai gi', '我 恭 喜 袂 予 gua kiong bue be hua', '天 飯 thinn png', '有 冉 線 u lian suann', '聳 tshiong', '中 國 話 tiong kok ue', '爺 香 桌 牌 iah hiunn toi pai', '四 塊 草 si khua tshau', '挺 號 thiann hoo', '關 攬 kuan lam', '結 霜 卵 kiat siong nng', '占 著 tan tiau', '打 狗 山 ta kau suann', '死 瓜 灣 大 平 si kue uann tua pinn', '有 這 款 的 代 誌 我 攏 毋 知 u tshi khuanne tai si gua long m tsai', '磨 豆 仔 機 bua tau a ki', '國 姓 爺 kok sing ia', '那 口 區 na khau ku', '盤 puann', '苦 山 民 事 khoo suan bin su', '代 誌 大 半 tai tsi too uann', '半 信 半 疑 puann sin puann gi', '點 滴 點 滴 討 khinn hiann bi si tiam tinn tiam tinn tho khenn hiann bi si', '柳 公 公 liu kong kong', '任 通 無 洗 手 的 朋 友 gim thang bo se tshiu e ping liu', '烏 日 oo jit', '衛 風 gui hong', '水 走 tsui tsoo', '番 黗 uan hiam', '連 半 个 人 影 嘛 無 lian puann e lang niann ma bo', '吊 褲 tiau khoo', '塗 指 甲 thoo tsi kang', '霧 煞 煞 bu sa sa', '規 行 船 kui hing tsun', '欲 完 矣 beh uan ah', '搵 醬 un tsiang', '鼎 頭 母 拄 咧 掠 字 tin hau bu tu leh liam ji', '友 情 坐 內 榫 iu tshiann tse nai sun', '港 仔 喙 國 小 kang a tshui kok sio', '鑢 鼓 鑢 鼓 lokoh sokoh', '落 尾 的 loh buoo e', '白 蠓 地 腦 pe pang te nau', '網 網 仔 予 路 久 塗 米 澹 bang bang a hoo loo ku thoo mai tam', '冷 滾 水 ling kun tsui', '一 个 人 口 按 一 个 位 jit e ang khu an tsit e ui', '鹽 素 婕 khiam tsoo keh', '雞 卵 糕 仔 ke nng ko a', '溼 寬 sip kuann', '珠 島 tsu to', '性 斷 流 仔 講 sin tuan lau a kong', '伊 頂 白 毛 毛 i tin peh bong bong', '問 錢 bung tsian', '南 懸 nam kuan', '毋 人 事 m jin su', '雨 溫 u un', '包 山 包 海 pau suann pau hai', '點 空 區 khiam khang ku', '洗 三 舂 se sann tsing', '哈 勁 電 傷 ha kin tian tsiong', '開 喙 磡 搖 搖 草 khui tshui ham ip liap tshau', '河 水 氣 ka tsui khi', '老 姑 將 lau koo tsiann', '塑 膠 路 仔 sok ka loo a', '所 謂 的 連 明 soo ui ia lian bing', '臭 水 tshau tsui', '塑 暗 君 仔 sok am kun a', '衛 生 機 hui hing ki', '邊 開 bin khui', '圍 場 天 下 不 斷 ui khiong thian ha put luan', '錢 票 tsinn phio', '郭 仔 手 kue a tshiu', '異 角 三 件 iu kak sam kiam', '半 葉 puann io', '思 雷 su lui', '衝 勇 tshiong ing', '甘 有 文 茶 kam u bun te', '食 涼 tsiah liang', '話 說 得 添 足 ue tsua thiam tsiok', '做 塗 水 tso thoo tsui', '怪 奇 kuai ki', '辦 件 pan kin', '交 關 kau kuan', '海 岸 hai ga', '中 山 路 tiong san loo', '番 仔 狗 huan a kau', '婚 姨 仔 unni a', '菇 菇 毛 毛 ku ku moo moo', '毋 捌 伊 看 過 是 m bat i khuann ko si', '標 大 pio tuann', '機 公 號 ki kong ho', '海 拄 仔 hai tu a', '猴 頭 果 kau thau ko', '卑 詩 妙 相 自 卑 hip si miu siong', '民 主 bin tsu', '地 球 卵 te hioh nng', '無 指 教 電 bo tsi tsiau tian', '食 人 去 口 還 人 去 斗 tsiah lang tshit khau hing lang tshit tau', '鐵 彈 thih tuann', '東 白 仔 tang peh a', '年 度 ni too', '佛 心 投 資 者 hut sim tau tsu tsia', '人 講 對 人 講 lang kong tue lang kong', '金 剛 戰 士 kim kong tsian su', '做 肉 餅 tso bah piann', '小 裹 喙 sio po tshui', '英 國 語 ing ko hi', '美 託 山 pi tho tsuann', '一 筆 錢 tsit pit tsinn', '割 菜 ko tshai', '鮫 鰆 密 診 kang ma bit tshin', '一 機 場 一 點 落 tsit ki tshau tsit tiam loh', '紮 時 tsann si', '大 頭 母 人 tua thau bu lang', '包 的 pau e', '頂 禮 拜 ting le pai', '牛 舌 仔 jiu tsu a', '人 行 鬼 鬼 行 人 lang kiann kui kui kiann lang', '無 忌 畢 前 bo ki ti tsing', '日 落 山 git lo suann', '片 鄉 phian hiong', '七 頭 跤 tshit thoo kha', '袂 死 心 bue si sim', '蓋 濟 kai tse', '藻 幼 林 tso iu lin', '我 聽 著 無 u thiann tioh bo', '大 姨 弟 娘 tua im tiann', '斗 籠 仔 本 tau lang a pun', '滾 滾 kong kong', '夯 人 ia lan', '欠 紙 喔 khiang tsa ooh', '暗 頓 食 城 am tng tsiah siann', '草 鰆 溜 仔 tshau ki liau a', '忝 愧 khiong khuai', '收 包 siu pang', '包 餅 po piann', '手 段 tshio tionn', '暖 無 luan bo', '無 精 采 bo tsing tshai', '內 低 lai keh', '烏 手 oo tshiu', '燒 身 草 sio sian tshau', '龜 卵 ku lun', '五 公 厝 規 ngoo kong tsho kuin', '山 攤 suann thuann', '人 聲 險 喙 lang siann hiam hua', '天 公 無 大 政 thinn kong bo tua ting', '望 華 鄉 bang ua hiong', '食 風 tsiah hong', '分 子 hun tsi', '飛 車 phue tshia', '大 隻 tua tsi', '公 館 路 kong kuan loo', '碧 潭 路 phik tham loo', '臺 北 歐 洲 浩 浩 小 學 步 tai pak al tsiu hau hau sio hak poo', '青 年 不 文 tshiong ni pupun', '四 分 仔 si hun a', '口 崁 的 khau kham e', '南 機 場 lam ki tiunn', '湧 水 街 in sui ke', '抱 珠 溪 pho tsu khe', '池 鄉 ti siong', '跤 車 kha tshia', '館 刣 kuan khai', '苦 袂 當 khoo be tang', '單 創 工 tan tshong kang', '睏 囝 活 khue kiann hua', '車 轎 tshia khu', '共 人 城 ka lang siann', '頂 底 圓 ting te nn', '潮 州 街 口 tio tsiu kue khau', '車 君 sia kun', '陽 頂 厝 iong ting tshu', '風 鹿 公 園 hong lok kong hng', '金 剛 鎮 kim oo tin', '忠 孝 復 興 tiong hau hok hing', '民 族 區 溫 路 口 bin tsok khu un loo khau', '相 信 路 siong sin lo', '糋 麭 粉 tsinn phang hun', '滾 酒 gun tsiu', '內 腹 咧 路 山 tai pak lan loh suann', '幼 稚 咧 家 嫂 iu ko leh ka sau', '伊 雞 我 一 掰 i ke ua tsit pue', '瘦 仔 sng a', '魚 豬 鄉 hi ti hiong', '囝 仔 囝 kiann kam a kiann', '四 跤 水 仙 si kha tsui sian', '暖 暖 區 nuan nuan khu', '用 起 米 仔 洗 喙 時 愛 生 鹿 起 膏 iong khi bi na se tshui si ai sing luk khi ko', '新 社 sin sia', '武 神 仔 國 予 伊 好 bu sin a koo hoo i ho', '食 包 tsiah pau', '埔 話 poo hue', '埔 路 poo loo', '冰 糖 ping thng', '福 英 橋 hok ing kio', '阿 拉 a la', '耍 蟳 song an', '我 啉 飼 guan lim tshi', '火 糋 he tsin', '廣 大 誌 gong tai tsi', '糜 斗 年 mi tu nin', '景 興 路 king hing loo', '海 角 仔 頭 hai ka ta thau', '一 半 半 半 tsit kue puann kue', '失 戀 者 sit lian tse', '後 擴 au khok', '瑞 穆 sui hong', '咱 思 妙 頭 鳥 lan su niau thau tsiau', '猫 羅 開 bau lo khui', '子 宮 喙 罨 tsu kiong tshui am', '佗 姿 體 ko tsi the', '敢 煞 ka suah', '不 知 不 知 ', '遠 州 區 ian tsau khu', '上 海 毛 蝦 tsiong hai moo he', '意 識 面 i sit mih', '扛 風 kng hong', '話 語 指 中 ue gi tsi tiong', '皮 蛋 做 肉 糜 phi tan tse bah bue', '紅 豆 仔 麭 ang tau a phang', '頂 花 ting hue', '相 伨 siong kinn', '三 兩 人 講 四 間 話 sann niu lang kong si kin ue', '禁 欲 kim be', '這 組 tsit tsu', '卵 箍 nng khoo', '真 珠 看 做 貓 飼 齒 tsin tsu khuann tso niau tshi sai', '天 津 thinn tsinn', '佮 運 動 量 kah un tong liong', '莫 問 足 恐 怖 mai ban tsiok khiong poo', '品 結 經 phin kiat king', '螺 電 lo lian', '糋 挺 藥 tsinn thiann ioh', '用 湯 平 iong thang penn', '火 神 岸 hue sing an', '可 睏 原 kho khu nguan', '烏 上 oo siong', '埤 頭 紅 it thau hong', '掩 喙 im tshui', '紮 位 tsa hui', '敲 湯 khah thong', '番 薯 片 han tsi phinn', '冰 去 piang khi', '卵 豬 nng tsu', '歡 喜 甘 原 huann hi kam uan', '大 海 毋 驚 大 水 tua hai m kia tua tsui', '幻 影 huann e', '跤 手 指 kha tshiu tsian', '歇 hioh', '千 巴 將 tsian pa tsiong', '戛 倒 規 khia to kui', '查 某 影 ta boo iann', '番 薯 球 han tsi kiu', '香 料 草 phang liau tshau', '大 海 tua hue', '火 氣 母 hue ki boo', '英 國 話 ing kok ue', '冉 豬 顧 問 bing ti koo bun', '老 街 lau ke', '看 khuann', '摘 柴 天 火 桌 ia tsha thinn hue too', '下 文 活 東 e bun ua tang', '臺 羅 字 tai lo ji', '內 lai', '金 風 山 kim hong suann', '死 未 見 笑 si bue kian siau', '嚇 舌 heh tsi', '交 貨 ka huah', '馬 鈴 薯 片 ua lim tsu phinn', '裡 頭 拍 甲 聳 仔 公 客 li thau pha kha tsng a koo m kheh', '螢 幕 褲 本 in gu khoo pun', '放 水 機 tang tsui ki', '大 大 塊 仔 tua tuo kuai a', '陂 南 pi lam', '未 凍 敢 若 我 看 著 bue tang kann na gua khuann tioh', '有 困 山 u khun suann', '代 誌 好 生 仔 尾 tai tsi hoo senn a bue', '媠 氣 sui khui', '景 文 瓜 king bun kue', '就 天 就 地 tsiu thinn tsiu te', '今 年 是 一 个 好 年 冬 king ni si tsit e hoo ni tang', '士 佮 su ka', '烏 山 頭 oo suann thau', '三 講 四 毋 著 sann kong si m tioh', '牛 沙 文 字 gu soo bun li', '反 賊 huan tshah', '大 日 本 地 國 toa lit pun te kok', '仝 蓋 網 傷 hang kai bang siong', '若 後 na au', '吞 奶 thun liong', '莫 格 mai ke', '緊 急 做 代 誌 較 要 緊 kin khi tsoo tai tsit khah iau kin', '你 講 啥 li kong sa', '金 水 kim tsui', '位 格 ui kem', '心 體 健 康 sin the kian thong', '跤 手 十 足 kha tshiu tsap tsok', '電 子 學 tian tsu hak', '夏 年 he ni', '大 路 大 股 tua loo tua koo', '伊 是 一 个 大 米 奶 i si tsit e tua bi ling', '解 油 kai iu', '磅 氣 pong khi', '你 陪 我 去 彼 邊 好 無 li pue gua khi hit pin hoo bo', '網 路 用 較 條 咧 bang loo iong khah tiau leh', '舟 屎 tsiu sai', '孤 單 一 生 koo tuann tsit sing', '家 己 ka ti', '死 忠 袂 忠 si tiong be tsiong', '埔 州 仔 pu tshiu a', '股 行 讀 市 koo hang tok chhi', '離 勉 li bian', '注 目 tsu bak', '掠 仔 iah a', '燒 狗 sio kau', '冷 喙 ling tshui', '創 辦 人 tshong pan ling', '水 灑 林 tsui tshan la', '市 場 動 物 tshi ni tong but', '目 睭 八 金 bat tsiu peh kim', '抾 囡 仔 khioh gin a', '我 予 滾 水 湯 一 个 膨 泡 足 聽 的 gua hoo kun tsui thng tsit e phong phah tsio thiann e', '順 桮 sin pue', '話 人 ue lang', '龜 額 kue ge', '山 里 經 sam li king', '飯 餐 puinn ta', '天 車 tinn tshia', '麥 篤 mui tok', '肉 膩 仔 久 bah nia ku', '白 鑫 peh hing', '編 密 tian bi', '鹽 生 草 iam sng tshau', '番 仔 番 薯 huan a han tshi', '年 一 擺 來 你 攏 煮 好 了 的 ni tsit pai lai it long tsu ho liau e', '來 喔 緊 愛 看 喔 lai 0 kin lai khuann 0', '番 界 huan kai', '總 事 件 tsong so kinn', '破 柴 phua tsha', '掠 位 liat ui', '鳳 山 hong suann', '老 厝 lau tshu', '開 山 武 昌 khai suann bu tshiong', '金 米 國 小 kim bi kok sio', '竹 北 市 tek pak tshi', '橋 頭 區 kio thau khu', '南 州 lam tsiu', '好 米 鎮 ho bi tin', '著 奶 tiong lik', '西 區 se khu', '國 泰 kok thai', '水 轉 流 tsui tng lau', '中 勇 路 tiong iong loo', '南 福 著 lam hok tioh', '金 華 大 廈 kin hua tai ha', '使 嘎 sai kah', '士 林 區 su lim khu', '紙 票 變 厚 tsua phio pian kau', '中 山 橋 tiong san kio', '彰 化 人 烘 tsiong huann jin hang', '毋 國 倉 m kok tshiong', '喙 風 轎 tshui hong kio', '火 仔 菜 hue a tshai', '中 正 國 小 tiong tsing kok sio', '按 呢 著 好 an ne tioh ho', '老 去 矣 lau khi ah', '車 埕 tshia tiann', '南 陽 街 lam iong ke', '鄉 愚 hiong loo', '松 壽 路 口 siong siu loo khau', '中 坑 tiong khenn', '不 屬 至 溪 put sok tsi kheh', '水 管 sui kuan', '後 壹 au ia', '大 豆 鼎 tua tiu tiann', '鳥 仔 弓 tsiau a king', '再 掰 tsai pai', '新 園 區 sin nia khu', '政 義 友 谷 tsing gi iu kiok', '寧 夏 路 ling ha loo', '東 灣 tong ban', '大 號 園 tua ho hng', '仁 愛 鄉 jin ai hiong', '塊 龍 khuai liong', '班 pan', '生 米 senn bin', '食 機 tsiah ki', '調 管 家 tiau kuan ke', '鮮 死 娘 sian si niu', '拍 鐵 寮 phah thih liau', '路 影 區 loo iann khu', '溫 尾 un bue', '倚 雙 溪 guah siang khe', '信 義 區 sin gi khu', '你 阿 母 敢 知 仔 你 是 者 發 火 文 li na bu kan tsai a li tsia huat hue bun', '敢 按 呢 kam an ne', '狗 草 灣 kau tshau huan', '望 星 橋 bang tshenn kio', '指 腹 tsi hu', '十 字 架 tsap ji kah', '文 昌 橋 bun tshiong kio', '有 要 緊 無 u iau kinn bo', '若 來 鄉 na lai hiong', '網 目 照 屎 ang bak tsioh sai', '囡 仔 人 嘛 看 有 gin a lang ma khuann u', '車 大 tshia tua', '文 鼓 炊 bun koo tshue', '歹 喙 豆 phainn tshui tau', '查 某 仔 影 tsa boo a iann', '魯 菜 頭 lo tshai thau', '跳 過 thiau kue', '鴨 母 大 正 推 ah boo thuann tsing tui', '不 堪 不 至 put thang put tsu', '抾 箬 khe hiann', '下 目 粉 e bah khut', '聽 阿 毛 講 場 thiann a mng kong tiunn', '豆 磨 tau bo', '雨 苗 化 i mia hua', '粗 花 tshoo hue', '雞 人 香 ke lang phang', '暗 面 摸 山 貓 am bim bong suann niau', '袂 曉 講 話 be hia kong ue', '藥 床 io tshng', '巡 序 sun su', '三 攏 無 sann long bo', '氣 葉 膠 khi iap ka', '推 度 thue too', '足 久 無 看 tsiok ku bo khuann e', '起 雞 母 皮 khi ke boo phue', '臺 港 tai kang', '不 健 身 put kian thian', '落 花 踏 loh hua tah', '著 雨 下 場 tioh heh tiunn', '苦 寮 仔 kho lio a', '五 起 緊 頭 仔 家 橋 特 技 馬 廳 goo ki kin thau a ka kia tak ki ma thiann', '幼 毛 位 iu bo ui', '眵 仔 頂 tshuh ue ting', '華 氏 人 hua su long', '大 箍 tua khoo', '較 雞 khah ke', '戛 佛 kheh hoh', '鴨 母 俗 ah mo siu', '烏 仔 箍 oo a khoo', '海 口 hai khau', '阿 里 不 達 a li phu tah', '冰 島 ping to', '節 tsiat', '使 啦 sai lah', '臭 屎 星 tshau sai tshenn', '網 絨 蟯 仔 跤 倉 bong ong ia kha tshuinn', '冊 鱟 tsheh pak', '洋 山 規 大 iong sang kui tuann', '一 切 攏 是 假 it tshe long si ke', '小 山 老 仔 sio suann long a', '剪 仔 姑 tsian a koo', '青 苗 目 鏡 tshe meh au bak kiann', '親 愛 的 tsin ai', '在 地 大 學 tsai te tua hak', '欲 去 佗 位 beh khi toh ui', '崁 頭 鴨 kham thau ah', '勉 勉 bian liu', '摖 著 tshuai tioh', '轎 仔 長 腳 仔 肚 kia a tng tsia a too', '門 東 仔 mng tong a', '奶 角 龍 ling kak liong', '狗 頭 殕 容 kau thau phu liong', '癱 歡 than huan', '我 欲 去 便 所 ua beh khi pian soo', '那 頓 匙 hit tong si', '鼻 淚 管 phinn lui kong', '代 誌 毋 好 tai tsi m ho', '浸 頭 tsim thau', '蛛 仔 死 大 gu a soo tuann', '在 寮 口 學 tsai lio kho hak', '暗 地 水 雞 am te tsui ke', '貨 錢 hue tsinn', '睏 袂 去 khut be khi']
run.sh ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ python3 run_speech_recognition_seq2seq_streaming.py \
2
+ --model_name_or_path="openai/whisper-medium" \
3
+ --dataset_name="mozilla-foundation/common_voice_11_0" \
4
+ --dataset_config_name="nan-tw" \
5
+ --language="chinese" \
6
+ --train_split_name="train" \
7
+ --eval_split_name="test" \
8
+ --model_index_name="Whisper medium nan-tw" \
9
+ --max_steps="5000" \
10
+ --output_dir="./" \
11
+ --per_device_train_batch_size="2" \
12
+ --per_device_eval_batch_size="2" \
13
+ --logging_steps="25" \
14
+ --learning_rate="1e-5" \
15
+ --warmup_steps="500" \
16
+ --evaluation_strategy="steps" \
17
+ --eval_steps="1000" \
18
+ --save_strategy="steps" \
19
+ --save_steps="1000" \
20
+ --generation_max_length="225" \
21
+ --length_column_name="input_length" \
22
+ --max_duration_in_seconds="30" \
23
+ --text_column_name="sentence" \
24
+ --freeze_feature_encoder="False" \
25
+ --report_to="tensorboard" \
26
+ --gradient_checkpointing \
27
+ --fp16 \
28
+ --overwrite_output_dir \
29
+ --do_train \
30
+ --do_eval \
31
+ --predict_with_generate \
32
+ --do_normalize_eval \
33
+ --use_auth_token \
34
+ --optim="adamw_bnb_8bit"
run_speech_recognition_seq2seq_streaming.py ADDED
@@ -0,0 +1,616 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python
2
+ # coding=utf-8
3
+ # Copyright 2022 The HuggingFace Team. All rights reserved.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+ """
17
+ Fine-tuning the library models for sequence to sequence speech recognition
18
+ with 🤗 Datasets' streaming mode.
19
+ """
20
+ # You can also adapt this script for your own sequence to sequence speech
21
+ # recognition task. Pointers for this are left as comments.
22
+ import ryNormText
23
+ import logging
24
+ import os
25
+ import re
26
+ import string
27
+ import sys
28
+ from dataclasses import dataclass, field
29
+ from typing import Any, Dict, List, Optional, Union
30
+
31
+ import datasets
32
+ import torch
33
+ from datasets import IterableDatasetDict, interleave_datasets, load_dataset
34
+ from torch.utils.data import IterableDataset
35
+
36
+ import evaluate
37
+ import transformers
38
+ from transformers import (
39
+ AutoConfig,
40
+ AutoFeatureExtractor,
41
+ AutoModelForSpeechSeq2Seq,
42
+ AutoProcessor,
43
+ AutoTokenizer,
44
+ HfArgumentParser,
45
+ Seq2SeqTrainer,
46
+ Seq2SeqTrainingArguments,
47
+ TrainerCallback,
48
+ set_seed,
49
+ )
50
+ from transformers.trainer_pt_utils import IterableDatasetShard
51
+ from transformers.trainer_utils import get_last_checkpoint, is_main_process
52
+ from transformers.utils import check_min_version, send_example_telemetry
53
+ from transformers.utils.versions import require_version
54
+
55
+ # Will error if the minimal version of Transformers is not installed. Remove at your own risks.
56
+ check_min_version("4.25.0.dev0")
57
+
58
+ require_version("datasets>=1.18.2", "To fix: pip install -r examples/pytorch/speech-recognition/requirements.txt")
59
+
60
+ logger = logging.getLogger(__name__)
61
+
62
+
63
+ @dataclass
64
+ class ModelArguments:
65
+ """
66
+ Arguments pertaining to which model/config/tokenizer we are going to fine-tune from.
67
+ """
68
+
69
+ model_name_or_path: str = field(
70
+ metadata={"help": "Path to pretrained model or model identifier from huggingface.co/models"}
71
+ )
72
+ config_name: Optional[str] = field(
73
+ default=None, metadata={"help": "Pretrained config name or path if not the same as model_name"}
74
+ )
75
+ tokenizer_name: Optional[str] = field(
76
+ default=None, metadata={"help": "Pretrained tokenizer name or path if not the same as model_name"}
77
+ )
78
+ feature_extractor_name: Optional[str] = field(
79
+ default=None, metadata={"help": "feature extractor name or path if not the same as model_name"}
80
+ )
81
+ cache_dir: Optional[str] = field(
82
+ default=None,
83
+ metadata={"help": "Where to store the pretrained models downloaded from huggingface.co"},
84
+ )
85
+ use_fast_tokenizer: bool = field(
86
+ default=True,
87
+ metadata={"help": "Whether to use one of the fast tokenizer (backed by the tokenizers library) or not."},
88
+ )
89
+ model_revision: str = field(
90
+ default="main",
91
+ metadata={"help": "The specific model version to use (can be a branch name, tag name or commit id)."},
92
+ )
93
+ use_auth_token: bool = field(
94
+ default=False,
95
+ metadata={
96
+ "help": (
97
+ "Will use the token generated when running `huggingface-cli login` (necessary to use this script "
98
+ "with private models)."
99
+ )
100
+ },
101
+ )
102
+ freeze_feature_encoder: bool = field(
103
+ default=True, metadata={"help": "Whether to freeze the feature encoder layers of the model."}
104
+ )
105
+ freeze_encoder: bool = field(
106
+ default=False, metadata={"help": "Whether to freeze the entire encoder of the seq2seq model."}
107
+ )
108
+ forced_decoder_ids: List[List[int]] = field(
109
+ default=None,
110
+ metadata={
111
+ "help": (
112
+ "A list of pairs of integers which indicates a mapping from generation indices to token indices "
113
+ "that will be forced before sampling. For example, [[0, 123]] means the first generated token "
114
+ "will always be a token of index 123."
115
+ )
116
+ },
117
+ )
118
+ suppress_tokens: List[int] = field(
119
+ default=None, metadata={"help": "A list of tokens that will be suppressed at generation."}
120
+ )
121
+ model_index_name: str = field(default=None, metadata={"help": "Pretty name for the model card."})
122
+
123
+
124
+ @dataclass
125
+ class DataTrainingArguments:
126
+ """
127
+ Arguments pertaining to what data we are going to input our model for training and eval.
128
+ """
129
+
130
+ dataset_name: str = field(
131
+ default=None, metadata={"help": "The name of the dataset to use (via the datasets library)."}
132
+ )
133
+ dataset_config_name: Optional[str] = field(
134
+ default=None, metadata={"help": "The configuration name of the dataset to use (via the datasets library)."}
135
+ )
136
+ text_column: Optional[str] = field(
137
+ default=None,
138
+ metadata={"help": "The name of the column in the datasets containing the full texts (for summarization)."},
139
+ )
140
+ max_train_samples: Optional[int] = field(
141
+ default=None,
142
+ metadata={
143
+ "help": (
144
+ "For debugging purposes or quicker training, truncate the number of training examples to this "
145
+ "value if set."
146
+ )
147
+ },
148
+ )
149
+ max_eval_samples: Optional[int] = field(
150
+ default=None,
151
+ metadata={
152
+ "help": (
153
+ "For debugging purposes or quicker training, truncate the number of evaluation examples to this "
154
+ "value if set."
155
+ )
156
+ },
157
+ )
158
+ audio_column_name: str = field(
159
+ default="audio",
160
+ metadata={"help": "The name of the dataset column containing the audio data. Defaults to 'audio'"},
161
+ )
162
+ text_column_name: str = field(
163
+ default="text",
164
+ metadata={"help": "The name of the dataset column containing the text data. Defaults to 'text'"},
165
+ )
166
+ max_duration_in_seconds: float = field(
167
+ default=20.0,
168
+ metadata={
169
+ "help": (
170
+ "Truncate audio files that are longer than `max_duration_in_seconds` seconds to"
171
+ " 'max_duration_in_seconds`"
172
+ )
173
+ },
174
+ )
175
+ min_duration_in_seconds: float = field(
176
+ default=0.0, metadata={"help": "Filter audio files that are shorter than `min_duration_in_seconds` seconds"}
177
+ )
178
+ train_split_name: str = field(
179
+ default="train",
180
+ metadata={
181
+ "help": "The name of the training data set split to use (via the datasets library). Defaults to 'train'"
182
+ },
183
+ )
184
+ eval_split_name: str = field(
185
+ default="test",
186
+ metadata={
187
+ "help": "The name of the training data set split to use (via the datasets library). Defaults to 'train'"
188
+ },
189
+ )
190
+ do_lower_case: bool = field(
191
+ default=False,
192
+ metadata={"help": "Whether the target text should be lower cased."},
193
+ )
194
+ do_remove_punctuation: bool = field(
195
+ default=False,
196
+ metadata={"help": "Whether the target text should be striped of punctuation."},
197
+ )
198
+ do_normalize_eval: bool = field(
199
+ default=True,
200
+ metadata={"help": "Whether to normalise the references and predictions in the eval WER calculation."},
201
+ )
202
+ language: str = field(
203
+ default=None,
204
+ metadata={
205
+ "help": (
206
+ "Language for multilingual fine-tuning. This argument should be set for multilingual fine-tuning "
207
+ "only. For English speech recognition, it should be set to `None`."
208
+ )
209
+ },
210
+ )
211
+ task: str = field(
212
+ default="transcribe",
213
+ metadata={"help": "Task, either `transcribe` for speech recognition or `translate` for speech translation."},
214
+ )
215
+ shuffle_buffer_size: Optional[int] = field(
216
+ default=500,
217
+ metadata={
218
+ "help": (
219
+ "The number of streamed examples to download before shuffling them. The large the buffer, "
220
+ "the closer it is to real offline shuffling."
221
+ )
222
+ },
223
+ )
224
+
225
+
226
+ @dataclass
227
+ class DataCollatorSpeechSeq2SeqWithPadding:
228
+ """
229
+ Data collator that will dynamically pad the inputs received.
230
+ Args:
231
+ processor ([`WhisperProcessor`])
232
+ The processor used for processing the data.
233
+ decoder_start_token_id (`int`)
234
+ The begin-of-sentence of the decoder.
235
+ """
236
+
237
+ processor: Any
238
+ decoder_start_token_id: int
239
+
240
+ def __call__(self, features: List[Dict[str, Union[List[int], torch.Tensor]]]) -> Dict[str, torch.Tensor]:
241
+ # split inputs and labels since they have to be of different lengths and need
242
+ # different padding methods
243
+ model_input_name = self.processor.model_input_names[0]
244
+ input_features = [{model_input_name: feature[model_input_name]} for feature in features]
245
+ label_features = [{"input_ids": feature["labels"]} for feature in features]
246
+
247
+ batch = self.processor.feature_extractor.pad(input_features, return_tensors="pt")
248
+
249
+ labels_batch = self.processor.tokenizer.pad(label_features, return_tensors="pt")
250
+
251
+ # replace padding with -100 to ignore loss correctly
252
+ labels = labels_batch["input_ids"].masked_fill(labels_batch.attention_mask.ne(1), -100)
253
+
254
+ # if bos token is appended in previous tokenization step,
255
+ # cut bos token here as it's append later anyways
256
+ if (labels[:, 0] == self.decoder_start_token_id).all().cpu().item():
257
+ labels = labels[:, 1:]
258
+
259
+ batch["labels"] = labels
260
+
261
+ return batch
262
+
263
+
264
+ def load_streaming_dataset(dataset_name, dataset_config_name, split="train", **kwargs):
265
+ """
266
+ Utility function to load a dataset in streaming mode. For datasets with multiple splits,
267
+ each split is loaded individually and then splits combined by taking alternating examples from
268
+ each (interleaving).
269
+ """
270
+ if "+" in split:
271
+ # load multiple splits separated by the `+` symbol with streaming mode
272
+ dataset_splits = [
273
+ load_dataset(dataset_name, dataset_config_name, split=split_name, streaming=True, **kwargs)
274
+ for split_name in split.split("+")
275
+ ]
276
+ # interleave multiple splits to form one dataset
277
+ interleaved_dataset = interleave_datasets(dataset_splits)
278
+ return interleaved_dataset
279
+ else:
280
+ # load a single split *with* streaming mode
281
+ dataset = load_dataset(dataset_name, dataset_config_name, split=split, streaming=True, **kwargs)
282
+ return dataset
283
+
284
+
285
+ def main():
286
+ # 1. Parse input arguments
287
+ # See all possible arguments in src/transformers/training_args.py
288
+ # or by passing the --help flag to this script.
289
+ # We now keep distinct sets of args, for a cleaner separation of concerns.
290
+ parser = HfArgumentParser((ModelArguments, DataTrainingArguments, Seq2SeqTrainingArguments))
291
+
292
+ if len(sys.argv) == 2 and sys.argv[1].endswith(".json"):
293
+ # If we pass only one argument to the script and it's the path to a json file,
294
+ # let's parse it to get our arguments.
295
+ model_args, data_args, training_args = parser.parse_json_file(json_file=os.path.abspath(sys.argv[1]))
296
+ else:
297
+ model_args, data_args, training_args = parser.parse_args_into_dataclasses()
298
+
299
+ # Sending telemetry. Tracking the example usage helps us better allocate resources to maintain them. The
300
+ # information sent is the one passed as arguments along with your Python/PyTorch versions.
301
+ send_example_telemetry("run_speech_recognition_seq2seq_streaming", model_args, data_args)
302
+
303
+ # 2. Setup logging
304
+ logging.basicConfig(
305
+ format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
306
+ datefmt="%m/%d/%Y %H:%M:%S",
307
+ handlers=[logging.StreamHandler(sys.stdout)],
308
+ )
309
+ log_level = training_args.get_process_log_level()
310
+ logger.setLevel(log_level)
311
+ datasets.utils.logging.set_verbosity(log_level)
312
+ transformers.utils.logging.set_verbosity(log_level)
313
+ transformers.utils.logging.enable_default_handler()
314
+ transformers.utils.logging.enable_explicit_format()
315
+
316
+ logger.setLevel(logging.INFO if is_main_process(training_args.local_rank) else logging.WARN)
317
+
318
+ # Log on each process the small summary:
319
+ logger.warning(
320
+ f"Process rank: {training_args.local_rank}, device: {training_args.device}, n_gpu: {training_args.n_gpu}"
321
+ f"distributed training: {bool(training_args.local_rank != -1)}, 16-bits training: {training_args.fp16}"
322
+ )
323
+ logger.info(f"Training/evaluation parameters {training_args}")
324
+
325
+ # Set the verbosity to info of the Transformers logger (on main process only):
326
+ if is_main_process(training_args.local_rank):
327
+ transformers.utils.logging.set_verbosity_info()
328
+ logger.info("Training/evaluation parameters %s", training_args)
329
+
330
+ # 3. Detecting last checkpoint and eventually continue from last checkpoint
331
+ last_checkpoint = None
332
+ if os.path.isdir(training_args.output_dir) and training_args.do_train and not training_args.overwrite_output_dir:
333
+ last_checkpoint = get_last_checkpoint(training_args.output_dir)
334
+ if last_checkpoint is None and len(os.listdir(training_args.output_dir)) > 0:
335
+ raise ValueError(
336
+ f"Output directory ({training_args.output_dir}) already exists and is not empty. "
337
+ "Use --overwrite_output_dir to overcome."
338
+ )
339
+ elif last_checkpoint is not None and training_args.resume_from_checkpoint is None:
340
+ logger.info(
341
+ f"Checkpoint detected, resuming training at {last_checkpoint}. To avoid this behavior, change "
342
+ "the `--output_dir` or add `--overwrite_output_dir` to train from scratch."
343
+ )
344
+
345
+ # Set seed before initializing model.
346
+ set_seed(training_args.seed)
347
+
348
+ # 4. Load dataset
349
+ raw_datasets = IterableDatasetDict()
350
+
351
+ if training_args.do_train:
352
+ raw_datasets["train"] = load_streaming_dataset(
353
+ data_args.dataset_name,
354
+ data_args.dataset_config_name,
355
+ split=data_args.train_split_name,
356
+ use_auth_token=True if model_args.use_auth_token else None,
357
+ )
358
+
359
+ if training_args.do_eval:
360
+ raw_datasets["eval"] = load_streaming_dataset(
361
+ data_args.dataset_name,
362
+ data_args.dataset_config_name,
363
+ split=data_args.eval_split_name,
364
+ use_auth_token=True if model_args.use_auth_token else None,
365
+ )
366
+
367
+ raw_datasets_features = list(next(iter(raw_datasets.values())).features.keys())
368
+
369
+ if data_args.audio_column_name not in raw_datasets_features:
370
+ raise ValueError(
371
+ f"--audio_column_name '{data_args.audio_column_name}' not found in dataset '{data_args.dataset_name}'. "
372
+ "Make sure to set `--audio_column_name` to the correct audio column - one of "
373
+ f"{', '.join(raw_datasets_features)}."
374
+ )
375
+
376
+ if data_args.text_column_name not in raw_datasets_features:
377
+ raise ValueError(
378
+ f"--text_column_name {data_args.text_column_name} not found in dataset '{data_args.dataset_name}'. "
379
+ "Make sure to set `--text_column_name` to the correct text column - one of "
380
+ f"{', '.join(raw_datasets_features)}."
381
+ )
382
+
383
+ # 5. Load pretrained model, tokenizer, and feature extractor
384
+ #
385
+ # Distributed training:
386
+ # The .from_pretrained methods guarantee that only one local process can concurrently
387
+ config = AutoConfig.from_pretrained(
388
+ model_args.config_name if model_args.config_name else model_args.model_name_or_path,
389
+ cache_dir=model_args.cache_dir,
390
+ revision=model_args.model_revision,
391
+ use_auth_token=True if model_args.use_auth_token else None,
392
+ )
393
+
394
+ config.update({"forced_decoder_ids": model_args.forced_decoder_ids, "suppress_tokens": model_args.suppress_tokens})
395
+
396
+ feature_extractor = AutoFeatureExtractor.from_pretrained(
397
+ model_args.feature_extractor_name if model_args.feature_extractor_name else model_args.model_name_or_path,
398
+ cache_dir=model_args.cache_dir,
399
+ revision=model_args.model_revision,
400
+ use_auth_token=True if model_args.use_auth_token else None,
401
+ )
402
+ tokenizer = AutoTokenizer.from_pretrained(
403
+ model_args.tokenizer_name if model_args.tokenizer_name else model_args.model_name_or_path,
404
+ cache_dir=model_args.cache_dir,
405
+ use_fast=model_args.use_fast_tokenizer,
406
+ revision=model_args.model_revision,
407
+ use_auth_token=True if model_args.use_auth_token else None,
408
+ )
409
+ model = AutoModelForSpeechSeq2Seq.from_pretrained(
410
+ model_args.model_name_or_path,
411
+ config=config,
412
+ cache_dir=model_args.cache_dir,
413
+ revision=model_args.model_revision,
414
+ use_auth_token=True if model_args.use_auth_token else None,
415
+ )
416
+
417
+ if model.config.decoder_start_token_id is None:
418
+ raise ValueError("Make sure that `config.decoder_start_token_id` is correctly defined")
419
+
420
+ if model_args.freeze_feature_encoder:
421
+ model.freeze_feature_encoder()
422
+
423
+ if model_args.freeze_encoder:
424
+ model.freeze_encoder()
425
+ model.model.encoder.gradient_checkpointing = False
426
+
427
+ if data_args.language is not None:
428
+ # We only need to set the task id when the language is specified (i.e. in a multilingual setting)
429
+ tokenizer.set_prefix_tokens(language=data_args.language, task=data_args.task)
430
+
431
+ # 6. Resample speech dataset if necessary
432
+ dataset_sampling_rate = next(iter(raw_datasets.values())).features[data_args.audio_column_name].sampling_rate
433
+ if dataset_sampling_rate != feature_extractor.sampling_rate:
434
+ raw_datasets = raw_datasets.cast_column(
435
+ data_args.audio_column_name, datasets.features.Audio(sampling_rate=feature_extractor.sampling_rate)
436
+ )
437
+
438
+ # 7. Preprocessing the datasets.
439
+ # We need to read the audio files as arrays and tokenize the targets.
440
+ max_input_length = data_args.max_duration_in_seconds * feature_extractor.sampling_rate
441
+ min_input_length = data_args.min_duration_in_seconds * feature_extractor.sampling_rate
442
+ audio_column_name = data_args.audio_column_name
443
+ text_column_name = data_args.text_column_name
444
+ model_input_name = feature_extractor.model_input_names[0]
445
+ do_lower_case = data_args.do_lower_case
446
+ do_remove_punctuation = data_args.do_remove_punctuation
447
+
448
+ punctuation_to_remove = string.punctuation.replace("'", "") # don't remove apostrophes
449
+ punctuation_to_remove_regex = f"[{''.join(punctuation_to_remove)}]"
450
+
451
+ if data_args.max_train_samples is not None:
452
+ raw_datasets["train"] = raw_datasets["train"].take(data_args.max_train_samples)
453
+
454
+ if data_args.max_eval_samples is not None:
455
+ raw_datasets["eval"] = raw_datasets["eval"].take(data_args.max_eval_samples)
456
+
457
+ def prepare_dataset(batch):
458
+ # process audio
459
+ sample = batch[audio_column_name]
460
+ inputs = feature_extractor(sample["array"], sampling_rate=sample["sampling_rate"])
461
+ # process audio length
462
+ batch[model_input_name] = inputs.get(model_input_name)[0]
463
+ batch["input_length"] = len(sample["array"])
464
+
465
+ # process targets
466
+ input_str = batch[text_column_name].lower() if do_lower_case else batch[text_column_name]
467
+ if do_remove_punctuation:
468
+ input_str = re.sub(punctuation_to_remove_regex, " ", input_str).strip()
469
+ input_str = re.sub("\s\s+", " ", input_str)
470
+ batch["labels"] = tokenizer(input_str).input_ids
471
+ return batch
472
+
473
+ with training_args.main_process_first(desc="dataset map pre-processing"):
474
+ vectorized_datasets = raw_datasets.map(
475
+ prepare_dataset,
476
+ remove_columns=raw_datasets_features,
477
+ ).with_format("torch")
478
+
479
+ if training_args.do_train:
480
+ vectorized_datasets["train"] = vectorized_datasets["train"].shuffle(
481
+ buffer_size=data_args.shuffle_buffer_size,
482
+ seed=training_args.seed,
483
+ )
484
+
485
+ # filter training data that is shorter than min_input_length or longer than
486
+ # max_input_length
487
+ def is_audio_in_length_range(length):
488
+ return min_input_length < length < max_input_length
489
+
490
+ if training_args.do_train:
491
+ vectorized_datasets["train"] = vectorized_datasets["train"].filter(
492
+ is_audio_in_length_range,
493
+ input_columns=["input_length"],
494
+ )
495
+
496
+ # 8. Load Metric
497
+ cer_metric = evaluate.load("cer")
498
+ wer_metric = evaluate.load("wer")
499
+ do_normalize_eval = data_args.do_normalize_eval
500
+
501
+ def compute_metrics(pred):
502
+ pred_ids = pred.predictions
503
+
504
+ pred.label_ids[pred.label_ids == -100] = tokenizer.pad_token_id
505
+
506
+ pred_str = tokenizer.batch_decode(pred_ids, skip_special_tokens=True, normalize=do_normalize_eval)
507
+ # we do not want to group tokens when computing the metrics
508
+ label_str = tokenizer.batch_decode(pred.label_ids, skip_special_tokens=True, normalize=do_normalize_eval)
509
+ cer = 100 * cer_metric.compute(predictions=pred_str, references=label_str)
510
+ pred_str = [ryNormText.separ_char_word(x) for x in pred_str]
511
+ label_str = [ryNormText.separ_char_word(x) for x in label_str]
512
+ p = open('pred.txt','w')
513
+ p.write(f'{pred_str=}')
514
+ p.close()
515
+ p = open('label.txt','w')
516
+ p.write(f'{label_str=}')
517
+ p.close()
518
+ wer = 100 * wer_metric.compute(predictions=pred_str, references=label_str)
519
+ return {"wer": wer, "cer": cer}
520
+
521
+ # 9. Create a single speech processor
522
+ if is_main_process(training_args.local_rank):
523
+ # save feature extractor, tokenizer and config
524
+ feature_extractor.save_pretrained(training_args.output_dir)
525
+ tokenizer.save_pretrained(training_args.output_dir)
526
+ config.save_pretrained(training_args.output_dir)
527
+
528
+ processor = AutoProcessor.from_pretrained(training_args.output_dir)
529
+
530
+ # 10. Define data collator
531
+ data_collator = DataCollatorSpeechSeq2SeqWithPadding(
532
+ processor=processor,
533
+ decoder_start_token_id=model.config.decoder_start_token_id,
534
+ )
535
+
536
+ # 11. Configure Trainer
537
+ # Trainer callback to reinitialise and reshuffle the streamable datasets at the beginning of each epoch
538
+ class ShuffleCallback(TrainerCallback):
539
+ def on_epoch_begin(self, args, state, control, train_dataloader, **kwargs):
540
+ if isinstance(train_dataloader.dataset, IterableDatasetShard):
541
+ pass # set_epoch() is handled by the Trainer
542
+ elif isinstance(train_dataloader.dataset, IterableDataset):
543
+ train_dataloader.dataset.set_epoch(train_dataloader.dataset._epoch + 1)
544
+
545
+ # Initialize Trainer
546
+ trainer = Seq2SeqTrainer(
547
+ model=model,
548
+ args=training_args,
549
+ train_dataset=vectorized_datasets["train"] if training_args.do_train else None,
550
+ eval_dataset=vectorized_datasets["eval"] if training_args.do_eval else None,
551
+ tokenizer=feature_extractor,
552
+ data_collator=data_collator,
553
+ compute_metrics=compute_metrics if training_args.predict_with_generate else None,
554
+ callbacks=[ShuffleCallback()],
555
+ )
556
+
557
+ # 12. Training
558
+ if training_args.do_train:
559
+ checkpoint = None
560
+ if training_args.resume_from_checkpoint is not None:
561
+ checkpoint = training_args.resume_from_checkpoint
562
+ elif last_checkpoint is not None:
563
+ checkpoint = last_checkpoint
564
+ train_result = trainer.train(resume_from_checkpoint=checkpoint)
565
+ trainer.save_model() # Saves the feature extractor too for easy upload
566
+
567
+ metrics = train_result.metrics
568
+ if data_args.max_train_samples:
569
+ metrics["train_samples"] = data_args.max_train_samples
570
+
571
+ trainer.log_metrics("train", metrics)
572
+ trainer.save_metrics("train", metrics)
573
+ trainer.save_state()
574
+
575
+ # 13. Evaluation
576
+ results = {}
577
+ if training_args.do_eval:
578
+ logger.info("*** Evaluate ***")
579
+ metrics = trainer.evaluate(
580
+ metric_key_prefix="eval",
581
+ max_length=training_args.generation_max_length,
582
+ num_beams=training_args.generation_num_beams,
583
+ )
584
+ if data_args.max_eval_samples:
585
+ metrics["eval_samples"] = data_args.max_eval_samples
586
+ print(f'{metrics= }')
587
+ trainer.log_metrics("eval", metrics)
588
+ trainer.save_metrics("eval", metrics)
589
+
590
+ # 14. Write Training Stats
591
+ kwargs = {
592
+ "finetuned_from": model_args.model_name_or_path,
593
+ "tasks": "automatic-speech-recognition",
594
+ "tags": "whisper-event",
595
+ }
596
+ if data_args.dataset_name is not None:
597
+ kwargs["dataset_tags"] = data_args.dataset_name
598
+ if data_args.dataset_config_name is not None:
599
+ kwargs["dataset"] = f"{data_args.dataset_name} {data_args.dataset_config_name}"
600
+ else:
601
+ kwargs["dataset"] = data_args.dataset_name
602
+ if "common_voice" in data_args.dataset_name:
603
+ kwargs["language"] = data_args.dataset_config_name
604
+ if model_args.model_index_name is not None:
605
+ kwargs["model_name"] = model_args.model_index_name
606
+
607
+ if training_args.push_to_hub:
608
+ trainer.push_to_hub(**kwargs)
609
+ else:
610
+ trainer.create_model_card(**kwargs)
611
+
612
+ return results
613
+
614
+
615
+ if __name__ == "__main__":
616
+ main()
ryNormText.py ADDED
@@ -0,0 +1,81 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import string, re, opencc
2
+
3
+
4
+ 全型2半型= str.maketrans(
5
+ ' 0123456789'
6
+ 'abcdefghijklmnopqrstuvwxyz'
7
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
8
+ '!゛#$%&()*+、ー。/:;〈=〉?@[]^_‘{|}~',
9
+ ' 0123456789'
10
+ 'abcdefghijklmnopqrstuvwxyz'
11
+ 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
12
+ '!"#$%&()*+,-./:;<=>?@[]^_`{|}~'
13
+ )
14
+
15
+ def 把怪字修進unicode(xStr):
16
+ xStr= re.sub('\uf5c3','𪜶', xStr)
17
+ return xStr
18
+
19
+ def ryNormText(s):
20
+ """
21
+ <<<None>>> ==> 刪除
22
+ 標點 ==> 空白
23
+ 連續空白 ==> 1個空白
24
+ 簡繁
25
+ """
26
+
27
+ punc1= string.punctuation # 這是為英文
28
+ punc1
29
+ punc2= '。,﹐、!?::;『』「」…,\n' # 這是為中文,尚未完備!!
30
+
31
+ punc= f"[{punc1}{punc2}]" ## 這是 regular expression 的 pattern
32
+
33
+ ## <<<None>>> ==> 刪除
34
+ s= re.sub('<<<None>>>','',s)
35
+
36
+ # 標點 ==> 空白
37
+ s= re.sub(punc,' ',s)
38
+
39
+
40
+ # 連續空白 ==> 1個空白
41
+ s= re.sub('[ ]+',' ',s)
42
+
43
+
44
+ # 空白 ==> 刪除
45
+ s= re.sub(' ','',s)
46
+
47
+ s= 把怪字修進unicode(s)
48
+
49
+ # 簡繁
50
+ s= opencc.OpenCC('s2tw').convert(s)
51
+
52
+
53
+ return s
54
+
55
+ import unicodedata
56
+ import re
57
+
58
+
59
+ def separ_char_word(inputString= '我是呂仁園 Renyuan Lyu'):
60
+
61
+ inputString= 把怪字修進unicode(inputString)
62
+
63
+ y= ''
64
+ for x in inputString:
65
+ y += x
66
+ try:
67
+ un= unicodedata.name(x)
68
+ if un.startswith('CJK'):
69
+ y += ' '
70
+ else:
71
+ pass
72
+ except Exception as ex:
73
+ y = ' '+y+' '
74
+ print(f'ryErr:(def 中英分開:){ex= }\t【{x= }】\t{inputString= }')
75
+
76
+ y= re.sub('[ ]+',' ', y) #連續空白只保留1個空白
77
+ return y
78
+
79
+ #q= 中英分開('大家好 da jia hao 我是呂仁園 I am Renyuan Lyu')
80
+
81
+ #print(q)