diff --git a/example/android/build/reports/problems/problems-report.html b/example/android/build/reports/problems/problems-report.html deleted file mode 100644 index 8d897b7..0000000 --- a/example/android/build/reports/problems/problems-report.html +++ /dev/null @@ -1,663 +0,0 @@ - - - - - - - - - - - - - Gradle Configuration Cache - - - -
- -
- Loading... -
- - - - - - diff --git a/example/android/settings.gradle.kts b/example/android/settings.gradle.kts index 1eb7419..b5a7fc3 100644 --- a/example/android/settings.gradle.kts +++ b/example/android/settings.gradle.kts @@ -31,3 +31,7 @@ plugins { } include(":app") + +// 显式包含 flutter_vosk_wakeword 插件的 android 模块 +include(":flutter_vosk_wakeword") +project(":flutter_vosk_wakeword").projectDir = File(settings.rootDir, "../../packages/flutter_vosk_wakeword/android") \ No newline at end of file diff --git a/example/pubspec.lock b/example/pubspec.lock index 892b6ed..84e9646 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -209,6 +209,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.2" + flutter_vosk_wakeword: + dependency: transitive + description: + path: "../packages/flutter_vosk_wakeword" + relative: true + source: path + version: "0.0.1" flutter_web_plugins: dependency: transitive description: flutter @@ -635,5 +642,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.6.2 <4.0.0" flutter: ">=3.27.1" diff --git a/example/pubspec.yaml b/example/pubspec.yaml index e659557..a28acd0 100644 --- a/example/pubspec.yaml +++ b/example/pubspec.yaml @@ -42,52 +42,11 @@ dependencies: dev_dependencies: flutter_test: sdk: flutter - - # The "flutter_lints" package below contains a set of recommended lints to - # encourage good coding practices. The lint set provided by the package is - # activated in the `analysis_options.yaml` file located at the root of your - # package. See that file for information about deactivating specific lint - # rules and activating additional ones. flutter_lints: ^5.0.0 -# For information on the generic Dart part of this file, see the -# following page: https://dart.dev/tools/pub/pubspec +# overrides_dependencies: +# flutter_vosk_wakeword: +# path: ../packages/flutter_vosk_wakeword -# The following section is specific to Flutter packages. flutter: - - # The following line ensures that the Material Icons font is - # included with your application, so that you can use the icons in - # the material Icons class. - uses-material-design: true - - # To add assets to your application, add an assets section, like this: - # assets: - # - images/a_dot_burr.jpeg - # - images/a_dot_ham.jpeg - - # An image asset can refer to one or more resolution-specific "variants", see - # https://flutter.dev/to/resolution-aware-images - - # For details regarding adding assets from package dependencies, see - # https://flutter.dev/to/asset-from-package - - # To add custom fonts to your application, add a fonts section here, - # in this "flutter" section. Each entry in this list should have a - # "family" key with the font family name, and a "fonts" key with a - # list giving the asset and other descriptors for the font. For - # example: - # fonts: - # - family: Schyler - # fonts: - # - asset: fonts/Schyler-Regular.ttf - # - asset: fonts/Schyler-Italic.ttf - # style: italic - # - family: Trajan Pro - # fonts: - # - asset: fonts/TrajanPro.ttf - # - asset: fonts/TrajanPro_Bold.ttf - # weight: 700 - # - # For details regarding fonts from package dependencies, - # see https://flutter.dev/to/font-from-package + uses-material-design: true \ No newline at end of file diff --git a/packages/flutter_vosk_wakeword/android/build.gradle b/packages/flutter_vosk_wakeword/android/build.gradle index 7a071eb..7728240 100644 --- a/packages/flutter_vosk_wakeword/android/build.gradle +++ b/packages/flutter_vosk_wakeword/android/build.gradle @@ -41,6 +41,10 @@ android { sourceSets { main.java.srcDirs += "src/main/kotlin" test.java.srcDirs += "src/test/kotlin" + + main { + assets.srcDirs += ["models/src/main/assets"] + } } defaultConfig { @@ -64,3 +68,8 @@ android { } } } + +dependencies { + implementation 'com.alphacephei:vosk-android:0.3.70' +// implementation project(":models") +} diff --git a/packages/flutter_vosk_wakeword/android/models/build.gradle b/packages/flutter_vosk_wakeword/android/models/build.gradle new file mode 100644 index 0000000..87086b8 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/build.gradle @@ -0,0 +1,32 @@ +apply plugin: "com.android.library" +apply plugin: "kotlin-android" + +android { + // 为这个模块设置一个独立的命名空间 + namespace "com.tsystems.models" + compileSdk = 35 + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_11 + } + + defaultConfig { + minSdk = 21 + } + + sourceSets { + // 这是最关键的一步:告诉Gradle这个模块的assets资源在哪里 + // 我们直接指向模块的根目录,Gradle会自动寻找 src/main/assets + main.assets.srcDirs = ['src/main/assets'] + } + + // 由于这个模块只包含资源,我们可以禁用一些不需要的Java/Kotlin编译任务 + libraryVariants.all { variant -> + variant.generateBuildConfigProvider.get().enabled = false + } +} \ No newline at end of file diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/README b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/README new file mode 100644 index 0000000..0b5d9e5 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/README @@ -0,0 +1,6 @@ +Chinese Vosk model for mobile + +CER results + +23.54% speechio_02 +38.29% speechio_06 diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/am/final.mdl b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/am/final.mdl new file mode 100644 index 0000000..f7cf1de Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/am/final.mdl differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/mfcc.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/mfcc.conf new file mode 100644 index 0000000..12fdad4 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/mfcc.conf @@ -0,0 +1,8 @@ +--use-energy=false +--sample-frequency=16000 +--num-mel-bins=40 +--num-ceps=40 +--low-freq=40 +--high-freq=-200 +--allow-upsample=true +--allow-downsample=true diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/model.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/model.conf new file mode 100644 index 0000000..9ae12a7 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/conf/model.conf @@ -0,0 +1,10 @@ +--min-active=200 +--max-active=5000 +--beam=12.0 +--lattice-beam=4.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 diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/Gr.fst b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/Gr.fst new file mode 100644 index 0000000..ee4580d Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/Gr.fst differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/HCLr.fst b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/HCLr.fst new file mode 100644 index 0000000..2ad6e8f Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/HCLr.fst differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/disambig_tid.int b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/disambig_tid.int new file mode 100644 index 0000000..c1a114f --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/disambig_tid.int @@ -0,0 +1,39 @@ +11845 +11846 +11847 +11848 +11849 +11850 +11851 +11852 +11853 +11854 +11855 +11856 +11857 +11858 +11859 +11860 +11861 +11862 +11863 +11864 +11865 +11866 +11867 +11868 +11869 +11870 +11871 +11872 +11873 +11874 +11875 +11876 +11877 +11878 +11879 +11880 +11881 +11882 +11883 diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/phones/word_boundary.int b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/phones/word_boundary.int new file mode 100644 index 0000000..9f3713e --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/graph/phones/word_boundary.int @@ -0,0 +1,646 @@ +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 +387 begin +388 end +389 internal +390 singleton +391 begin +392 end +393 internal +394 singleton +395 begin +396 end +397 internal +398 singleton +399 begin +400 end +401 internal +402 singleton +403 begin +404 end +405 internal +406 singleton +407 begin +408 end +409 internal +410 singleton +411 begin +412 end +413 internal +414 singleton +415 begin +416 end +417 internal +418 singleton +419 begin +420 end +421 internal +422 singleton +423 begin +424 end +425 internal +426 singleton +427 begin +428 end +429 internal +430 singleton +431 begin +432 end +433 internal +434 singleton +435 begin +436 end +437 internal +438 singleton +439 begin +440 end +441 internal +442 singleton +443 begin +444 end +445 internal +446 singleton +447 begin +448 end +449 internal +450 singleton +451 begin +452 end +453 internal +454 singleton +455 begin +456 end +457 internal +458 singleton +459 begin +460 end +461 internal +462 singleton +463 begin +464 end +465 internal +466 singleton +467 begin +468 end +469 internal +470 singleton +471 begin +472 end +473 internal +474 singleton +475 begin +476 end +477 internal +478 singleton +479 begin +480 end +481 internal +482 singleton +483 begin +484 end +485 internal +486 singleton +487 begin +488 end +489 internal +490 singleton +491 begin +492 end +493 internal +494 singleton +495 begin +496 end +497 internal +498 singleton +499 begin +500 end +501 internal +502 singleton +503 begin +504 end +505 internal +506 singleton +507 begin +508 end +509 internal +510 singleton +511 begin +512 end +513 internal +514 singleton +515 begin +516 end +517 internal +518 singleton +519 begin +520 end +521 internal +522 singleton +523 begin +524 end +525 internal +526 singleton +527 begin +528 end +529 internal +530 singleton +531 begin +532 end +533 internal +534 singleton +535 begin +536 end +537 internal +538 singleton +539 begin +540 end +541 internal +542 singleton +543 begin +544 end +545 internal +546 singleton +547 begin +548 end +549 internal +550 singleton +551 begin +552 end +553 internal +554 singleton +555 begin +556 end +557 internal +558 singleton +559 begin +560 end +561 internal +562 singleton +563 begin +564 end +565 internal +566 singleton +567 begin +568 end +569 internal +570 singleton +571 begin +572 end +573 internal +574 singleton +575 begin +576 end +577 internal +578 singleton +579 begin +580 end +581 internal +582 singleton +583 begin +584 end +585 internal +586 singleton +587 begin +588 end +589 internal +590 singleton +591 begin +592 end +593 internal +594 singleton +595 begin +596 end +597 internal +598 singleton +599 begin +600 end +601 internal +602 singleton +603 begin +604 end +605 internal +606 singleton +607 begin +608 end +609 internal +610 singleton +611 begin +612 end +613 internal +614 singleton +615 begin +616 end +617 internal +618 singleton +619 begin +620 end +621 internal +622 singleton +623 begin +624 end +625 internal +626 singleton +627 begin +628 end +629 internal +630 singleton +631 begin +632 end +633 internal +634 singleton +635 begin +636 end +637 internal +638 singleton +639 begin +640 end +641 internal +642 singleton +643 begin +644 end +645 internal +646 singleton diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.dubm b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.dubm new file mode 100644 index 0000000..bcf2689 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.dubm differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.ie b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.ie new file mode 100644 index 0000000..e1d78a2 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.ie differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.mat b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.mat new file mode 100644 index 0000000..1093236 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/final.mat differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/global_cmvn.stats b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/global_cmvn.stats new file mode 100644 index 0000000..500cc40 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/global_cmvn.stats @@ -0,0 +1,3 @@ + [ + 1.117107e+11 -7.827721e+08 -1.101398e+10 -2.193934e+09 -1.347332e+10 -1.613916e+10 -1.199561e+10 -1.255081e+10 -1.638895e+10 -3.821099e+09 -1.372833e+10 -5.244242e+09 -1.098187e+10 -3.655235e+09 -9.364579e+09 -4.285302e+09 -6.296873e+09 -1.552953e+09 -3.176746e+09 -1.202976e+08 -9.857023e+08 2.316555e+08 -1.61059e+08 -5.891868e+07 3.465849e+08 -1.842054e+08 3.248211e+08 -1.483965e+08 3.739239e+08 -6.672061e+08 4.442288e+08 -9.274889e+08 5.142684e+08 4.292036e+07 2.206386e+08 -4.532715e+08 -2.092499e+08 -3.70488e+08 -8.079404e+07 -8.425977e+07 1.344125e+09 + 9.982632e+12 1.02635e+12 8.634624e+11 9.06451e+11 9.652096e+11 1.12772e+12 9.468372e+11 9.141218e+11 9.670484e+11 6.936961e+11 8.141006e+11 6.256321e+11 6.087707e+11 4.616898e+11 4.212042e+11 2.862872e+11 2.498089e+11 1.470856e+11 1.099197e+11 5.780894e+10 3.118114e+10 1.060667e+10 1.466199e+09 4.173056e+08 5.257362e+09 1.277714e+10 2.114478e+10 2.974502e+10 3.587691e+10 4.078971e+10 4.247745e+10 4.382608e+10 4.62521e+10 4.575282e+10 3.546206e+10 3.041531e+10 2.838562e+10 2.258604e+10 1.715295e+10 1.303227e+10 0 ] diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/online_cmvn.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/online_cmvn.conf new file mode 100644 index 0000000..e69de29 diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/splice.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-cn/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/README b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/README new file mode 100644 index 0000000..a7f7931 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/am/final.mdl b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/am/final.mdl new file mode 100644 index 0000000..5596b31 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/am/final.mdl differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/conf/mfcc.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/conf/mfcc.conf new file mode 100644 index 0000000..eaa40c5 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/conf/model.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/conf/model.conf new file mode 100644 index 0000000..9d5b0da --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/Gr.fst b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/Gr.fst new file mode 100644 index 0000000..1f292e6 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/Gr.fst differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/HCLr.fst b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/HCLr.fst new file mode 100644 index 0000000..9797b26 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/HCLr.fst differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/disambig_tid.int b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/disambig_tid.int new file mode 100644 index 0000000..762fd5f --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/phones/word_boundary.int b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/graph/phones/word_boundary.int new file mode 100644 index 0000000..df23fd7 --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.dubm b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.dubm new file mode 100644 index 0000000..db789eb Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.dubm differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.ie b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.ie new file mode 100644 index 0000000..93737bf Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.ie differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.mat b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.mat new file mode 100644 index 0000000..c3ec635 Binary files /dev/null and b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/final.mat differ diff --git a/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/global_cmvn.stats b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/global_cmvn.stats new file mode 100644 index 0000000..b9d92ef --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/online_cmvn.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/online_cmvn.conf new file mode 100644 index 0000000..7748a4a --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/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/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/splice.conf b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/splice.conf new file mode 100644 index 0000000..960cd2e --- /dev/null +++ b/packages/flutter_vosk_wakeword/android/models/src/main/assets/model-en-us/ivector/splice.conf @@ -0,0 +1,2 @@ +--left-context=3 +--right-context=3 diff --git a/packages/flutter_vosk_wakeword/android/settings.gradle b/packages/flutter_vosk_wakeword/android/settings.gradle index 6c342ba..30073bc 100644 --- a/packages/flutter_vosk_wakeword/android/settings.gradle +++ b/packages/flutter_vosk_wakeword/android/settings.gradle @@ -1 +1,4 @@ rootProject.name = 'flutter_vosk_wakeword' + +//include ':models' +//project(':models').projectDir = new File(settingsDir, 'models') diff --git a/packages/flutter_vosk_wakeword/android/src/main/kotlin/com/tsystems/flutter_vosk_wakeword/FlutterVoskWakewordPlugin.kt b/packages/flutter_vosk_wakeword/android/src/main/kotlin/com/tsystems/flutter_vosk_wakeword/FlutterVoskWakewordPlugin.kt index 59cb517..dddf297 100644 --- a/packages/flutter_vosk_wakeword/android/src/main/kotlin/com/tsystems/flutter_vosk_wakeword/FlutterVoskWakewordPlugin.kt +++ b/packages/flutter_vosk_wakeword/android/src/main/kotlin/com/tsystems/flutter_vosk_wakeword/FlutterVoskWakewordPlugin.kt @@ -8,6 +8,9 @@ import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel.MethodCallHandler import io.flutter.plugin.common.MethodChannel.Result +// # vosk +import org.vosk.LibVosk + /** FlutterVoskWakewordPlugin */ class FlutterVoskWakewordPlugin: FlutterPlugin, MethodCallHandler { /// The MethodChannel that will the communication between Flutter and native Android diff --git a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword.dart b/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword.dart index 56de5df..c5592c4 100644 --- a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword.dart +++ b/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword.dart @@ -1,5 +1,5 @@ -import 'flutter_vosk_wakeword_platform_interface.dart'; +import 'src/interface/flutter_vosk_wakeword_platform_interface.dart'; class FlutterVoskWakeword { Future getPlatformVersion() { diff --git a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_method_channel.dart b/packages/flutter_vosk_wakeword/lib/src/channel/flutter_vosk_wakeword_method_channel.dart similarity index 89% rename from packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_method_channel.dart rename to packages/flutter_vosk_wakeword/lib/src/channel/flutter_vosk_wakeword_method_channel.dart index be35643..6360bff 100644 --- a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_method_channel.dart +++ b/packages/flutter_vosk_wakeword/lib/src/channel/flutter_vosk_wakeword_method_channel.dart @@ -1,7 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; -import 'flutter_vosk_wakeword_platform_interface.dart'; +import '../interface/flutter_vosk_wakeword_platform_interface.dart'; /// An implementation of [FlutterVoskWakewordPlatform] that uses method channels. class MethodChannelFlutterVoskWakeword extends FlutterVoskWakewordPlatform { diff --git a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_platform_interface.dart b/packages/flutter_vosk_wakeword/lib/src/interface/flutter_vosk_wakeword_platform_interface.dart similarity index 94% rename from packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_platform_interface.dart rename to packages/flutter_vosk_wakeword/lib/src/interface/flutter_vosk_wakeword_platform_interface.dart index 6d852da..f6bc481 100644 --- a/packages/flutter_vosk_wakeword/lib/flutter_vosk_wakeword_platform_interface.dart +++ b/packages/flutter_vosk_wakeword/lib/src/interface/flutter_vosk_wakeword_platform_interface.dart @@ -1,6 +1,6 @@ import 'package:plugin_platform_interface/plugin_platform_interface.dart'; -import 'flutter_vosk_wakeword_method_channel.dart'; +import '../channel/flutter_vosk_wakeword_method_channel.dart'; abstract class FlutterVoskWakewordPlatform extends PlatformInterface { /// Constructs a FlutterVoskWakewordPlatform. diff --git a/packages/flutter_vosk_wakeword/pubspec.yaml b/packages/flutter_vosk_wakeword/pubspec.yaml index 8bdd656..4520495 100644 --- a/packages/flutter_vosk_wakeword/pubspec.yaml +++ b/packages/flutter_vosk_wakeword/pubspec.yaml @@ -16,6 +16,7 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 + pigeon: ^25.5.0 # For information on the generic Dart part of this file, see the # following page: https://dart.dev/tools/pub/pubspec diff --git a/pubspec.lock b/pubspec.lock index 8da4e02..201fa38 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -165,6 +165,13 @@ packages: url: "https://pub.flutter-io.cn" source: hosted version: "1.1.2" + flutter_vosk_wakeword: + dependency: "direct main" + description: + path: "packages/flutter_vosk_wakeword" + relative: true + source: path + version: "0.0.1" flutter_web_plugins: dependency: transitive description: flutter @@ -527,5 +534,5 @@ packages: source: hosted version: "1.1.0" sdks: - dart: ">=3.6.0 <4.0.0" + dart: ">=3.6.2 <4.0.0" flutter: ">=3.27.1" diff --git a/pubspec.yaml b/pubspec.yaml index a6a464f..f9a581b 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -26,6 +26,8 @@ dependencies: path: packages/basic_intl ai_chat_core: path: packages/ai_chat_core + flutter_vosk_wakeword: + path: packages/flutter_vosk_wakeword # flutter_ingeek_carkey: 1.4.7 # app_car: # path: ../app_car @@ -40,7 +42,7 @@ flutter: plugin: platforms: android: - package: com.tsystems.ai_assistant_plugin + package: com.example.ai_assistant_plugin pluginClass: AiAssistantPlugin fonts: - family: VWHead_Bold