Commands/voices multilanguage support + Ukranian vosk model added

This commit is contained in:
Priler 2026-01-13 02:21:59 +05:00
parent e2370dc046
commit 11c2500d9c
67 changed files with 214473 additions and 293 deletions

View file

@ -2,51 +2,90 @@
id = "browser_open"
action = "ahk"
exe_path = "ahk/Run browser.exe"
sounds = ["ok1", "ok2", "ok3"]
phrases = [
sounds.ru = ["ok1", "ok2", "ok3", "ok4"]
sounds.en = ["ok1", "ok2", "ok3"]
sounds.ua = ["ok1", "ok2", "ok3", "ok4", "ok5", "ok6"]
phrases.ru = [
"открой браузер",
"запусти браузер",
"открой хром",
"запусти хром",
"открой гугл хром",
"запусти гугл хром",
"включи браузер",
"браузер открой",
"нужен браузер",
"мне нужен браузер",
]
phrases.en = [
"open browser",
"launch browser",
"open chrome",
"launch chrome",
"start browser",
"i need browser",
]
phrases.ua = [
"відкрий браузер",
"запусти браузер",
"відкрий хром",
"запусти хром",
"увімкни браузер",
"потрібен браузер",
]
[[commands]]
id = "browser_close"
action = "ahk"
exe_path = "ahk/Close browser.exe"
sounds = ["ok1", "ok2", "ok3", "ok4"]
phrases = [
sounds.ru = ["ok1", "ok2", "ok3", "ok4"]
sounds.en = ["ok1", "ok2", "ok3"]
sounds.ua = ["ok1", "ok2", "ok3", "ok4", "ok5", "ok6"]
phrases.ru = [
"закрой браузер",
"закрой все браузеры",
"выключи браузер",
"убери браузер",
"закрой хром",
"выключи хром",
"закрой гугл хром",
"браузер закрой",
"сверни браузер",
]
phrases.en = [
"close browser",
"close all browsers",
"shut down browser",
"exit browser",
]
phrases.ua = [
"закрий браузер",
"закрий всі браузери",
"вимкни браузер",
]
[[commands]]
id = "open_google"
action = "ahk"
exe_path = "ahk/Run website.exe"
exe_args = ["http://google.com"]
sounds = ["ok1", "ok2", "ok3", "ok4"]
phrases = [
sounds.ru = ["ok1", "ok2", "ok3", "ok4"]
sounds.en = ["ok1", "ok2", "ok3"]
sounds.ua = ["ok1", "ok2", "ok3", "ok4", "ok5", "ok6"]
phrases.ru = [
"открой гугл",
"открой гугл поиск",
"запусти гугл",
"перейди в гугл",
"перейди на гугл",
"открой поисковик",
"зайди в гугл",
"гугл поиск",
"поиск гугл",
]
]
phrases.en = [
"open google",
"google search",
"launch google",
"go to google",
]
phrases.ua = [
"відкрий гугл",
"відкрий гугл пошук",
"запусти гугл",
"зайди в гугл",
]

View file

@ -0,0 +1,19 @@
; Rerun as admin, if required
If Not A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%"
ExitApp
}
; set partial title matching mode
SetTitleMatchMode, 2
; list of all browsers to close
GroupAdd, browsers, ahk_class MozillaWindowClass
GroupAdd, browsers, ahk_class IEFrame
GroupAdd, browsers, ahk_exe msedge.exe
GroupAdd, browsers, ahk_exe chrome.exe
GroupAdd, browsers, ahk_exe firefox.exe
; kill them all
Winclose, ahk_group browsers

View file

@ -0,0 +1,11 @@
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
RegRead, BrowserKeyName, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice, Progid
RegRead, BrowserFullCommand, HKEY_CLASSES_ROOT, %BrowserKeyName%\shell\open\command
StringGetPos, pos, BrowserFullCommand, ",,1
pos := --pos
StringMid, BrowserPathandEXE, BrowserFullCommand, 2, %pos%
Run, % BrowserPathandEXE

View file

@ -0,0 +1,11 @@
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#Include _include.ahk
args = %1%
path := DefaultBrowser()
Run, %path% %args%

View file

@ -0,0 +1,19 @@
DefaultBrowser() {
; Find the Registry key name for the default browser
RegRead, BrowserKeyName, HKEY_CURRENT_USER, Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice, Progid
; Find the executable command associated with the above Registry key
RegRead, BrowserFullCommand, HKEY_CLASSES_ROOT, %BrowserKeyName%\shell\open\command
; The above RegRead will return the path and executable name of the brower contained within quotes and optional parameters
; We only want the text contained inside the first set of quotes which is the path and executable
; Find the ending quote position (we know the beginning quote is in position 0 so start searching at position 1)
StringGetPos, pos, BrowserFullCommand, ",,1
; Decrement the found position by one to work correctly with the StringMid function
pos := --pos
; Extract and return the path and executable of the browser
StringMid, BrowserPathandEXE, BrowserFullCommand, 2, %pos%
Return BrowserPathandEXE
}

View file

@ -0,0 +1,18 @@
[[commands]]
id = "weather"
action = "cli"
cli_cmd = "weather.py"
[commands.phrases]
ru = [
"какая погода",
"погода"
]
en = [
"what's the weather",
"weather"
]
[commands.sounds]
ru = ["weather_ru_1", "weather_ru_2"]
en = ["weather_en_1", "weather_en_2"]

View file

@ -4,7 +4,7 @@ name = "Jarvis Howdy"
author = "Abraham (Priler)"
languages = ["ru"]
[reactions]
[reactions.ru]
# app startup
greet = ["run", "ready"]

View file

@ -4,7 +4,7 @@ name = "Jarvis OG"
author = "Abraham (Priler)"
languages = ["ru"]
[reactions]
[reactions.ru]
# app startup
greet = ["run"]

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -2,9 +2,9 @@
id = "jarvis-remaster"
name = "Jarvis New"
author = "Abraham (Priler)"
languages = ["ru", "en"]
languages = ["ru", "ua", "en"]
[reactions]
[reactions.ru]
# app startup
greet = ["greet1"]
greet_morning = ["greet_morning"]
@ -27,5 +27,61 @@ thanks = ["thanks"]
# error
error = []
# goodbye
goodbye = []
[reactions.ua]
# app startup
greet = []
greet_morning = ["greet_morning1", "greet_morning2", "greet_morning3"]
greet_day = ["greet_day1", "greet_day2"]
greet_evening = ["greet_evening1", "greet_evening2"]
greet_night = ["greet_night1", "greet_night2"]
# wake word detected
reply = ["reply1", "reply2", "reply3", "reply4", "reply5"]
# command executed
ok = ["ok1", "ok2", "ok3", "ok4", "ok5", "ok6"]
# command not found
not_found = []
# thanks
thanks = []
# error
error = []
# goodbye
goodbye = []
[reactions.en]
# app startup
greet = []
greet_morning = ["greet_morning"]
greet_day = ["greet_day"]
greet_evening = ["greet_evening"]
greet_night = ["greet_night"]
# wake word detected
reply = ["reply1", "reply2", "reply3", "reply4", "reply5"]
# command executed
ok = ["ok1", "ok2", "ok3", "ok4", "ok5", "ok6"]
# command not found
not_found = []
# thanks
thanks = []
# error
error = []
# goodbye
goodbye = []

View file

@ -0,0 +1,176 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. this License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

View file

@ -0,0 +1,11 @@
# config for high-resolution MFCC features, intended for neural network training
# Note: we keep all cepstra, so it has the same info as filterbank features,
# but MFCC is more easily compressible (because less correlated) which is why
# we prefer this method.
--use-energy=false # use average of log energy, not energy.
--sample-frequency=16000
--num-mel-bins=40 # similar to Google's setup.
--num-ceps=40 # there is no dimensionality reduction.
--low-freq=20 # low cutoff frequency for mel bins... this is high-bandwidth data, so
# there might be some information at the low end.
--high-freq=-400 # high cutoff frequently, relative to Nyquist of 8000 (=7600)

View file

@ -0,0 +1,10 @@
--min-active=200
--max-active=3000
--beam=13.0
--lattice-beam=2.0
--acoustic-scale=1.0
--frame-subsampling-factor=3
--endpoint.silence-phones=1:2:3:4:5:6:7:8:9:10
--endpoint.rule2.min-trailing-silence=0.5
--endpoint.rule3.min-trailing-silence=1.0
--endpoint.rule4.min-trailing-silence=2.0

View file

@ -0,0 +1,6 @@
28121
28122
28123
28124
28125
28126

View file

@ -0,0 +1,386 @@
1 nonword
2 begin
3 end
4 internal
5 singleton
6 nonword
7 begin
8 end
9 internal
10 singleton
11 begin
12 end
13 internal
14 singleton
15 begin
16 end
17 internal
18 singleton
19 begin
20 end
21 internal
22 singleton
23 begin
24 end
25 internal
26 singleton
27 begin
28 end
29 internal
30 singleton
31 begin
32 end
33 internal
34 singleton
35 begin
36 end
37 internal
38 singleton
39 begin
40 end
41 internal
42 singleton
43 begin
44 end
45 internal
46 singleton
47 begin
48 end
49 internal
50 singleton
51 begin
52 end
53 internal
54 singleton
55 begin
56 end
57 internal
58 singleton
59 begin
60 end
61 internal
62 singleton
63 begin
64 end
65 internal
66 singleton
67 begin
68 end
69 internal
70 singleton
71 begin
72 end
73 internal
74 singleton
75 begin
76 end
77 internal
78 singleton
79 begin
80 end
81 internal
82 singleton
83 begin
84 end
85 internal
86 singleton
87 begin
88 end
89 internal
90 singleton
91 begin
92 end
93 internal
94 singleton
95 begin
96 end
97 internal
98 singleton
99 begin
100 end
101 internal
102 singleton
103 begin
104 end
105 internal
106 singleton
107 begin
108 end
109 internal
110 singleton
111 begin
112 end
113 internal
114 singleton
115 begin
116 end
117 internal
118 singleton
119 begin
120 end
121 internal
122 singleton
123 begin
124 end
125 internal
126 singleton
127 begin
128 end
129 internal
130 singleton
131 begin
132 end
133 internal
134 singleton
135 begin
136 end
137 internal
138 singleton
139 begin
140 end
141 internal
142 singleton
143 begin
144 end
145 internal
146 singleton
147 begin
148 end
149 internal
150 singleton
151 begin
152 end
153 internal
154 singleton
155 begin
156 end
157 internal
158 singleton
159 begin
160 end
161 internal
162 singleton
163 begin
164 end
165 internal
166 singleton
167 begin
168 end
169 internal
170 singleton
171 begin
172 end
173 internal
174 singleton
175 begin
176 end
177 internal
178 singleton
179 begin
180 end
181 internal
182 singleton
183 begin
184 end
185 internal
186 singleton
187 begin
188 end
189 internal
190 singleton
191 begin
192 end
193 internal
194 singleton
195 begin
196 end
197 internal
198 singleton
199 begin
200 end
201 internal
202 singleton
203 begin
204 end
205 internal
206 singleton
207 begin
208 end
209 internal
210 singleton
211 begin
212 end
213 internal
214 singleton
215 begin
216 end
217 internal
218 singleton
219 begin
220 end
221 internal
222 singleton
223 begin
224 end
225 internal
226 singleton
227 begin
228 end
229 internal
230 singleton
231 begin
232 end
233 internal
234 singleton
235 begin
236 end
237 internal
238 singleton
239 begin
240 end
241 internal
242 singleton
243 begin
244 end
245 internal
246 singleton
247 begin
248 end
249 internal
250 singleton
251 begin
252 end
253 internal
254 singleton
255 begin
256 end
257 internal
258 singleton
259 begin
260 end
261 internal
262 singleton
263 begin
264 end
265 internal
266 singleton
267 begin
268 end
269 internal
270 singleton
271 begin
272 end
273 internal
274 singleton
275 begin
276 end
277 internal
278 singleton
279 begin
280 end
281 internal
282 singleton
283 begin
284 end
285 internal
286 singleton
287 begin
288 end
289 internal
290 singleton
291 begin
292 end
293 internal
294 singleton
295 begin
296 end
297 internal
298 singleton
299 begin
300 end
301 internal
302 singleton
303 begin
304 end
305 internal
306 singleton
307 begin
308 end
309 internal
310 singleton
311 begin
312 end
313 internal
314 singleton
315 begin
316 end
317 internal
318 singleton
319 begin
320 end
321 internal
322 singleton
323 begin
324 end
325 internal
326 singleton
327 begin
328 end
329 internal
330 singleton
331 begin
332 end
333 internal
334 singleton
335 begin
336 end
337 internal
338 singleton
339 begin
340 end
341 internal
342 singleton
343 begin
344 end
345 internal
346 singleton
347 begin
348 end
349 internal
350 singleton
351 begin
352 end
353 internal
354 singleton
355 begin
356 end
357 internal
358 singleton
359 begin
360 end
361 internal
362 singleton
363 begin
364 end
365 internal
366 singleton
367 begin
368 end
369 internal
370 singleton
371 begin
372 end
373 internal
374 singleton
375 begin
376 end
377 internal
378 singleton
379 begin
380 end
381 internal
382 singleton
383 begin
384 end
385 internal
386 singleton

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,3 @@
[
4.5109e+10 -2.00471e+09 -2.672177e+09 1.114113e+09 -8.008282e+09 -5.54918e+09 -8.087527e+09 -5.556585e+09 -6.347063e+09 -3.373851e+09 -3.843346e+09 -2.503764e+09 -4.038778e+09 -1.628978e+09 -3.658344e+09 -1.833892e+09 -2.750521e+09 -8.853997e+08 -1.515349e+09 -3.647572e+08 -6.377884e+08 -3.654417e+07 -9.805578e+07 -1849224 1.814711e+08 3.480522e+07 3.80909e+08 -4.716804e+07 3.213146e+08 -1.504913e+08 2.643303e+08 -3.810504e+07 3.958002e+08 1.283459e+08 4.22026e+08 1.628813e+08 2.36883e+08 -1.055832e+08 -1.122014e+08 -1.099238e+08 4.526635e+08
4.711843e+12 2.762046e+11 2.171106e+11 2.422162e+11 4.382205e+11 3.213519e+11 3.843864e+11 3.195329e+11 3.268667e+11 2.552171e+11 2.418821e+11 2.378349e+11 2.052809e+11 1.633811e+11 1.478665e+11 1.004429e+11 8.785726e+10 5.500246e+10 4.097437e+10 2.183258e+10 1.194666e+10 3.761198e+09 5.177095e+08 1.362906e+08 1.739844e+09 4.326937e+09 7.570374e+09 9.9598e+09 1.258423e+10 1.362375e+10 1.458388e+10 1.413189e+10 1.478221e+10 1.534696e+10 1.329504e+10 1.025456e+10 9.890456e+09 7.986768e+09 6.064231e+09 3.940631e+09 0 ]

View file

@ -0,0 +1 @@
# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh

View file

@ -0,0 +1,2 @@
--left-context=3
--right-context=3

View file

@ -0,0 +1 @@
--left-context=3 --right-context=3