diff --git a/LEEME.md b/LEEME.md index d278e96..6c3f2c1 100644 --- a/LEEME.md +++ b/LEEME.md @@ -19,3 +19,6 @@ Arch ``` pip install --user vosk ``` + +Gracias a: +https://alphacephei.com/vosk/ diff --git a/README.md b/README.md index 4e54d7b..f40cde7 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Support for English and Spanish. Dependencies: -Ubuntu and derivates. +Ubuntu and derivatives. ``` sudo apt install libreoffice-script-provider-python python3-pip sudo pip3 install --upgrade pip wheel @@ -19,3 +19,7 @@ Arch ``` pip install --user vosk ``` + + +Thanks to: +https://alphacephei.com/vosk/ diff --git a/conf.py b/conf.py index 45aaa29..0fed90b 100644 --- a/conf.py +++ b/conf.py @@ -112,7 +112,7 @@ MENUS = ( { 'title': {'en': 'Start', 'es': 'Iniciar'}, 'argument': 'start', - 'context': 'writer', + 'context': 'writer,calc', 'icon': 'start', 'toolbar': True, 'shortcut': 'S_SHIFT_MOD1_MOD2', @@ -120,19 +120,11 @@ MENUS = ( { 'title': {'en': 'End', 'es': 'Terminar'}, 'argument': 'end', - 'context': 'writer', + 'context': 'writer,calc', 'icon': 'end', 'toolbar': True, 'shortcut': 'E_SHIFT_MOD1_MOD2', }, - { - 'title': {'en': 'Config...', 'es': 'Configurar...'}, - 'argument': 'config', - 'context': 'writer', - 'icon': 'config', - 'toolbar': True, - 'shortcut': '', - }, ) diff --git a/extension/ZazTalk2Me_v0.1.0.oxt b/extension/ZazTalk2Me_v0.1.0.oxt index 594f2dc..0e7ac23 100644 Binary files a/extension/ZazTalk2Me_v0.1.0.oxt and b/extension/ZazTalk2Me_v0.1.0.oxt differ diff --git a/source/Addons.xcu b/source/Addons.xcu index eaa0fb9..dd025f3 100644 --- a/source/Addons.xcu +++ b/source/Addons.xcu @@ -17,7 +17,7 @@ Iniciar - com.sun.star.text.TextDocument + com.sun.star.text.TextDocument,com.sun.star.sheet.SpreadsheetDocument service:net.elmau.zaz.talk?start @@ -35,7 +35,7 @@ Terminar - com.sun.star.text.TextDocument + com.sun.star.text.TextDocument,com.sun.star.sheet.SpreadsheetDocument service:net.elmau.zaz.talk?end @@ -47,24 +47,6 @@ %origin%/images/end - - - Config... - Configurar... - - - com.sun.star.text.TextDocument - - - service:net.elmau.zaz.talk?config - - - _self - - - %origin%/images/config - - @@ -76,7 +58,7 @@ Iniciar - com.sun.star.text.TextDocument + com.sun.star.text.TextDocument,com.sun.star.sheet.SpreadsheetDocument service:net.elmau.zaz.talk?start @@ -94,7 +76,7 @@ Terminar - com.sun.star.text.TextDocument + com.sun.star.text.TextDocument,com.sun.star.sheet.SpreadsheetDocument service:net.elmau.zaz.talk?end @@ -106,24 +88,6 @@ %origin%/images/end - - - Config... - Configurar... - - - com.sun.star.text.TextDocument - - - service:net.elmau.zaz.talk?config - - - _self - - - %origin%/images/config - - diff --git a/source/Office/Accelerators.xcu b/source/Office/Accelerators.xcu index 4a900af..5df4e12 100644 --- a/source/Office/Accelerators.xcu +++ b/source/Office/Accelerators.xcu @@ -9,6 +9,13 @@ + + + + service:net.elmau.zaz.talk?start + + + @@ -16,6 +23,13 @@ + + + + service:net.elmau.zaz.talk?end + + + diff --git a/source/ZazTalk2Me.py b/source/ZazTalk2Me.py index 54c42d8..c1596c3 100644 --- a/source/ZazTalk2Me.py +++ b/source/ZazTalk2Me.py @@ -18,7 +18,7 @@ class ZazTalk2Me(unohelper.Base, XJobExecutor): @app.run_in_thread def _start(self): path_ext = app.paths.from_id(ID_EXTENSION) - path_model = app.paths.join(path_ext, 'model') + path_model = app.paths.join(path_ext, 'model', app.LANG) nd.main_begin(vosk_model_dir=path_model, config_override=None) return diff --git a/source/model/en/README b/source/model/en/README new file mode 100644 index 0000000..a7f7931 --- /dev/null +++ b/source/model/en/README @@ -0,0 +1,9 @@ +US English model for mobile Vosk applications + +Copyright 2020 Alpha Cephei Inc + +Accuracy: 10.38 (tedlium test) 9.85 (librispeech test-clean) +Speed: 0.11xRT (desktop) +Latency: 0.15s (right context) + + diff --git a/source/model/en/am/final.mdl b/source/model/en/am/final.mdl new file mode 100644 index 0000000..5596b31 Binary files /dev/null and b/source/model/en/am/final.mdl differ diff --git a/source/model/en/conf/mfcc.conf b/source/model/en/conf/mfcc.conf new file mode 100644 index 0000000..eaa40c5 --- /dev/null +++ b/source/model/en/conf/mfcc.conf @@ -0,0 +1,7 @@ +--sample-frequency=16000 +--use-energy=false +--num-mel-bins=40 +--num-ceps=40 +--low-freq=20 +--high-freq=7600 +--allow-downsample=true diff --git a/source/model/en/conf/model.conf b/source/model/en/conf/model.conf new file mode 100644 index 0000000..9d5b0da --- /dev/null +++ b/source/model/en/conf/model.conf @@ -0,0 +1,10 @@ +--min-active=200 +--max-active=3000 +--beam=10.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=0.75 +--endpoint.rule4.min-trailing-silence=1.0 diff --git a/source/model/en/graph/Gr.fst b/source/model/en/graph/Gr.fst new file mode 100644 index 0000000..1f292e6 Binary files /dev/null and b/source/model/en/graph/Gr.fst differ diff --git a/source/model/en/graph/HCLr.fst b/source/model/en/graph/HCLr.fst new file mode 100644 index 0000000..9797b26 Binary files /dev/null and b/source/model/en/graph/HCLr.fst differ diff --git a/source/model/en/graph/disambig_tid.int b/source/model/en/graph/disambig_tid.int new file mode 100644 index 0000000..762fd5f --- /dev/null +++ b/source/model/en/graph/disambig_tid.int @@ -0,0 +1,17 @@ +10015 +10016 +10017 +10018 +10019 +10020 +10021 +10022 +10023 +10024 +10025 +10026 +10027 +10028 +10029 +10030 +10031 diff --git a/source/model/en/graph/phones/word_boundary.int b/source/model/en/graph/phones/word_boundary.int new file mode 100644 index 0000000..df23fd7 --- /dev/null +++ b/source/model/en/graph/phones/word_boundary.int @@ -0,0 +1,166 @@ +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 diff --git a/source/model/en/ivector/final.dubm b/source/model/en/ivector/final.dubm new file mode 100644 index 0000000..db789eb Binary files /dev/null and b/source/model/en/ivector/final.dubm differ diff --git a/source/model/en/ivector/final.ie b/source/model/en/ivector/final.ie new file mode 100644 index 0000000..93737bf Binary files /dev/null and b/source/model/en/ivector/final.ie differ diff --git a/source/model/en/ivector/final.mat b/source/model/en/ivector/final.mat new file mode 100644 index 0000000..c3ec635 Binary files /dev/null and b/source/model/en/ivector/final.mat differ diff --git a/source/model/en/ivector/global_cmvn.stats b/source/model/en/ivector/global_cmvn.stats new file mode 100644 index 0000000..b9d92ef --- /dev/null +++ b/source/model/en/ivector/global_cmvn.stats @@ -0,0 +1,3 @@ + [ + 1.682383e+11 -1.1595e+10 -1.521733e+10 4.32034e+09 -2.257938e+10 -1.969666e+10 -2.559265e+10 -1.535687e+10 -1.276854e+10 -4.494483e+09 -1.209085e+10 -5.64008e+09 -1.134847e+10 -3.419512e+09 -1.079542e+10 -4.145463e+09 -6.637486e+09 -1.11318e+09 -3.479773e+09 -1.245932e+08 -1.386961e+09 6.560655e+07 -2.436518e+08 -4.032432e+07 4.620046e+08 -7.714964e+07 9.551484e+08 -4.119761e+08 8.208582e+08 -7.117156e+08 7.457703e+08 -4.3106e+08 1.202726e+09 2.904036e+08 1.231931e+09 3.629848e+08 6.366939e+08 -4.586172e+08 -5.267629e+08 -3.507819e+08 1.679838e+09 + 1.741141e+13 8.92488e+11 8.743834e+11 8.848896e+11 1.190313e+12 1.160279e+12 1.300066e+12 1.005678e+12 9.39335e+11 8.089614e+11 7.927041e+11 6.882427e+11 6.444235e+11 5.151451e+11 4.825723e+11 3.210106e+11 2.720254e+11 1.772539e+11 1.248102e+11 6.691599e+10 3.599804e+10 1.207574e+10 1.679301e+09 4.594778e+08 5.821614e+09 1.451758e+10 2.55803e+10 3.43277e+10 4.245286e+10 4.784859e+10 4.988591e+10 4.925451e+10 5.074584e+10 4.9557e+10 4.407876e+10 3.421443e+10 3.138606e+10 2.539716e+10 1.948134e+10 1.381167e+10 0 ] diff --git a/source/model/ivector/online_cmvn.conf b/source/model/en/ivector/online_cmvn.conf similarity index 100% rename from source/model/ivector/online_cmvn.conf rename to source/model/en/ivector/online_cmvn.conf diff --git a/source/model/ivector/splice.conf b/source/model/en/ivector/splice.conf similarity index 100% rename from source/model/ivector/splice.conf rename to source/model/en/ivector/splice.conf diff --git a/source/model/README b/source/model/es/README similarity index 100% rename from source/model/README rename to source/model/es/README diff --git a/source/model/am/final.mdl b/source/model/es/am/final.mdl similarity index 100% rename from source/model/am/final.mdl rename to source/model/es/am/final.mdl diff --git a/source/model/conf/mfcc.conf b/source/model/es/conf/mfcc.conf similarity index 100% rename from source/model/conf/mfcc.conf rename to source/model/es/conf/mfcc.conf diff --git a/source/model/conf/model.conf b/source/model/es/conf/model.conf similarity index 100% rename from source/model/conf/model.conf rename to source/model/es/conf/model.conf diff --git a/source/model/graph/Gr.fst b/source/model/es/graph/Gr.fst similarity index 100% rename from source/model/graph/Gr.fst rename to source/model/es/graph/Gr.fst diff --git a/source/model/graph/HCLr.fst b/source/model/es/graph/HCLr.fst similarity index 100% rename from source/model/graph/HCLr.fst rename to source/model/es/graph/HCLr.fst diff --git a/source/model/graph/disambig_tid.int b/source/model/es/graph/disambig_tid.int similarity index 100% rename from source/model/graph/disambig_tid.int rename to source/model/es/graph/disambig_tid.int diff --git a/source/model/graph/phones/word_boundary.int b/source/model/es/graph/phones/word_boundary.int similarity index 100% rename from source/model/graph/phones/word_boundary.int rename to source/model/es/graph/phones/word_boundary.int diff --git a/source/model/ivector/final.dubm b/source/model/es/ivector/final.dubm similarity index 100% rename from source/model/ivector/final.dubm rename to source/model/es/ivector/final.dubm diff --git a/source/model/ivector/final.ie b/source/model/es/ivector/final.ie similarity index 100% rename from source/model/ivector/final.ie rename to source/model/es/ivector/final.ie diff --git a/source/model/ivector/final.mat b/source/model/es/ivector/final.mat similarity index 100% rename from source/model/ivector/final.mat rename to source/model/es/ivector/final.mat diff --git a/source/model/ivector/global_cmvn.stats b/source/model/es/ivector/global_cmvn.stats similarity index 100% rename from source/model/ivector/global_cmvn.stats rename to source/model/es/ivector/global_cmvn.stats diff --git a/source/model/es/ivector/online_cmvn.conf b/source/model/es/ivector/online_cmvn.conf new file mode 100644 index 0000000..7748a4a --- /dev/null +++ b/source/model/es/ivector/online_cmvn.conf @@ -0,0 +1 @@ +# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh diff --git a/source/model/es/ivector/splice.conf b/source/model/es/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/source/model/es/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/source/model/pt/Gr.fst b/source/model/pt/Gr.fst new file mode 100644 index 0000000..8a24e78 Binary files /dev/null and b/source/model/pt/Gr.fst differ diff --git a/source/model/pt/HCLr.fst b/source/model/pt/HCLr.fst new file mode 100644 index 0000000..d6fa4b2 Binary files /dev/null and b/source/model/pt/HCLr.fst differ diff --git a/source/model/pt/README b/source/model/pt/README new file mode 100644 index 0000000..95d6882 --- /dev/null +++ b/source/model/pt/README @@ -0,0 +1 @@ +Portuguese model for android diff --git a/source/model/pt/disambig_tid.int b/source/model/pt/disambig_tid.int new file mode 100644 index 0000000..969b0d6 --- /dev/null +++ b/source/model/pt/disambig_tid.int @@ -0,0 +1,9 @@ +11381 +11382 +11383 +11384 +11385 +11386 +11387 +11388 +11389 diff --git a/source/model/pt/final.mdl b/source/model/pt/final.mdl new file mode 100644 index 0000000..b8af881 Binary files /dev/null and b/source/model/pt/final.mdl differ diff --git a/source/model/pt/ivector/final.dubm b/source/model/pt/ivector/final.dubm new file mode 100644 index 0000000..b0e63e0 Binary files /dev/null and b/source/model/pt/ivector/final.dubm differ diff --git a/source/model/pt/ivector/final.ie b/source/model/pt/ivector/final.ie new file mode 100644 index 0000000..5cdbbb7 Binary files /dev/null and b/source/model/pt/ivector/final.ie differ diff --git a/source/model/pt/ivector/final.mat b/source/model/pt/ivector/final.mat new file mode 100644 index 0000000..b6f1f67 Binary files /dev/null and b/source/model/pt/ivector/final.mat differ diff --git a/source/model/pt/ivector/global_cmvn.stats b/source/model/pt/ivector/global_cmvn.stats new file mode 100644 index 0000000..a28aa14 --- /dev/null +++ b/source/model/pt/ivector/global_cmvn.stats @@ -0,0 +1,3 @@ + [ + 5.621864e+09 -3.61508e+08 8.637199e+07 3.324517e+08 -3.323625e+08 -3.969682e+08 -5.677247e+08 -3.363187e+08 -2.560426e+08 -5.828718e+07 -5.735994e+07 -1.727248e+08 -1.921315e+08 -243469.1 -1.114188e+08 -1.499579e+08 -2.986899e+07 -2.723944e+07 -3.31755e+07 758787.7 7.084189e+07 + 4.552163e+11 1.696032e+10 1.358537e+10 1.90937e+10 1.775472e+10 1.721642e+10 1.958017e+10 1.442598e+10 1.461493e+10 1.236114e+10 9.68765e+09 9.376157e+09 7.71376e+09 5.798623e+09 4.252169e+09 3.14616e+09 1.832301e+09 1.183567e+09 7.921606e+08 4.095449e+08 0 ] diff --git a/source/model/pt/ivector/online_cmvn.conf b/source/model/pt/ivector/online_cmvn.conf new file mode 100644 index 0000000..7748a4a --- /dev/null +++ b/source/model/pt/ivector/online_cmvn.conf @@ -0,0 +1 @@ +# configuration file for apply-cmvn-online, used in the script ../local/run_online_decoding.sh diff --git a/source/model/pt/ivector/splice.conf b/source/model/pt/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/source/model/pt/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/source/model/pt/mfcc.conf b/source/model/pt/mfcc.conf new file mode 100644 index 0000000..3fa7c99 --- /dev/null +++ b/source/model/pt/mfcc.conf @@ -0,0 +1,8 @@ +--sample-frequency=16000 +--use-energy=false +--num-mel-bins=20 +--num-ceps=20 +--low-freq=20 +--high-freq=7600 +--allow-upsample=true +--allow-downsample=true diff --git a/source/model/pt/phones.txt b/source/model/pt/phones.txt new file mode 100644 index 0000000..4807ca1 --- /dev/null +++ b/source/model/pt/phones.txt @@ -0,0 +1,240 @@ + 0 +SIL 1 +SIL_B 2 +SIL_E 3 +SIL_I 4 +SIL_S 5 +GBG 6 +GBG_B 7 +GBG_E 8 +GBG_I 9 +GBG_S 10 +E_B 11 +E_E 12 +E_I 13 +E_S 14 +J_B 15 +J_E 16 +J_I 17 +J_S 18 +L_B 19 +L_E 20 +L_I 21 +L_S 22 +O_B 23 +O_E 24 +O_I 25 +O_S 26 +R_B 27 +R_E 28 +R_I 29 +R_S 30 +S_B 31 +S_E 32 +S_I 33 +S_S 34 +X_B 35 +X_E 36 +X_I 37 +X_S 38 +Z_B 39 +Z_E 40 +Z_I 41 +Z_S 42 +a_B 43 +a_E 44 +a_I 45 +a_S 46 +aa_B 47 +aa_E 48 +aa_I 49 +aa_S 50 +a~_B 51 +a~_E 52 +a~_I 53 +a~_S 54 +b_B 55 +b_E 56 +b_I 57 +b_S 58 +d_B 59 +d_E 60 +d_I 61 +d_S 62 +dZ_B 63 +dZ_E 64 +dZ_I 65 +dZ_S 66 +dz_B 67 +dz_E 68 +dz_I 69 +dz_S 70 +e_B 71 +e_E 72 +e_I 73 +e_S 74 +ee_B 75 +ee_E 76 +ee_I 77 +ee_S 78 +em_B 79 +em_E 80 +em_I 81 +em_S 82 +e~_B 83 +e~_E 84 +e~_I 85 +e~_S 86 +f_B 87 +f_E 88 +f_I 89 +f_S 90 +g_B 91 +g_E 92 +g_I 93 +g_S 94 +i_B 95 +i_E 96 +i_I 97 +i_S 98 +ii_B 99 +ii_E 100 +ii_I 101 +ii_S 102 +i~_B 103 +i~_E 104 +i~_I 105 +i~_S 106 +j_B 107 +j_E 108 +j_I 109 +j_S 110 +jj_B 111 +jj_E 112 +jj_I 113 +jj_S 114 +jm_B 115 +jm_E 116 +jm_I 117 +jm_S 118 +j~_B 119 +j~_E 120 +j~_I 121 +j~_S 122 +k_B 123 +k_E 124 +k_I 125 +k_S 126 +l_B 127 +l_E 128 +l_I 129 +l_S 130 +lm_B 131 +lm_E 132 +lm_I 133 +lm_S 134 +m_B 135 +m_E 136 +m_I 137 +m_S 138 +n_B 139 +n_E 140 +n_I 141 +n_S 142 +o_B 143 +o_E 144 +o_I 145 +o_S 146 +om_B 147 +om_E 148 +om_I 149 +om_S 150 +oo_B 151 +oo_E 152 +oo_I 153 +oo_S 154 +o~_B 155 +o~_E 156 +o~_I 157 +o~_S 158 +p_B 159 +p_E 160 +p_I 161 +p_S 162 +r_B 163 +r_E 164 +r_I 165 +r_S 166 +rm_B 167 +rm_E 168 +rm_I 169 +rm_S 170 +s_B 171 +s_E 172 +s_I 173 +s_S 174 +sm_B 175 +sm_E 176 +sm_I 177 +sm_S 178 +t_B 179 +t_E 180 +t_I 181 +t_S 182 +tS_B 183 +tS_E 184 +tS_I 185 +tS_S 186 +ts_B 187 +ts_E 188 +ts_I 189 +ts_S 190 +u_B 191 +u_E 192 +u_I 193 +u_S 194 +uu_B 195 +uu_E 196 +uu_I 197 +uu_S 198 +u~_B 199 +u~_E 200 +u~_I 201 +u~_S 202 +v_B 203 +v_E 204 +v_I 205 +v_S 206 +w_B 207 +w_E 208 +w_I 209 +w_S 210 +ww_B 211 +ww_E 212 +ww_I 213 +ww_S 214 +w~_B 215 +w~_E 216 +w~_I 217 +w~_S 218 +xm_B 219 +xm_E 220 +xm_I 221 +xm_S 222 +z_B 223 +z_E 224 +z_I 225 +z_S 226 +zm_B 227 +zm_E 228 +zm_I 229 +zm_S 230 +#0 231 +#1 232 +#2 233 +#3 234 +#4 235 +#5 236 +#6 237 +#7 238 +#8 239 diff --git a/source/model/pt/word_boundary.int b/source/model/pt/word_boundary.int new file mode 100644 index 0000000..852f5fe --- /dev/null +++ b/source/model/pt/word_boundary.int @@ -0,0 +1,230 @@ +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 diff --git a/source/pythonpath/nerd_dictation.py b/source/pythonpath/nerd_dictation.py index 487e1a7..4322c07 100755 --- a/source/pythonpath/nerd_dictation.py +++ b/source/pythonpath/nerd_dictation.py @@ -70,13 +70,24 @@ def run_xdotool(subcommand: str, payload: List[str]) -> None: try: # ~ print(cmd) # ~ type or key - rango = app.selection.goto_end() - if subcommand == 'type': - word = payload[-1] - rango.string = word - else: - rango.go_left(count=len(payload), expand=True).string = '' - # ~ subprocess.check_output(cmd) + app_name = app.active.type + if app_name == 'writer': + rango = app.selection.goto_end() + if subcommand == 'type': + word = payload[-1] + rango.string = word + else: + rango.go_left(count=len(payload), expand=True).string = '' + elif app_name == 'calc': + rango = app.selection + current = rango.value or '' + if subcommand == 'type': + word = payload[-1] + rango.str = current + word + else: + current = current[:len(payload)*-1] + rango.str = current + # ~ subprocess.check_output(cmd) except FileNotFoundError as ex: print("Command {!r} not found: {!s}".format(cmd_base, ex)) sys.exit(1)