Skip to content

Commit

Permalink
Merge pull request #300 from Qerced/main
Browse files Browse the repository at this point in the history
Added russian language [ru-RU] for STT configuration
  • Loading branch information
kercre123 authored Mar 26, 2024
2 parents 671f940 + 7e0e123 commit 5e8e166
Show file tree
Hide file tree
Showing 6 changed files with 264 additions and 38 deletions.
218 changes: 218 additions & 0 deletions chipper/intent-data/ru-RU.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
[
{
"name" : "intent_names_username_extend",
"keyphrases": ["имена", "назови имена" ]
},
{
"name": "intent_weather_extend",
"keyphrases" : ["погода", "погода завтра", "какая погода" ]
},
{
"name": "intent_names_ask",
"keyphrases" : ["как меня зовут", "моё имя", "кто я"]
},
{
"name": "intent_imperative_eyecolor",
"keyphrases" : ["глаз", "глаза", "измени цвет глаз", "поменяй цвет"]
},
{
"name": "intent_character_age",
"keyphrases" : ["сколько тебе лет" ]
},
{
"name": "intent_explore_start",
"keyphrases" : ["начни исследовать"]
},
{
"name": "intent_system_charger",
"keyphrases" : ["зарядка", "дом", "база", "найди зарядку", "найди базу", "иди на зарядку", "иди на базу"]
},
{
"name": "intent_system_sleep",
"keyphrases" : ["спать", "иди спать" ]
},
{
"name": "intent_greeting_goodmorning",
"keyphrases" : ["доброе утро", "утро" ]
},
{
"name": "intent_greeting_goodnight",
"keyphrases" : ["спокойной ночи", "пора спать" ]
},
{
"name": "intent_greeting_goodbye",
"keyphrases" : ["пока", "досвидание", "я ушёл" ]
},
{
"name": "intent_seasonal_happynewyear",
"keyphrases" : ["фейрверк", "новый год", "салют" ]
},
{
"name": "intent_seasonal_happyholidays",
"keyphrases" : ["праздник" ]
},
{
"name": "intent_amazon_signin",
"keyphrases" : ["алекса" ]
},
{
"name": "intent_amazon_signin",
"keyphrases" : ["алекса" ]
},
{
"name": "intent_imperative_forward",
"keyphrases" : ["вперед", "едь вперёд", "двигайся вперёд" ]
},
{
"name": "intent_imperative_turnaround",
"keyphrases" : ["повернись", "обернись", "оглянись", "развернись" ]
},
{
"name": "intent_imperative_turnleft",
"keyphrases" : ["налево", "лево", "влево"]
},
{
"name": "intent_imperative_turnright",
"keyphrases" : ["направо", "право", "вправо" ]
},
{
"name": "intent_play_rollcube",
"keyphrases" : ["кати куб", "кати кубик", "покатай куб", "покатай кубик" ]
},
{
"name": "intent_play_popawheelie",
"keyphrases" : ["встань на куб", "встань на кубик" ]
},
{
"name": "intent_play_fistbump",
"keyphrases" : ["дай пять", "пятюня", "дай кулачок" ]
},
{
"name": "intent_play_blackjack",
"keyphrases" : ["карты", "играть", "играем в карты", "давай играть", "давай сыграем" ]
},
{
"name": "intent_imperative_affirmative",
"keyphrases" : ["да", "давай", "конечно" ]
},
{
"name": "intent_imperative_negative",
"keyphrases" : ["нет" ]
},
{
"name": "intent_photo_take_extend",
"keyphrases" : ["фото", "селфи", "сделай фото", "сфотографируй" ]
},
{
"name": "intent_imperative_praise",
"keyphrases" : ["красавчик", "молодец", "хороший робот" ]
},
{
"name": "intent_imperative_abuse",
"keyphrases" : ["это плохо", "отстой", "плохой робот" ]
},
{
"name": "intent_imperative_apologize",
"keyphrases" : ["извини", "прошу прощения", "мне жаль" ]
},
{
"name": "intent_imperative_backup",
"keyphrases" : ["назад", "двигайся назад", "едь назад" ]
},
{
"name": "intent_imperative_volumedown",
"keyphrases" : ["убавь звук", "убавь громкость", "тише громкость" ]
},
{
"name": "intent_imperative_volumeup",
"keyphrases" : ["прибавь звук", "прибавь громкось", "громче" ]
},
{
"name": "intent_imperative_lookatme",
"keyphrases" : ["смотри на меня", "посмотри на меня", "взгляни на меня" ]
},
{
"name": "intent_imperative_volumelevel_extend",
"keyphrases" : ["громкость", "уровень громкости" ]
},
{
"name": "intent_imperative_shutup",
"keyphrases" : ["заткнись" ]
},
{
"name": "intent_greeting_hello",
"keyphrases" : ["привет", "здравствуй", "рад тебя видеть" ]
},
{
"name": "intent_imperative_come",
"keyphrases" : ["ко мне", "иди ко мне", "иди сюда" ]
},
{
"name": "intent_imperative_love",
"keyphrases" : ["люблю тебя" ]
},
{
"name": "intent_knowledge_promptquestion",
"keyphrases" : ["вопрос", "у меня есть вопрос" ]
},
{
"name": "intent_clock_checktimer",
"keyphrases" : ["проверь таймер" ]
},
{
"name": "intent_global_stop_extend",
"keyphrases" : ["останови таймер", "отмени таймер", "выключи таймер" ]
},
{
"name": "intent_clock_settimer_extend",
"keyphrases" : ["таймер", "поставь таймер", "установи таймер" ]
},
{
"name": "intent_clock_time",
"keyphrases" : ["время", "который час", "сколько время", "который сейчас час" ]
},
{
"name": "intent_imperative_quiet",
"keyphrases" : ["тихо", "прекрати", "будь тише" ]
},
{
"name": "intent_imperative_dance",
"keyphrases" : ["танец", "танцуй", "давай танцевать" ]
},
{
"name": "intent_play_pickupcube",
"keyphrases" : ["возьми кубик", "подбери кубик", "поднеми кубик" ]
},
{
"name": "intent_imperative_fetchcube",
"keyphrases" : ["дай кубик", "принеси мне", "неси мне", "принеси свой кубик" ]
},
{
"name": "intent_imperative_findcube",
"keyphrases" : ["если кубик", "найди кубик", "ищи кубик", "где твой кубик", "найди свой кубик" ]
},
{
"name": "intent_play_anytrick",
"keyphrases" : ["трюк", "сделай трюк" ]
},
{
"name": "intent_message_recordmessage_extend",
"keyphrases" : ["запиши" ]
},
{
"name": "intent_message_playmessage_extend",
"keyphrases" : ["воспроизведи сообщение" ]
},
{
"name": "intent_blackjack_hit",
"keyphrases" : ["ещё", "ещё карту"]
},
{
"name": "intent_blackjack_stand",
"keyphrases" : ["хватит" ]
},
{
"name": "intent_play_keepaway",
"keyphrases": ["расстояние", "расстоянии", "состояние" ]
}
]
6 changes: 4 additions & 2 deletions chipper/pkg/wirepod/localization/download.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ import (
"github.com/kercre123/wire-pod/chipper/pkg/vars"
)

var URLPrefix string = "https://github.com/kercre123/vosk-models/raw/main/"
// var URLPrefix string = "https://github.com/kercre123/vosk-models/raw/main/"

//var URLPrefix string = "https://alphacephei.com/vosk/models/"
var URLPrefix string = "https://alphacephei.com/vosk/models/"

var DownloadStatus string = "not downloading"

Expand All @@ -50,6 +50,8 @@ func DownloadVoskModel(language string) {
filename = filename + "cn-0.22.zip"
} else if language == "tr-TR" {
filename = filename + "tr-0.3.zip"
} else if language == "ru-RU" {
filename = filename + "ru-0.22.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"}
var ValidVoskModels []string = []string{"en-US", "it-IT", "es-ES", "fr-FR", "de-DE", "pt-BR", "pl-PL", "zh-CN", "tr-TR", "ru-RU"}

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
STR_WEATHER_IN: {" in ", " a ", " en ", " en ", " in ", " w ", " 的 ", " içinde "},
STR_WEATHER_FORECAST: {"forecast", "previsioni", "pronóstico", "prévisions", "wettervorhersage", "prognoza", "预报", "tahmin"},
STR_WEATHER_TOMORROW: {"tomorrow", "domani", "mañana", "demain", "morgen", "jutro", "明天", "yarın"},
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"},
STR_WEATHER_TONIGHT: {"tonight", "stasera", "esta noche", "ce soir", "heute abend", "dziś wieczorem", "今晚", "bu gece"},
STR_WEATHER_THIS_AFTERNOON: {"afternoon", "pomeriggio", "esta tarde", "après-midi", "heute nachmittag", "popołudniu", "下午", "bu öğleden sonra"},
STR_EYE_COLOR_PURPLE: {"purple", "lilla", "violeta", "violet", "violett", "fioletowy", "紫色", "mor"},
STR_EYE_COLOR_BLUE: {"blue", "blu", "azul", "bleu", "blau", "niebieski", "蓝色", "mavi"},
STR_EYE_COLOR_SAPPHIRE: {"sapphire", "zaffiro", "zafiro", "saphir", "saphir", "szafir", "天蓝", "safir"},
STR_EYE_COLOR_YELLOW: {"yellow", "giallo", "amarillo", "jaune", "gelb", "żółty", "黄色", "sarı"},
STR_EYE_COLOR_TEAL: {"teal", "verde acqua", "verde azulado", "sarcelle", "blaugrün", "morski", "浅绿", "teal"},
STR_EYE_COLOR_TEAL2: {"tell", "acquamarina", "aguamarina", "acquamarina", "acquamarina", "akwamaryn", "蓝绿", "turkuaz"},
STR_EYE_COLOR_GREEN: {"green", "verde", "verde", "vert", "grün", "zielony", "绿色", "yeşil"},
STR_EYE_COLOR_ORANGE: {"orange", "arancio", "naranja", "orange", "orange", "pomarańczowy", "橙色", "turuncu"},
STR_ME: {"me", "me", "me", "moi", "mir", "mnie", "我", "ben"},
STR_SELF: {"self", "mi", "mía", "moi", "mein", "ja", "自己", "kendim"},
STR_VOLUME_LOW: {"low", "basso", "bajo", "bas", "niedrig", "niski", "低", "düşük"},
STR_VOLUME_QUIET: {"quiet", "poco rumoroso", "tranquilo", "silencieux", "ruhig", "cichy", "安静", "sessiz"},
STR_VOLUME_MEDIUM_LOW: {"medium low", "medio basso", "medio-bajo", "moyen-doux", "mittelschwer", "średnio niski", "中低", "orta düşük"},
STR_VOLUME_MEDIUM: {"medium", "medio", "medio", "moyen", "mittel", "średni", "中档", "orta"},
STR_VOLUME_NORMAL: {"normal", "normale", "normal", "normal", "normal", "normalny", "正常", "normal"},
STR_VOLUME_REGULAR: {"regular", "regolare", "regular", "régulier", "regulär", "zwyczajny", "标准", "düzenli"},
STR_VOLUME_MEDIUM_HIGH: {"medium high", "medio alto", "medio-alto", "moyen-élevé", "mittelhoch", "średno wysoki", "中高", "orta yüksek"},
STR_VOLUME_HIGH: {"high", "alto", "alto", "élevé", "hoch", "wysoki", "高档", "yüksek"},
STR_VOLUME_LOUD: {"loud", "rumoroso", "fuerte", "fort", "laut", "głośny", "高", "gürültülü"},
STR_VOLUME_MUTE: {"mute", "muto", "mudo", "", "stumm", "wyciszony", "静音", "sessiz"},
STR_VOLUME_NOTHING: {"nothing", "nessuno", "nada", "rien", "nichts", "nic", "无声", "hiçbir şey"},
STR_VOLUME_SILENT: {"silent", "silenzioso", "silencio", "silencieux", "still", "cichy", "悄声", "sessiz"},
STR_VOLUME_OFF: {"off", "spento", "apagado", "éteindre", "aus", "wyłączony", "关闭", "kapalı"},
STR_VOLUME_ZERO: {"zero", "zero", "cero", "zéro", "null", "zero", "零", "sıfır"},
STR_NAME_IS: {" is ", " è ", " es ", " est ", " ist ", " to ", "到", " olan "},
STR_NAME_IS2: {"'s", "sono ", "soy ", "suis ", "bin ", " się ", "的", "'nin"},
STR_NAME_IS3: {"names", " chiamo ", " llamo ", "appelle ", "werde", "imię", "名字", "adlar"},
STR_FOR: {" for ", " per ", " para ", " pour ", " für ", " dla ", "给", " için "},
// key en-US it-IT es-ES fr-FR de-DE pl-PL tr-TR ru-RU
STR_WEATHER_IN: {" in ", " a ", " en ", " en ", " in ", " w ", " 的 ", " içinde ", "в"},
STR_WEATHER_FORECAST: {"forecast", "previsioni", "pronóstico", "prévisions", "wettervorhersage", "prognoza", "预报", "tahmin", "прогноз"},
STR_WEATHER_TOMORROW: {"tomorrow", "domani", "mañana", "demain", "morgen", "jutro", "明天", "yarın", "завтра"},
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", "послезавтра"},
STR_WEATHER_TONIGHT: {"tonight", "stasera", "esta noche", "ce soir", "heute abend", "dziś wieczorem", "今晚", "bu gece", "сегодня вечером"},
STR_WEATHER_THIS_AFTERNOON: {"afternoon", "pomeriggio", "esta tarde", "après-midi", "heute nachmittag", "popołudniu", "下午", "bu öğleden sonra", "после полудня"},
STR_EYE_COLOR_PURPLE: {"purple", "lilla", "violeta", "violet", "violett", "fioletowy", "紫色", "mor", "фиолетовый"},
STR_EYE_COLOR_BLUE: {"blue", "blu", "azul", "bleu", "blau", "niebieski", "蓝色", "mavi", "голубой"},
STR_EYE_COLOR_SAPPHIRE: {"sapphire", "zaffiro", "zafiro", "saphir", "saphir", "szafir", "天蓝", "safir", "синий"},
STR_EYE_COLOR_YELLOW: {"yellow", "giallo", "amarillo", "jaune", "gelb", "żółty", "黄色", "sarı", "жёлтый"},
STR_EYE_COLOR_TEAL: {"teal", "verde acqua", "verde azulado", "sarcelle", "blaugrün", "morski", "浅绿", "teal", "бирюзовый"},
STR_EYE_COLOR_TEAL2: {"tell", "acquamarina", "aguamarina", "acquamarina", "acquamarina", "akwamaryn", "蓝绿", "turkuaz", "аквамарин"},
STR_EYE_COLOR_GREEN: {"green", "verde", "verde", "vert", "grün", "zielony", "绿色", "yeşil", "зелёный"},
STR_EYE_COLOR_ORANGE: {"orange", "arancio", "naranja", "orange", "orange", "pomarańczowy", "橙色", "turuncu", "оранжевый"},
STR_ME: {"me", "me", "me", "moi", "mir", "mnie", "我", "ben", "меня"},
STR_SELF: {"self", "mi", "mía", "moi", "mein", "ja", "自己", "kendim", "себя"},
STR_VOLUME_LOW: {"low", "basso", "bajo", "bas", "niedrig", "niski", "低", "düşük", "низкий"},
STR_VOLUME_QUIET: {"quiet", "poco rumoroso", "tranquilo", "silencieux", "ruhig", "cichy", "安静", "sessiz", "тихо"},
STR_VOLUME_MEDIUM_LOW: {"medium low", "medio basso", "medio-bajo", "moyen-doux", "mittelschwer", "średnio niski", "中低", "orta düşük", "ниже среднего"},
STR_VOLUME_MEDIUM: {"medium", "medio", "medio", "moyen", "mittel", "średni", "中档", "orta", "средний"},
STR_VOLUME_NORMAL: {"normal", "normale", "normal", "normal", "normal", "normalny", "正常", "normal", "нормальный"},
STR_VOLUME_REGULAR: {"regular", "regolare", "regular", "régulier", "regulär", "zwyczajny", "标准", "düzenli", "обычный"},
STR_VOLUME_MEDIUM_HIGH: {"medium high", "medio alto", "medio-alto", "moyen-élevé", "mittelhoch", "średno wysoki", "中高", "orta yüksek", "выше среднего"},
STR_VOLUME_HIGH: {"high", "alto", "alto", "élevé", "hoch", "wysoki", "高档", "yüksek", "высокий"},
STR_VOLUME_LOUD: {"loud", "rumoroso", "fuerte", "fort", "laut", "głośny", "高", "gürültülü", "громкий"},
STR_VOLUME_MUTE: {"mute", "muto", "mudo", "", "stumm", "wyciszony", "静音", "sessiz", "немой"},
STR_VOLUME_NOTHING: {"nothing", "nessuno", "nada", "rien", "nichts", "nic", "无声", "hiçbir şey"},
STR_VOLUME_SILENT: {"silent", "silenzioso", "silencio", "silencieux", "still", "cichy", "悄声", "sessiz", "тихий"},
STR_VOLUME_OFF: {"off", "spento", "apagado", "éteindre", "aus", "wyłączony", "关闭", "kapalı", "выключить"},
STR_VOLUME_ZERO: {"zero", "zero", "cero", "zéro", "null", "zero", "零", "sıfır", "ноль"},
STR_NAME_IS: {" is ", " è ", " es ", " est ", " ist ", " to ", "到", " olan ", ""},
STR_NAME_IS2: {"'s", "sono ", "soy ", "suis ", "bin ", " się ", "的", "'nin", ""},
STR_NAME_IS3: {"names", " chiamo ", " llamo ", "appelle ", "werde", "imię", "名字", "adlar", "имена"},
STR_FOR: {" for ", " per ", " para ", " pour ", " für ", " dla ", "给", " için ", "для"},
}

func GetText(key string) string {
Expand All @@ -134,6 +134,8 @@ func GetText(key string) string {
return data[6]
} else if vars.APIConfig.STT.Language == "tr-TR" {
return data[7]
} else if vars.APIConfig.STT.Language == "ru-RU" {
return data[8]
}
}
return data[0]
Expand Down
1 change: 1 addition & 0 deletions chipper/webroot/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ <h2>STT Language</h2>
<option value="pl-PL">Polish (PL)</option>
<option value="tr-TR">Turkish (TR)</option>
<option value="zh-CN">Chinese (CN)</option>
<option value="ru-RU">Russian (RU)</option>
</select>
</div>
<div class="center">
Expand Down
1 change: 1 addition & 0 deletions chipper/webroot/initial.html
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ <h2>STT Language</h2>
<option value="pl-PL">Polish (PL)</option>
<option value="tr-TR">Turkish (TR)</option>
<option value="zh-CN">Chinese (CN)</option>
<option value="ru-RU">Russian (RU)</option>
</select>
</div>
<hr>
Expand Down
2 changes: 2 additions & 0 deletions chipper/webroot/setup.html
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,7 @@ <h3>Speech-To-Text Language</h3>
<option value="pl-PL">Polish</option>
<option value="tr-TR">Turkish</option>
<option value="pl-PL">Chinese</option>
<option value="ru-RU">Russian</option>
</select><br>
</form>
<div class="center">
Expand Down Expand Up @@ -184,6 +185,7 @@ <h2>STT Language</h2>
<option value="pl-PL">Polish (PL)</option>
<option value="tr-TR">Turkish (TR)</option>
<option value="zh-CN">Chinese (CN)</option>
<option value="ru-RU">Russian (RU)</option>
</select>
</div>
<div class="center">
Expand Down

0 comments on commit 5e8e166

Please sign in to comment.