diff --git "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Kaldi\350\252\236\346\226\231\350\231\225\347\220\206.py" "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Kaldi\350\252\236\346\226\231\350\231\225\347\220\206.py" index 735798be..b7115ef0 100644 --- "a/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Kaldi\350\252\236\346\226\231\350\231\225\347\220\206.py" +++ "b/\350\207\272\347\201\243\350\250\200\350\252\236\346\234\215\345\213\231/Kaldi\350\252\236\346\226\231\350\231\225\347\220\206.py" @@ -1,12 +1,11 @@ # -*- coding: utf-8 -*- +from 臺灣言語工具.基本物件.公用變數 import 無音 from 臺灣言語工具.解析整理.拆文分析器 import 拆文分析器 -from 臺灣言語服務.Kaldi語料匯出 import Kaldi語料匯出 -from 臺灣言語工具.基本物件.公用變數 import 分型音符號 -import re from 臺灣言語工具.解析整理.解析錯誤 import 解析錯誤 +from 臺灣言語服務.Kaldi語料匯出 import Kaldi語料匯出 from 臺灣言語服務.models import 訓練過渡格式 -from 臺灣言語工具.基本物件.公用變數 import 無音 +import re class Kaldi語料處理(): @@ -33,8 +32,8 @@ def 轉fst格式(cls, 辭典輸出物件, 音陣列): 路 = set() for 音節 in 音陣列: 路.add( - '0\t0\t{2}{1}{2}\t{2}{1}{2}'.format( - 音節, 分型音符號, 辭典輸出物件.漢字聲韻(音節) + '0\t0\t{1}\t{1}'.format( + 音節, 辭典輸出物件.漢字聲韻(音節) ) ) 資料 = sorted(路) @@ -47,7 +46,7 @@ def 轉辭典檔(cls, 辭典輸出物件, 音陣列): for 音節 in sorted(音陣列): 辭典格式, *_新聲學類 = Kaldi語料匯出.音節轉辭典格式( 拆文分析器.對齊字物件(音節, 音節), 辭典輸出物件, - '{1}{0}{1}'.format(分型音符號, 辭典輸出物件.漢字聲韻(音節)) + 辭典輸出物件.漢字聲韻(音節) ) 資料.add(辭典格式) return sorted(資料) @@ -67,9 +66,7 @@ def 轉音節text格式(cls, 音標系統, 語句陣列): 音 = 字物件.型 音標物件 = 音標系統(音) if 音標物件.音標: - 音節逝.append('{2}{1}{2}'.format( - 音標物件.音標, 分型音符號, 音標物件.聲 + 音標物件.韻 - )) + 音節逝.append(音標物件.聲 + 音標物件.韻) 結果.append(' '.join(音節逝)) return 結果 diff --git "a/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200fst\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200fst\345\226\256\345\205\203\350\251\246\351\251\227.py" index c20e680d..05f1b190 100644 --- "a/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200fst\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200fst\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -54,11 +54,11 @@ def test_轉fst(self): self.assertEqual( fst, [ - '0\t0\tkan|kan\tkan|kan', - '0\t0\tleh|leh\tleh|leh', - '0\t0\tna|na\tna|na', - '0\t0\tpoo|poo\tpoo|poo', - '0\t0\tsan|san\tsan|san', + '0\t0\tkan\tkan', + '0\t0\tleh\tleh', + '0\t0\tna\tna', + '0\t0\tpoo\tpoo', + '0\t0\tsan\tsan', '0\t1', ] ) @@ -71,7 +71,7 @@ def test_fst仝調一條路就好(self): self.assertEqual( fst, [ - '0\t0\tsui|sui\tsui|sui', + '0\t0\tsui\tsui', '0\t1', ] ) @@ -84,11 +84,11 @@ def test_轉辭典檔(self): self.assertEqual( fst, [ - 'kan|kan\tk- a2 n2', - 'leh|leh\tl- e4 ʔ4', - 'na|na\tn- a2', - 'poo|poo\tp- o7', - 'san|san\ts- a3 n3' + 'kan\tk- a2 n2', + 'leh\tl- e4 ʔ4', + 'na\tn- a2', + 'poo\tp- o7', + 'san\ts- a3 n3' ] ) @@ -100,9 +100,9 @@ def test_仝音攏出現(self): self.assertEqual( fst, [ - 'sui|sui\ts- u1 i1', - 'sui|sui\ts- u2 i2', - 'sui|sui\ts- u3 i3', + 'sui\ts- u1 i1', + 'sui\ts- u2 i2', + 'sui\ts- u3 i3', ] ) @@ -114,11 +114,11 @@ def test_輕聲佮原本音攏仝款(self): self.assertEqual( fst, [ - 'khiau|khiau\tkʰ- i2 a2 u2', - 'sui|sui\ts- u0 i0', - 'sui|sui\ts- u1 i1', - 'sui|sui\ts- u2 i2', - 'sui|sui\ts- u3 i3', + 'khiau\tkʰ- i2 a2 u2', + 'sui\ts- u0 i0', + 'sui\ts- u1 i1', + 'sui\ts- u2 i2', + 'sui\ts- u3 i3', ] ) @@ -130,10 +130,10 @@ def test_外來詞佮原本音攏仝款(self): self.assertEqual( fst, [ - 'khiau|khiau\tkʰ- i2 a2 u2', - 'sui|sui\ts- u1 i1', - 'sui|sui\ts- u2 i2', - 'sui|sui\ts- u3 i3', + 'khiau\tkʰ- i2 a2 u2', + 'sui\ts- u1 i1', + 'sui\ts- u2 i2', + 'sui\ts- u3 i3', ] ) @@ -145,7 +145,7 @@ def test_單元音(self): self.assertEqual( fst, [ - 'i|i\tʔ- i1', + 'i\tʔ- i1', ] ) @@ -164,11 +164,11 @@ def test_指令有讀(self, 揣出漢語音節種類mock): @patch('臺灣言語服務.Kaldi語料處理.Kaldi語料處理.轉fst格式') def test_指令有輸出fst(self, 轉fst格式mock): 轉fst格式mock.return_value = [ - '0 0 leh4|leh4 leh4|leh4', - '0 0 kan2|kan2 kan2|kan2', - '0 0 na2|na2 na2|na2', - '0 0 poo7|poo7 poo7|poo7', - '0 0 san3|san3 san3|san3', + '0 0 leh leh', + '0 0 kan kan', + '0 0 na na', + '0 0 poo poo', + '0 0 san san', '0 1', ] with TemporaryDirectory() as 資料夾路徑: @@ -181,11 +181,11 @@ def test_指令有輸出fst(self, 轉fst格式mock): self.比較檔案( join(資料夾路徑, 'data', 'local', 'free-syllable', 'uniform.fst'), [ - '0 0 leh4|leh4 leh4|leh4', - '0 0 kan2|kan2 kan2|kan2', - '0 0 na2|na2 na2|na2', - '0 0 poo7|poo7 poo7|poo7', - '0 0 san3|san3 san3|san3', + '0 0 leh leh', + '0 0 kan kan', + '0 0 na na', + '0 0 poo poo', + '0 0 san san', '0 1', ] ) diff --git "a/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200text\345\226\256\345\205\203\350\251\246\351\251\227.py" "b/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200text\345\226\256\345\205\203\350\251\246\351\251\227.py" index 29032c21..f4bea828 100644 --- "a/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200text\345\226\256\345\205\203\350\251\246\351\251\227.py" +++ "b/\350\251\246\351\251\227/Kaldi/test\345\214\257\345\207\272\346\274\242\350\252\236\351\237\263\347\257\200text\345\226\256\345\205\203\350\251\246\351\251\227.py" @@ -26,7 +26,7 @@ def test_轉音節(self): 音節, [ 'tong0000000-0000000無註明-ku0000000 ' - 'kan|kan na|na san|san poo|poo leh|leh' + 'kan na san poo leh' ] ) @@ -42,7 +42,7 @@ def test_標點無要緊(self): 音節, [ 'tong0000000-0000000無註明-ku0000000 ' - 'kan|kan na|na san|san poo|poo' + 'kan na san poo' ] ) @@ -73,7 +73,7 @@ def test_有空逝無要緊(self): 音節, [ 'tong0000000-0000000無註明-ku0000000 ' - 'kan|kan na|na san|san poo|poo' + 'kan na san poo' ] ) @@ -81,7 +81,7 @@ def test_有空逝無要緊(self): def test_指令有輸出辭典檔(self, 轉音節text格式mock): 轉音節text格式mock.return_value = [ 'tong0000000-0000000無註明-ku0000000 ' - 'kan|kan na|na san|san poo|poo leh|leh' + 'kan na san poo leh' ] with TemporaryDirectory() as 資料夾路徑: 原本語料 = join(資料夾路徑, 'train_dev') @@ -100,7 +100,7 @@ def test_指令有輸出辭典檔(self, 轉音節text格式mock): 程式腳本._讀檔案(join(結果語料, 'text')), [ 'tong0000000-0000000無註明-ku0000000 ' - 'kan|kan na|na san|san poo|poo leh|leh' + 'kan na san poo leh' ] )