riderodd / react-native-vosk

Speech recognition module for react native using Vosk library
MIT License
41 stars 12 forks source link

loadModel : uuid is not created while dynamic loading model via Path #60

Open pranavaurea opened 1 month ago

pranavaurea commented 1 month ago

uuid is not created while dynamic loading model via Path voiceModelDownloadPath is : /sdcard/Android/data/com.aurea.retail.mobile/files/vosk-model-small-en-us-0.15

const vosk = useRef(new Vosk()).current; vosk.loadModel(voiceModelDownloadPath) catching below error

ERROR loadModel error [Error: /sdcard/Android/data/com.aurea.retail.mobile/files/vosk-model-small-en-us-0.15/uuid]

I have already verified the successful download of model in above path via adb shell TC21:/sdcard/Android/data/com.aurea.retail.mobile/files/vosk-model-small-en-us-0.15 $ ls -la total 28 drwxrwx--x 6 u0_a338 sdcard_rw 4096 2024-08-29 11:07 . drwxrwx--x 9 u0_a338 sdcard_rw 4096 2024-08-29 11:07 .. -rw-rw---- 1 u0_a338 sdcard_rw 199 2020-12-08 16:39 README drwxrwx--x 2 u0_a338 sdcard_rw 4096 2024-08-29 11:07 am drwxrwx--x 2 u0_a338 sdcard_rw 4096 2024-08-29 11:07 conf drwxrwx--x 3 u0_a338 sdcard_rw 4096 2024-08-29 11:07 graph drwxrwx--x 2 u0_a338 sdcard_rw 4096 2024-08-29 11:07 ivector

Note: The same is working and uuid is created after vosk.loadModel by keeping models in src/main/assets folder manually.

I also tried below script in build.gradle but it's not working as i am downloading once user login and by then path won't be available // Generate UUIDs for each models contained in android/src/main/assets/ tasks.register('genUUID') { doLast { fileTree(dir: "sdcard/Android/data/com.aurea.retail.mobile/files", exclude: ['/']).visit { if (fileDetails.directory) { def odir = file("sdcard/Android/data/com.aurea.retail.mobile/files/vosk-model-small-en-us-0.15") def ofile = file("$odir/uuid") mkdir odir ofile.text = UUID.randomUUID().toString() } } } } preBuild.dependsOn genUUID

riderodd commented 1 month ago

Hey @pranavaurea

Have you been using the git repo version ? The npm package isn't updated yet with dynamic path loading (see #57 )