Skip to content

Commit

Permalink
Merge pull request #385 from voduylinhnashtech/add-vietnamese
Browse files Browse the repository at this point in the history
Add vietnamese language for wirepod
  • Loading branch information
kercre123 authored Sep 10, 2024
2 parents 3fa851a + b844c39 commit 45427c9
Show file tree
Hide file tree
Showing 5 changed files with 260 additions and 36 deletions.
218 changes: 218 additions & 0 deletions chipper/intent-data/vi-VN.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
[
{
"name": "intent_names_username_extend",
"keyphrases": ["Tên"]
},
{
"name": "intent_weather_extend",
"keyphrases": ["Thời tiết", "Dự báo thời tiết", "Thời tiết ngày mai", "Thời tiết hôm nay"]
},
{
"name": "intent_names_ask",
"keyphrases": ["Tên của tôi", "Tôi là", "Tôi là ai"]
},
{
"name": "intent_imperative_eyecolor",
"keyphrases": ["Màu mắt", "Màu sắc"]
},
{
"name": "intent_character_age",
"keyphrases": ["Bao nhiêu tuổi", "Bạn bao nhiêu tuổi"]
},
{
"name": "intent_explore_start",
"keyphrases": ["Đi dạo", "Tự do"]
},
{
"name": "intent_system_charger",
"keyphrases": ["Về nhà", "Sạc điện","Võ Duy Linh"]
},
{
"name": "intent_system_sleep",
"keyphrases": ["Ngủ", "Đi ngủ", "Ngủ đi"]
},
{
"name": "intent_greeting_goodmorning",
"keyphrases": ["Chào buổi sáng", "Chào buổi trưa", "Chào buổi chiều", "Xin chào"]
},
{
"name": "intent_greeting_goodnight",
"keyphrases": ["Chúc ngủ ngon"]
},
{
"name": "intent_greeting_goodbye",
"keyphrases": ["Tạm biệt", "Gặp lại sau"]
},
{
"name": "intent_seasonal_happynewyear",
"keyphrases": ["Chúc mừng năm mới", "Pháo hoa", "Ăn mừng", "Võ Duy Linh"]
},
{
"name": "intent_seasonal_happyholidays",
"keyphrases": ["Vui vẻ", "Ngày lễ", "Kỳ nghỉ lễ"]
},
{
"name": "intent_amazon_signin",
"keyphrases": ["đăng nhập trợ lý ảo", "đăng ký trợ lý ảo"]
},
{
"name": "intent_amazon_signout",
"keyphrases": ["đăng xuất trợ lý ảo", "đăng xuất trợ lý ảo"]
},
{
"name": "intent_imperative_forward",
"keyphrases": ["Tiến lên", "Đi tới"]
},
{
"name": "intent_imperative_turnaround",
"keyphrases": ["Quay lại", "Quay đầu", "Quay người"]
},
{
"name": "intent_imperative_turnleft",
"keyphrases": ["Rẽ trái", "Quay trái"]
},
{
"name": "intent_imperative_turnright",
"keyphrases": ["Rẽ phải", "Quay phải"]
},
{
"name": "intent_play_rollcube",
"keyphrases": ["Chơi khối vuông"]
},
{
"name": "intent_play_popawheelie",
"keyphrases": ["Giơ tay"]
},
{
"name": "intent_play_fistbump",
"keyphrases": ["Cụng tay", "Đập tay"]
},
{
"name": "intent_play_blackjack",
"keyphrases": ["Chơi bài", "Đánh bài"]
},
{
"name": "intent_imperative_affirmative",
"keyphrases": ["Đúng", "Tất nhiên", "Chính xác", "Phải"]
},
{
"name": "intent_imperative_negative",
"keyphrases": ["Không", "Sai"]
},
{
"name": "intent_photo_take_extend",
"keyphrases": ["Chụp ảnh"]
},
{
"name": "intent_imperative_praise",
"keyphrases": ["Tuyệt vời", "Thông minh"]
},
{
"name": "intent_imperative_abuse",
"keyphrases": ["Ngốc", "Ngu ngốc"]
},
{
"name": "intent_imperative_apologize",
"keyphrases": ["Xin lỗi", "Lỗi của tôi"]
},
{
"name": "intent_imperative_backup",
"keyphrases": ["Lại đây", "Quay lại", "võ duy linh"]
},
{
"name": "intent_imperative_volumedown",
"keyphrases": ["Giảm âm lượng", "Nhỏ tiếng"]
},
{
"name": "intent_imperative_volumeup",
"keyphrases": ["Tăng âm lượng", "To tiếng"]
},
{
"name": "intent_imperative_lookatme",
"keyphrases": ["Nhìn tôi", "Nhìn vào tôi"]
},
{
"name": "intent_imperative_volumelevel_extend",
"keyphrases": ["Âm lượng"]
},
{
"name": "intent_imperative_shutup",
"keyphrases": ["Im miệng"]
},
{
"name": "intent_greeting_hello",
"keyphrases": ["Xin chào", "Chào bạn"]
},
{
"name": "intent_imperative_come",
"keyphrases": ["Lại đây"]
},
{
"name": "intent_imperative_love",
"keyphrases": ["Yêu thích", "Yêu"]
},
{
"name": "intent_knowledge_promptquestion",
"keyphrases": ["Câu hỏi", "Trả lời"]
},
{
"name": "intent_clock_checktimer",
"keyphrases": ["Kiểm tra báo thức", "Xem báo thức"]
},
{
"name": "intent_global_stop_extend",
"keyphrases": ["Hủy báo thức", "Tắt báo thức"]
},
{
"name": "intent_clock_settimer_extend",
"keyphrases": ["Đặt báo thức", "Cài báo thức"]
},
{
"name": "intent_clock_time",
"keyphrases": ["Thời gian", "Mấy giờ rồi"]
},
{
"name": "intent_imperative_quiet",
"keyphrases": ["Yên lặng", "Nghỉ ngơi"]
},
{
"name": "intent_imperative_dance",
"keyphrases": ["Nhảy múa", "Nhảy đi"]
},
{
"name": "intent_play_pickupcube",
"keyphrases": ["Nhặt khối vuông", "Đưa khối vuông cho tôi"]
},
{
"name": "intent_imperative_fetchcube",
"keyphrases": ["Lấy khối vuông"]
},
{
"name": "intent_imperative_findcube",
"keyphrases": ["Tìm khối vuông"]
},
{
"name": "intent_play_anytrick",
"keyphrases": ["Kỹ năng"]
},
{
"name": "intent_message_recordmessage_extend",
"keyphrases": ["Ghi lại"]
},
{
"name": "intent_message_playmessage_extend",
"keyphrases": ["Phát tin nhắn"]
},
{
"name": "intent_blackjack_hit",
"keyphrases": ["Đánh"]
},
{
"name": "intent_blackjack_stand",
"keyphrases": ["Đứng"]
},
{
"name": "intent_play_keepaway",
"keyphrases": ["Đi chỗ khác", "Xa ra"]
}
]
2 changes: 2 additions & 0 deletions chipper/pkg/wirepod/localization/download.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ func DownloadVoskModel(language string) {
filename = filename + "nl-0.22.zip"
} else if language == "uk-UA" {
filename = filename + "uk-v3-small.zip"
} else if language == "vi-VN" {
filename = filename + "vn-0.4.zip"
} else {
logger.Println("Language not valid? " + language)
return
Expand Down
74 changes: 38 additions & 36 deletions chipper/pkg/wirepod/localization/localization.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package localization

import "github.com/kercre123/wire-pod/chipper/pkg/vars"

var ValidVoskModels []string = []string{"en-US", "it-IT", "es-ES", "fr-FR", "de-DE", "pt-BR", "pl-PL", "zh-CN", "tr-TR", "ru-RU", "nt-NL", "uk-UA"}
var ValidVoskModels []string = []string{"en-US", "it-IT", "es-ES", "fr-FR", "de-DE", "pt-BR", "pl-PL", "zh-CN", "tr-TR", "ru-RU", "nt-NL", "uk-UA", "vi-VN"}

const STR_WEATHER_IN = "str_weather_in"
const STR_WEATHER_FORECAST = "str_weather_forecast"
Expand Down Expand Up @@ -80,41 +80,41 @@ var ALL_STR []string = []string{
// All text must be lowercase!

var texts = map[string][]string{
// key en-US it-IT es-ES fr-FR de-DE pl-PL tr-TR ru-RU nt-NL uk-UA
STR_WEATHER_IN: {" in ", " a ", " en ", " en ", " in ", " w ", " 的 ", " içinde ", " в ", " in ", " в "},
STR_WEATHER_FORECAST: {"forecast", "previsioni", "pronóstico", "prévisions", "wettervorhersage", "prognoza", "预报", "tahmin", "прогноз", "voorspelling", "прогноз"},
STR_WEATHER_TOMORROW: {"tomorrow", "domani", "mañana", "demain", "morgen", "jutro", "明天", "yarın", "завтра", "morgen", "завтра"},
STR_WEATHER_THE_DAY_AFTER_TOMORROW: {"day after tomorrow", "dopodomani", "el día después de mañana", "lendemain de demain", "am tag nach morgen", "pojutrze", "后天", "yarından sonra", "послезавтра", "overmorgen", "післязавтра"},
STR_WEATHER_TONIGHT: {"tonight", "stasera", "esta noche", "ce soir", "heute abend", "dziś wieczorem", "今晚", "bu gece", "сегодня вечером", "vanavond", "сьогодні ввечері"},
STR_WEATHER_THIS_AFTERNOON: {"afternoon", "pomeriggio", "esta tarde", "après-midi", "heute nachmittag", "popołudniu", "下午", "bu öğleden sonra", "после полудня", "middag", "після полудня"},
STR_EYE_COLOR_PURPLE: {"purple", "lilla", "violeta", "violet", "violett", "fioletowy", "紫色", "mor", "фиолетовый", "paars", "фіолетовий"},
STR_EYE_COLOR_BLUE: {"blue", "blu", "azul", "bleu", "blau", "niebieski", "蓝色", "mavi", "голубой", "blauw", "голубий"},
STR_EYE_COLOR_SAPPHIRE: {"sapphire", "zaffiro", "zafiro", "saphir", "saphir", "szafir", "天蓝", "safir", "синий", "saffier", "синій"},
STR_EYE_COLOR_YELLOW: {"yellow", "giallo", "amarillo", "jaune", "gelb", "żółty", "黄色", "sarı", "жёлтый", "geel", "жовтий"},
STR_EYE_COLOR_TEAL: {"teal", "verde acqua", "verde azulado", "sarcelle", "blaugrün", "morski", "浅绿", "teal", "бирюзовый", "wintertaling", "бірюзовий"},
STR_EYE_COLOR_TEAL2: {"tell", "acquamarina", "aguamarina", "acquamarina", "acquamarina", "akwamaryn", "蓝绿", "turkuaz", "аквамарин", "vertellen", "аквамариновий"},
STR_EYE_COLOR_GREEN: {"green", "verde", "verde", "vert", "grün", "zielony", "绿色", "yeşil", "зелёный", "groente", "зелений"},
STR_EYE_COLOR_ORANGE: {"orange", "arancio", "naranja", "orange", "orange", "pomarańczowy", "橙色", "turuncu", "оранжевый", "oranje", "оранжевий"},
STR_ME: {"me", "me", "me", "moi", "mir", "mnie", "我", "ben", "меня", "mij", "мене"},
STR_SELF: {"self", "mi", "mía", "moi", "mein", "ja", "自己", "kendim", "себя", "zelf", "себе"},
STR_VOLUME_LOW: {"low", "basso", "bajo", "bas", "niedrig", "niski", "低", "düşük", "низкий", "laag", "на мінімум"},
STR_VOLUME_QUIET: {"quiet", "poco rumoroso", "tranquilo", "silencieux", "ruhig", "cichy", "安静", "sessiz", "тихо", "rustig", "тихо"},
STR_VOLUME_MEDIUM_LOW: {"medium low", "medio basso", "medio-bajo", "moyen-doux", "mittelschwer", "średnio niski", "中低", "orta düşük", "ниже среднего", "middel laag", "нижче середнього"},
STR_VOLUME_MEDIUM: {"medium", "medio", "medio", "moyen", "mittel", "średni", "中档", "orta", "средний", "medium", "середню"},
STR_VOLUME_NORMAL: {"normal", "normale", "normal", "normal", "normal", "normalny", "正常", "normal", "нормальный", "normaal", "нормальна"},
STR_VOLUME_REGULAR: {"regular", "regolare", "regular", "régulier", "regulär", "zwyczajny", "标准", "düzenli", "обычный", "normaal", "звичайна"},
STR_VOLUME_MEDIUM_HIGH: {"medium high", "medio alto", "medio-alto", "moyen-élevé", "mittelhoch", "średno wysoki", "中高", "orta yüksek", "выше среднего", "gemiddeld hoog", "вище середнього"},
STR_VOLUME_HIGH: {"high", "alto", "alto", "élevé", "hoch", "wysoki", "高档", "yüksek", "высокий", "hoog", "висока"},
STR_VOLUME_LOUD: {"loud", "rumoroso", "fuerte", "fort", "laut", "głośny", "高", "gürültülü", "громкий", "luidruchtig", "гучний"},
STR_VOLUME_MUTE: {"mute", "muto", "mudo", "", "stumm", "wyciszony", "静音", "sessiz", "немой", "stom", "німий"},
STR_VOLUME_NOTHING: {"nothing", "nessuno", "nada", "rien", "nichts", "nic", "无声", "hiçbir şey", "", "Niets", "нічого"},
STR_VOLUME_SILENT: {"silent", "silenzioso", "silencio", "silencieux", "still", "cichy", "悄声", "sessiz", "тихий", "stil", "тихий"},
STR_VOLUME_OFF: {"off", "spento", "apagado", "éteindre", "aus", "wyłączony", "关闭", "kapalı", "выключить", "uit", "вимкнути"},
STR_VOLUME_ZERO: {"zero", "zero", "cero", "zéro", "null", "zero", "零", "sıfır", "ноль", "nul", "нуль"},
STR_NAME_IS: {" is ", " è ", " es ", " est ", " ist ", " to ", "到", " olan ", "", " is ", ""},
STR_NAME_IS2: {"'s", "sono ", "soy ", "suis ", "bin ", " się ", "的", "'nin", "", "", ""},
STR_NAME_IS3: {"names", " chiamo ", " llamo ", "appelle ", "werde", "imię", "名字", "adlar", "имена", "namen", "імена"},
STR_FOR: {" for ", " per ", " para ", " pour ", " für ", " dla ", "给", " için ", "для", " voor ", " для "},
// key en-US it-IT es-ES fr-FR de-DE pl-PL tr-TR ru-RU nt-NL uk-UA vi-VN
STR_WEATHER_IN: {" in ", " a ", " en ", " en ", " in ", " w ", " 的 ", " içinde ", " в ", " in ", " в ", " ở "},
STR_WEATHER_FORECAST: {"forecast", "previsioni", "pronóstico", "prévisions", "wettervorhersage", "prognoza", "预报", "tahmin", "прогноз", "voorspelling", "прогноз", "dự báo"},
STR_WEATHER_TOMORROW: {"tomorrow", "domani", "mañana", "demain", "morgen", "jutro", "明天", "yarın", "завтра", "morgen", "завтра", "ngày mai"},
STR_WEATHER_THE_DAY_AFTER_TOMORROW: {"day after tomorrow", "dopodomani", "el día después de mañana", "lendemain de demain", "am tag nach morgen", "pojutrze", "后天", "yarından sonra", "послезавтра", "overmorgen", "післязавтра", "ngày mốt"},
STR_WEATHER_TONIGHT: {"tonight", "stasera", "esta noche", "ce soir", "heute abend", "dziś wieczorem", "今晚", "bu gece", "сегодня вечером", "vanavond", "сьогодні ввечері", "tối nay"},
STR_WEATHER_THIS_AFTERNOON: {"afternoon", "pomeriggio", "esta tarde", "après-midi", "heute nachmittag", "popołudniu", "下午", "bu öğleden sonra", "после полудня", "middag", "після полудня", "chiều nay"},
STR_EYE_COLOR_PURPLE: {"purple", "lilla", "violeta", "violet", "violett", "fioletowy", "紫色", "mor", "фиолетовый", "paars", "фіолетовий", "màu tím"},
STR_EYE_COLOR_BLUE: {"blue", "blu", "azul", "bleu", "blau", "niebieski", "蓝色", "mavi", "голубой", "blauw", "голубий", "màu xanh"},
STR_EYE_COLOR_SAPPHIRE: {"sapphire", "zaffiro", "zafiro", "saphir", "saphir", "szafir", "天蓝", "safir", "синий", "saffier", "синій", "màu ngọc bích"},
STR_EYE_COLOR_YELLOW: {"yellow", "giallo", "amarillo", "jaune", "gelb", "żółty", "黄色", "sarı", "жёлтый", "geel", "жовтий", "màu vàng"},
STR_EYE_COLOR_TEAL: {"teal", "verde acqua", "verde azulado", "sarcelle", "blaugrün", "morski", "浅绿", "teal", "бирюзовый", "wintertaling", "бірюзовий", "xanh lá cây"},
STR_EYE_COLOR_TEAL2: {"tell", "acquamarina", "aguamarina", "acquamarina", "acquamarina", "akwamaryn", "蓝绿", "turkuaz", "аквамарин", "vertellen", "аквамариновий", "màu xanh ngọc"},
STR_EYE_COLOR_GREEN: {"green", "verde", "verde", "vert", "grün", "zielony", "绿色", "yeşil", "зелёный", "groente", "зелений", "màu xanh lá"},
STR_EYE_COLOR_ORANGE: {"orange", "arancio", "naranja", "orange", "orange", "pomarańczowy", "橙色", "turuncu", "оранжевый", "oranje", "оранжевий", "màu cam"},
STR_ME: {"me", "me", "me", "moi", "mir", "mnie", "我", "ben", "меня", "mij", "мене", "tôi"},
STR_SELF: {"self", "mi", "mía", "moi", "mein", "ja", "自己", "kendim", "себя", "zelf", "себе", "bản thân"},
STR_VOLUME_LOW: {"low", "basso", "bajo", "bas", "niedrig", "niski", "低", "düşük", "низкий", "laag", "на мінімум", "thấp"},
STR_VOLUME_QUIET: {"quiet", "poco rumoroso", "tranquilo", "silencieux", "ruhig", "cichy", "安静", "sessiz", "тихо", "rustig", "тихо", "yên tĩnh"},
STR_VOLUME_MEDIUM_LOW: {"medium low", "medio basso", "medio-bajo", "moyen-doux", "mittelschwer", "średnio niski", "中低", "orta düşük", "ниже среднего", "middel laag", "нижче середнього", "vừa thấp"},
STR_VOLUME_MEDIUM: {"medium", "medio", "medio", "moyen", "mittel", "średni", "中档", "orta", "средний", "medium", "середню", "vừa"},
STR_VOLUME_NORMAL: {"normal", "normale", "normal", "normal", "normal", "normalny", "正常", "normal", "нормальный", "normaal", "нормальна", "bình thường"},
STR_VOLUME_REGULAR: {"regular", "regolare", "regular", "régulier", "regulär", "zwyczajny", "标准", "düzenli", "обычный", "normaal", "звичайна", "thông thường"},
STR_VOLUME_MEDIUM_HIGH: {"medium high", "medio alto", "medio-alto", "moyen-élevé", "mittelhoch", "średno wysoki", "中高", "orta yüksek", "выше среднего", "gemiddeld hoog", "вище середнього", "vừa cao"},
STR_VOLUME_HIGH: {"high", "alto", "alto", "élevé", "hoch", "wysoki", "高档", "yüksek", "высокий", "hoog", "висока", "cao"},
STR_VOLUME_LOUD: {"loud", "rumoroso", "fuerte", "fort", "laut", "głośny", "高", "gürültülü", "громкий", "luidruchtig", "гучний", "to"},
STR_VOLUME_MUTE: {"mute", "muto", "mudo", "", "stumm", "wyciszony", "静音", "sessiz", "немой", "stom", "німий", "im lặng"},
STR_VOLUME_NOTHING: {"nothing", "nessuno", "nada", "rien", "nichts", "nic", "无声", "hiçbir şey", "", "Niets", "нічого", "không có gì"},
STR_VOLUME_SILENT: {"silent", "silenzioso", "silencio", "silencieux", "still", "cichy", "悄声", "sessiz", "тихий", "stil", "тихий", "yên lặng"},
STR_VOLUME_OFF: {"off", "spento", "apagado", "éteindre", "aus", "wyłączony", "关闭", "kapalı", "выключить", "uit", "вимкнути", "tắt"},
STR_VOLUME_ZERO: {"zero", "zero", "cero", "zéro", "null", "zero", "零", "sıfır", "ноль", "nul", "нуль", "không"},
STR_NAME_IS: {" is ", " è ", " es ", " est ", " ist ", " to ", "到", " olan ", "", " is ", "", " là "},
STR_NAME_IS2: {"'s", "sono ", "soy ", "suis ", "bin ", " się ", "的", "'nin", "", "", "", "của"},
STR_NAME_IS3: {"names", " chiamo ", " llamo ", "appelle ", "werde", "imię", "名字", "adlar", "имена", "namen", "імена", "tên"},
STR_FOR: {" for ", " per ", " para ", " pour ", " für ", " dla ", "给", " için ", "для", " voor ", " для ", " cho "},
}

func GetText(key string) string {
Expand All @@ -140,6 +140,8 @@ func GetText(key string) string {
return data[9]
} else if vars.APIConfig.STT.Language == "uk-UA" {
return data[10]
} else if vars.APIConfig.STT.Language == "vi-VN" {
return data[11]
}
}
return data[0]
Expand Down
1 change: 1 addition & 0 deletions chipper/webroot/initial.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ <h3>Speech-to-Text Language</h3>
<option value="ru-RU">Russian (RU)</option>
<option value="nt-NL">Dutch (NL)</option>
<option value="uk-UA">Ukrainian (UA)</option>
<option value="vi-VN">VietNamese (VN)</option>
</select>
</div>
<hr />
Expand Down
Loading

0 comments on commit 45427c9

Please sign in to comment.