# 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']) #不含轉調
```
:::