# 2023/09/04 :::info 主旨:國科會計畫<翻譯辨識優化> 主題:翻譯句子統整優化 文件連結新版: [連結](https://docs.google.com/spreadsheets/d/1aANPsu-wB3kS3ViG9S7Xp5pfH7s_9MMlFwiAG2EgJ7k/edit#gid=367446412) * 已 merge ~~文件連結舊版: [連結](https://docs.google.com/spreadsheets/d/1Wedz0Mo25INSvUEXLVOG1WRQaio6WILoJ168btpicWI/edit?usp=sharing)~~ 翻譯 web 介面 : [連結](http://140.116.245.157:1002/) 語音介面: [連結](https://www.taiwanspeech.ilovetogether.com/asr) 合成介面: [連結](http://140.116.245.147:30011/taiwanese_synthesis) ::: * ***等待 `凱亮` 協助完成翻譯*** * ***辨識優化由 `家典` 協助*** - [x] 標記所有資料(可以適度構想要新增甚麼句子以及標記資料) --------------- ## 以下為 09/04 的開會結論以及下次開會的目標 - [x] 【高優先 將句子翻譯為台語(是否有這必要,由於移工計畫並無台語)與向榮確認 - [x] 執行人:`熙堃`、`孟凱`、`光富`、`沅漢` - [x] 確認炳宏是否有時間可以標記資料 - [x] 【高優先】 將台語測試之後放上去 (主要為幫助老人) - [ ] 【高優先】 再約 `凱亮` 以及 `Justin Lin` 討論翻譯內容(印尼)最遲明天 - [ ] 主要為討論翻譯內容要標記的狀況 - [x] 台語必須要放上去,`11月` 需要展示,放上去之後回報 - [x] 7/20 以及 9/02 的新的句子必須要 `merge` 並且要標資料 - [x] 下次開會之前把所有資料標記好(首先翻譯過去,如果相對應的詞彙沒有翻譯過去的話,必須要標記紅色的字)【台語、印尼語】 - [ ] 這禮拜需要把所有資料標好之後再來看問題出在哪裡,找尋到問題之後要跟老師報告並且提出解決方案 - [ ] 【翻譯組進度】 可以開始看部分論文並且開始找解決方案 ------ # 2023/09/10 - 移工對話腳本開發 ### 項目一 : 移工對話腳本 > 此會議主要要討論移工會怎麼樣根據我們提出的對話而有所答覆,通常答覆不會到太困難,所以有這個會議來討論, - [x] 今天先 100 句,把回應弄出來,處理人: @JoshuaLee0321 @Nelson * 目前先決定:找老師手把手,一個針對句子討論該要有的回應 ### 項目二 : 標記資料(印尼文) 文件連結新版: [連結](https://docs.google.com/spreadsheets/d/1aANPsu-wB3kS3ViG9S7Xp5pfH7s_9MMlFwiAG2EgJ7k/edit#gid=367446412) ### 項目三 : 語音辨識人力 :::info 並行 - [ ] 首先先用 google 的語音生出所有 `689句` 語音 `熙堃` - [ ] 另外請 `Justin` 以及 `凱量` 在實驗室錄音,請 DM `熙堃` ::: * 用 google 錄音辨識 - `689句 測試集` * 用 `合成組` 合成出的語音當作訓練集 - `訓練集` * 台語用合成 * 請 @凱量 @Justin 錄音部分的資料來當作 - `測試集` - [ ] 凱量 100 句 (印尼文) - [ ] Justin 100 句 (中文) - [ ] `Jia Dian` 100 句 (台語) :::info - [ ] 台語助理 - [ ] 碩士班、(紹庭)專題生可以錄音 ::: ### 項目四 : 開會時間? :::warning 最多兩周、三周、四周一次這種會議 ::: @凱量 4:00 之後 @Justin 4:00 之前 - 以開會的角度來說,我來判斷誰要開會 * 禮拜一固定下午 1:00 開綜合會議 ## python client 連結 【中文翻譯為台文漢字】 以下為翻譯各種語言的 cli :::spoiler ```python import requests import json def translation_request(**kargs): ''' input: translation_text : sentense you want to translation model : model you want to select more model please goto http://140.116.245.157:1002, check models' tag ''' msg_dict = kargs res = requests.post('http://140.116.245.157:1002/translation',data=msg_dict) return res.json() if __name__ == "__main__": dict_1 = translation_request(translation_text="我想吃水果", model='zh2id_kevin') # print(dict['after_translation']) print(dict_1) ``` ::: 以下為翻譯中文到台文的 cli :::spoiler ```python= # !/usr/bin/env python # _*_coding:utf-8_*_ import socket import struct import argparse import json def askForService(text:str): ''' 將輸入的中文經過名詞片語解析、文法矯正和翻譯轉換成台羅拼音。\ 若輸入為台羅,則輸出亦為台羅,可將符號調台羅轉成數字調台羅。\ 若輸入為中文,輸出為一個json格式,包含每個詞對應到的台羅,和整句話的台羅拼音。\ 例如: input = 肚子感覺疼-> output = {'肚子': 'pak-tóo', '感覺': 'kám-kak', '疼': 'thiànn', 'tailuo': 'pak4-too2 kam2-kak4 thiann3'} Params: text: (str) Text will be translate from Chinese to Tai-Luo. ''' global HOST global PORT global TOKEN sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: if len(text)==0: raise ValueError ("Input text should not be empty!!!") sock.connect((HOST, PORT)) msg = bytes(TOKEN + "@@@" + text, "utf-8") msg = struct.pack(">I", len(msg)) + msg sock.sendall(msg) result="" while True: l = sock.recv(8192) if not l: break result += l.decode(encoding="UTF-8") finally: sock.close() if PORT == 2002: TLresult = json.loads(result) print(TLresult) print(TLresult['tailuo']) elif PORT == 27541: TLresult = result print(TLresult) return TLresult global HOST global PORT global TOKEN HOST, PORT = "140.116.245.157", 2002 PORT = 27541 TOKEN = "mi2stts" if __name__=='__main__': text = "我在這裡嗎" parser = argparse.ArgumentParser() parser.add_argument('--text', default=text, help='Text will be translate from Chinese to Tai-Luo.') args = parser.parse_args() result = askForService(text=args.text) print(result) #print(result['tailuo']) #不含轉調 ``` :::