react-native-executorch 0.3.2 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -13
- package/android/build.gradle +1 -1
- package/android/libs/executorch.aar +0 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +1 -2
- package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +58 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +13 -49
- package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +37 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +1 -1
- package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +51 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +86 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +3 -4
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +48 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +37 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +1 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +26 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +142 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +3 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/models/{StyleTransferModel.kt → styleTransfer/StyleTransferModel.kt} +2 -1
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -8
- package/android/src/main/java/com/swmansion/rnexecutorch/{models/classification/Utils.kt → utils/Numerical.kt} +1 -1
- package/ios/ExecutorchLib.xcframework/Info.plist +4 -4
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +14 -0
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +1 -23
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
- package/ios/RnExecutorch/Classification.mm +15 -18
- package/ios/RnExecutorch/ETModule.mm +6 -5
- package/ios/RnExecutorch/ImageSegmentation.h +5 -0
- package/ios/RnExecutorch/ImageSegmentation.mm +60 -0
- package/ios/RnExecutorch/LLM.mm +12 -53
- package/ios/RnExecutorch/OCR.mm +39 -43
- package/ios/RnExecutorch/ObjectDetection.mm +20 -20
- package/ios/RnExecutorch/SpeechToText.mm +6 -7
- package/ios/RnExecutorch/StyleTransfer.mm +16 -19
- package/ios/RnExecutorch/TextEmbeddings.h +5 -0
- package/ios/RnExecutorch/TextEmbeddings.mm +62 -0
- package/ios/RnExecutorch/Tokenizer.h +5 -0
- package/ios/RnExecutorch/Tokenizer.mm +83 -0
- package/ios/RnExecutorch/VerticalOCR.mm +36 -36
- package/ios/RnExecutorch/models/BaseModel.h +2 -5
- package/ios/RnExecutorch/models/BaseModel.mm +5 -15
- package/ios/RnExecutorch/models/classification/ClassificationModel.mm +2 -3
- package/ios/RnExecutorch/models/classification/Constants.mm +0 -1
- package/ios/RnExecutorch/models/image_segmentation/Constants.h +4 -0
- package/ios/RnExecutorch/models/image_segmentation/Constants.mm +8 -0
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +10 -0
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +146 -0
- package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +1 -2
- package/ios/RnExecutorch/models/ocr/Detector.h +0 -2
- package/ios/RnExecutorch/models/ocr/Detector.mm +2 -1
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +5 -4
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +9 -26
- package/ios/RnExecutorch/models/ocr/Recognizer.mm +1 -2
- package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -2
- package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +2 -1
- package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -1
- package/ios/RnExecutorch/models/stt/Moonshine.mm +1 -6
- package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +7 -11
- package/ios/RnExecutorch/models/stt/Whisper.mm +0 -5
- package/ios/RnExecutorch/models/{StyleTransferModel.h → style_transfer/StyleTransferModel.h} +1 -1
- package/ios/RnExecutorch/models/{StyleTransferModel.mm → style_transfer/StyleTransferModel.mm} +2 -3
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +15 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +45 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +8 -0
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +49 -0
- package/ios/RnExecutorch/utils/Conversions.h +15 -0
- package/ios/RnExecutorch/utils/ImageProcessor.h +0 -1
- package/ios/RnExecutorch/{models/classification/Utils.h → utils/Numerical.h} +0 -2
- package/ios/RnExecutorch/{models/classification/Utils.mm → utils/Numerical.mm} +0 -2
- package/ios/RnExecutorch/utils/ObjectDetectionUtils.mm +0 -2
- package/ios/RnExecutorch/utils/SFFT.mm +1 -1
- package/ios/RnExecutorch/utils/ScalarType.h +0 -2
- package/lib/module/Error.js +16 -2
- package/lib/module/Error.js.map +1 -1
- package/lib/module/constants/{llamaDefaults.js → llmDefaults.js} +7 -3
- package/lib/module/constants/llmDefaults.js.map +1 -0
- package/lib/module/constants/modelUrls.js +88 -27
- package/lib/module/constants/modelUrls.js.map +1 -1
- package/lib/module/constants/ocr/models.js +290 -0
- package/lib/module/constants/ocr/models.js.map +1 -0
- package/lib/module/constants/ocr/symbols.js +137 -2
- package/lib/module/constants/ocr/symbols.js.map +1 -1
- package/lib/module/constants/sttDefaults.js +50 -25
- package/lib/module/constants/sttDefaults.js.map +1 -1
- package/lib/module/controllers/LLMController.js +205 -0
- package/lib/module/controllers/LLMController.js.map +1 -0
- package/lib/module/controllers/OCRController.js +5 -10
- package/lib/module/controllers/OCRController.js.map +1 -1
- package/lib/module/controllers/SpeechToTextController.js +225 -122
- package/lib/module/controllers/SpeechToTextController.js.map +1 -1
- package/lib/module/controllers/VerticalOCRController.js +6 -10
- package/lib/module/controllers/VerticalOCRController.js.map +1 -1
- package/lib/module/hooks/computer_vision/useClassification.js +8 -23
- package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
- package/lib/module/hooks/computer_vision/useImageSegmentation.js +13 -0
- package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -0
- package/lib/module/hooks/computer_vision/useOCR.js +11 -6
- package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
- package/lib/module/hooks/computer_vision/useObjectDetection.js +8 -23
- package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
- package/lib/module/hooks/computer_vision/useStyleTransfer.js +8 -23
- package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
- package/lib/module/hooks/computer_vision/useVerticalOCR.js +10 -7
- package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
- package/lib/module/hooks/general/useExecutorchModule.js +8 -36
- package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useLLM.js +54 -63
- package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js +15 -11
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +14 -0
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -0
- package/lib/module/hooks/natural_language_processing/useTokenizer.js +54 -0
- package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -0
- package/lib/module/hooks/useModule.js +18 -62
- package/lib/module/hooks/useModule.js.map +1 -1
- package/lib/module/index.js +16 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/BaseModule.js +9 -10
- package/lib/module/modules/BaseModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ClassificationModule.js +8 -5
- package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js +28 -0
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -0
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js +8 -5
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
- package/lib/module/modules/computer_vision/StyleTransferModule.js +8 -5
- package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
- package/lib/module/modules/general/ExecutorchModule.js +8 -5
- package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/LLMModule.js +46 -27
- package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +8 -5
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +14 -0
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -0
- package/lib/module/modules/natural_language_processing/TokenizerModule.js +26 -0
- package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -0
- package/lib/module/native/NativeClassification.js.map +1 -1
- package/lib/module/native/NativeImageSegmentation.js +5 -0
- package/lib/module/native/NativeImageSegmentation.js.map +1 -0
- package/lib/module/native/NativeLLM.js.map +1 -1
- package/lib/module/native/NativeTextEmbeddings.js +5 -0
- package/lib/module/native/NativeTextEmbeddings.js.map +1 -0
- package/lib/module/native/NativeTokenizer.js +5 -0
- package/lib/module/native/NativeTokenizer.js.map +1 -0
- package/lib/module/native/RnExecutorchModules.js +18 -113
- package/lib/module/native/RnExecutorchModules.js.map +1 -1
- package/lib/module/types/common.js.map +1 -1
- package/lib/module/types/imageSegmentation.js +29 -0
- package/lib/module/types/imageSegmentation.js.map +1 -0
- package/lib/module/types/llm.js +7 -0
- package/lib/module/types/llm.js.map +1 -0
- package/lib/module/types/{object_detection.js → objectDetection.js} +1 -1
- package/lib/module/types/objectDetection.js.map +1 -0
- package/lib/module/types/ocr.js +2 -0
- package/lib/module/types/stt.js +82 -0
- package/lib/module/types/stt.js.map +1 -0
- package/lib/module/utils/ResourceFetcher.js +156 -0
- package/lib/module/utils/ResourceFetcher.js.map +1 -0
- package/lib/module/utils/llm.js +25 -0
- package/lib/module/utils/llm.js.map +1 -0
- package/lib/module/utils/stt.js +22 -0
- package/lib/module/utils/stt.js.map +1 -0
- package/lib/typescript/Error.d.ts +4 -1
- package/lib/typescript/Error.d.ts.map +1 -1
- package/lib/typescript/constants/{llamaDefaults.d.ts → llmDefaults.d.ts} +5 -5
- package/lib/typescript/constants/llmDefaults.d.ts.map +1 -0
- package/lib/typescript/constants/modelUrls.d.ts +74 -28
- package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
- package/lib/typescript/constants/ocr/models.d.ts +285 -0
- package/lib/typescript/constants/ocr/models.d.ts.map +1 -0
- package/lib/typescript/constants/ocr/symbols.d.ts +73 -1
- package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
- package/lib/typescript/constants/sttDefaults.d.ts +8 -13
- package/lib/typescript/constants/sttDefaults.d.ts.map +1 -1
- package/lib/typescript/controllers/LLMController.d.ts +46 -0
- package/lib/typescript/controllers/LLMController.d.ts.map +1 -0
- package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
- package/lib/typescript/controllers/SpeechToTextController.d.ts +30 -16
- package/lib/typescript/controllers/SpeechToTextController.d.ts.map +1 -1
- package/lib/typescript/controllers/VerticalOCRController.d.ts +1 -1
- package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts +5 -5
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +37 -0
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -0
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts +2 -1
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -4
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +4 -2
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +2 -1
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/general/useExecutorchModule.d.ts +5 -6
- package/lib/typescript/hooks/general/useExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -6
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +7 -3
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +13 -0
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -0
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +16 -0
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -0
- package/lib/typescript/hooks/useModule.d.ts +11 -10
- package/lib/typescript/hooks/useModule.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +15 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/modules/BaseModule.d.ts +4 -5
- package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +7 -7
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +32 -0
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -0
- package/lib/typescript/modules/computer_vision/OCRModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +6 -5
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +6 -5
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts.map +1 -1
- package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -3
- package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -5
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +7 -4
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +8 -0
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -0
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +12 -0
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -0
- package/lib/typescript/native/NativeClassification.d.ts.map +1 -1
- package/lib/typescript/native/NativeImageSegmentation.d.ts +10 -0
- package/lib/typescript/native/NativeImageSegmentation.d.ts.map +1 -0
- package/lib/typescript/native/NativeLLM.d.ts +3 -4
- package/lib/typescript/native/NativeLLM.d.ts.map +1 -1
- package/lib/typescript/native/NativeObjectDetection.d.ts +1 -1
- package/lib/typescript/native/NativeObjectDetection.d.ts.map +1 -1
- package/lib/typescript/native/NativeSpeechToText.d.ts +2 -2
- package/lib/typescript/native/NativeSpeechToText.d.ts.map +1 -1
- package/lib/typescript/native/NativeTextEmbeddings.d.ts +8 -0
- package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +1 -0
- package/lib/typescript/native/NativeTokenizer.d.ts +12 -0
- package/lib/typescript/native/NativeTokenizer.d.ts.map +1 -0
- package/lib/typescript/native/RnExecutorchModules.d.ts +18 -41
- package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
- package/lib/typescript/types/common.d.ts +1 -26
- package/lib/typescript/types/common.d.ts.map +1 -1
- package/lib/typescript/types/imageSegmentation.d.ts +25 -0
- package/lib/typescript/types/imageSegmentation.d.ts.map +1 -0
- package/lib/typescript/types/llm.d.ts +38 -0
- package/lib/typescript/types/llm.d.ts.map +1 -0
- package/lib/typescript/types/{object_detection.d.ts → objectDetection.d.ts} +1 -1
- package/lib/typescript/types/objectDetection.d.ts.map +1 -0
- package/lib/typescript/types/ocr.d.ts +2 -1
- package/lib/typescript/types/ocr.d.ts.map +1 -1
- package/lib/typescript/types/stt.d.ts +91 -0
- package/lib/typescript/types/stt.d.ts.map +1 -0
- package/lib/typescript/utils/ResourceFetcher.d.ts +17 -0
- package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -0
- package/lib/typescript/utils/llm.d.ts +3 -0
- package/lib/typescript/utils/llm.d.ts.map +1 -0
- package/lib/typescript/utils/stt.d.ts +2 -0
- package/lib/typescript/utils/stt.d.ts.map +1 -0
- package/package.json +12 -48
- package/react-native-executorch.podspec +1 -1
- package/src/Error.ts +16 -3
- package/src/constants/llmDefaults.ts +14 -0
- package/src/constants/modelUrls.ts +146 -39
- package/src/constants/ocr/models.ts +453 -0
- package/src/constants/ocr/symbols.ts +147 -3
- package/src/constants/sttDefaults.ts +55 -37
- package/src/controllers/LLMController.ts +286 -0
- package/src/controllers/OCRController.ts +14 -28
- package/src/controllers/SpeechToTextController.ts +318 -180
- package/src/controllers/VerticalOCRController.ts +17 -32
- package/src/hooks/computer_vision/useClassification.ts +11 -26
- package/src/hooks/computer_vision/useImageSegmentation.ts +18 -0
- package/src/hooks/computer_vision/useOCR.ts +17 -5
- package/src/hooks/computer_vision/useObjectDetection.ts +10 -24
- package/src/hooks/computer_vision/useStyleTransfer.ts +9 -25
- package/src/hooks/computer_vision/useVerticalOCR.ts +11 -4
- package/src/hooks/general/useExecutorchModule.ts +10 -50
- package/src/hooks/natural_language_processing/useLLM.ts +80 -97
- package/src/hooks/natural_language_processing/useSpeechToText.ts +39 -12
- package/src/hooks/natural_language_processing/useTextEmbeddings.ts +18 -0
- package/src/hooks/natural_language_processing/useTokenizer.ts +61 -0
- package/src/hooks/useModule.ts +32 -92
- package/src/index.tsx +16 -2
- package/src/modules/BaseModule.ts +16 -26
- package/src/modules/computer_vision/ClassificationModule.ts +13 -8
- package/src/modules/computer_vision/ImageSegmentationModule.ts +39 -0
- package/src/modules/computer_vision/ObjectDetectionModule.ts +13 -8
- package/src/modules/computer_vision/StyleTransferModule.ts +13 -8
- package/src/modules/general/ExecutorchModule.ts +11 -6
- package/src/modules/natural_language_processing/LLMModule.ts +64 -51
- package/src/modules/natural_language_processing/SpeechToTextModule.ts +25 -10
- package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +18 -0
- package/src/modules/natural_language_processing/TokenizerModule.ts +34 -0
- package/src/native/NativeClassification.ts +0 -1
- package/src/native/NativeImageSegmentation.ts +14 -0
- package/src/native/NativeLLM.ts +3 -10
- package/src/native/NativeObjectDetection.ts +1 -1
- package/src/native/NativeSpeechToText.ts +2 -2
- package/src/native/NativeTextEmbeddings.ts +9 -0
- package/src/native/NativeTokenizer.ts +13 -0
- package/src/native/RnExecutorchModules.ts +54 -234
- package/src/types/common.ts +1 -44
- package/src/types/imageSegmentation.ts +25 -0
- package/src/types/llm.ts +57 -0
- package/src/types/ocr.ts +3 -1
- package/src/types/stt.ts +93 -0
- package/src/utils/ResourceFetcher.ts +196 -0
- package/src/utils/llm.ts +34 -0
- package/src/utils/stt.ts +28 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/llms/ConversationManager.kt +0 -68
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/_CodeSignature/CodeResources +0 -124
- package/ios/RnExecutorch/utils/llms/Constants.h +0 -6
- package/ios/RnExecutorch/utils/llms/Constants.mm +0 -23
- package/ios/RnExecutorch/utils/llms/ConversationManager.h +0 -26
- package/ios/RnExecutorch/utils/llms/ConversationManager.mm +0 -71
- package/lib/module/constants/llamaDefaults.js.map +0 -1
- package/lib/module/modules/computer_vision/BaseCVModule.js +0 -14
- package/lib/module/modules/computer_vision/BaseCVModule.js.map +0 -1
- package/lib/module/types/object_detection.js.map +0 -1
- package/lib/module/utils/fetchResource.js +0 -93
- package/lib/module/utils/fetchResource.js.map +0 -1
- package/lib/module/utils/listDownloadedResources.js +0 -13
- package/lib/module/utils/listDownloadedResources.js.map +0 -1
- package/lib/typescript/constants/llamaDefaults.d.ts.map +0 -1
- package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts +0 -9
- package/lib/typescript/modules/computer_vision/BaseCVModule.d.ts.map +0 -1
- package/lib/typescript/types/object_detection.d.ts.map +0 -1
- package/lib/typescript/utils/fetchResource.d.ts +0 -3
- package/lib/typescript/utils/fetchResource.d.ts.map +0 -1
- package/lib/typescript/utils/listDownloadedResources.d.ts +0 -3
- package/lib/typescript/utils/listDownloadedResources.d.ts.map +0 -1
- package/src/constants/llamaDefaults.ts +0 -9
- package/src/modules/computer_vision/BaseCVModule.ts +0 -22
- package/src/utils/fetchResource.ts +0 -106
- package/src/utils/listDownloadedResources.ts +0 -12
- /package/src/types/{object_detection.ts → objectDetection.ts} +0 -0
|
@@ -1,41 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
let maxLength = 0;
|
|
10
|
-
for (let i = 0; i < seq1.length; i++) {
|
|
11
|
-
let j = 0;
|
|
12
|
-
let hammingDist = 0;
|
|
13
|
-
while (j < seq2.length && i + j < seq1.length && (seq1[i + j] === seq2[j] || hammingDist < HAMMING_DIST_THRESHOLD)) {
|
|
14
|
-
if (seq1[i + j] !== seq2[j]) {
|
|
15
|
-
hammingDist++;
|
|
16
|
-
}
|
|
17
|
-
j++;
|
|
18
|
-
}
|
|
19
|
-
if (j >= maxLength) {
|
|
20
|
-
maxLength = j;
|
|
21
|
-
maxInd = i;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
return maxInd;
|
|
25
|
-
};
|
|
3
|
+
import { HAMMING_DIST_THRESHOLD, MODEL_CONFIGS, SECOND, MODES, NUM_TOKENS_TO_TRIM, STREAMING_ACTION } from '../constants/sttDefaults';
|
|
4
|
+
import { SpeechToTextNativeModule } from '../native/RnExecutorchModules';
|
|
5
|
+
import { TokenizerModule } from '../modules/natural_language_processing/TokenizerModule';
|
|
6
|
+
import { ResourceFetcher } from '../utils/ResourceFetcher';
|
|
7
|
+
import { longCommonInfPref } from '../utils/stt';
|
|
8
|
+
import { ETError, getError } from '../Error';
|
|
26
9
|
export class SpeechToTextController {
|
|
27
|
-
|
|
10
|
+
speechToTextNativeModule = SpeechToTextNativeModule;
|
|
28
11
|
sequence = [];
|
|
29
12
|
isReady = false;
|
|
30
13
|
isGenerating = false;
|
|
31
|
-
|
|
32
|
-
|
|
14
|
+
chunks = [];
|
|
15
|
+
seqs = [];
|
|
16
|
+
prevSeq = [];
|
|
17
|
+
waveform = [];
|
|
18
|
+
numOfChunks = 0;
|
|
19
|
+
streaming = false;
|
|
33
20
|
|
|
34
21
|
// User callbacks
|
|
35
22
|
|
|
36
23
|
constructor({
|
|
37
24
|
transcribeCallback,
|
|
38
|
-
|
|
25
|
+
modelDownloadProgressCallback,
|
|
39
26
|
isReadyCallback,
|
|
40
27
|
isGeneratingCallback,
|
|
41
28
|
onErrorCallback,
|
|
@@ -43,8 +30,8 @@ export class SpeechToTextController {
|
|
|
43
30
|
windowSize,
|
|
44
31
|
streamingConfig
|
|
45
32
|
}) {
|
|
46
|
-
this.decodedTranscribeCallback = seq => transcribeCallback(this.
|
|
47
|
-
this.
|
|
33
|
+
this.decodedTranscribeCallback = async seq => transcribeCallback(await this.tokenIdsToText(seq));
|
|
34
|
+
this.modelDownloadProgressCallback = modelDownloadProgressCallback;
|
|
48
35
|
this.isReadyCallback = isReady => {
|
|
49
36
|
this.isReady = isReady;
|
|
50
37
|
isReadyCallback?.(isReady);
|
|
@@ -53,34 +40,40 @@ export class SpeechToTextController {
|
|
|
53
40
|
this.isGenerating = isGenerating;
|
|
54
41
|
isGeneratingCallback?.(isGenerating);
|
|
55
42
|
};
|
|
56
|
-
this.onErrorCallback =
|
|
57
|
-
|
|
43
|
+
this.onErrorCallback = error => {
|
|
44
|
+
if (onErrorCallback) {
|
|
45
|
+
onErrorCallback(error ? new Error(getError(error)) : undefined);
|
|
46
|
+
return;
|
|
47
|
+
} else {
|
|
48
|
+
throw new Error(getError(error));
|
|
49
|
+
}
|
|
50
|
+
};
|
|
58
51
|
this.configureStreaming(overlapSeconds, windowSize, streamingConfig || 'balanced');
|
|
59
52
|
}
|
|
60
|
-
async fetchTokenizer(localUri) {
|
|
61
|
-
let tokenzerUri = await fetchResource(localUri || this.config.tokenizer.source);
|
|
62
|
-
return JSON.parse(await FileSystem.readAsStringAsync(tokenzerUri));
|
|
63
|
-
}
|
|
64
53
|
async loadModel(modelName, encoderSource, decoderSource, tokenizerSource) {
|
|
65
|
-
this.onErrorCallback
|
|
54
|
+
this.onErrorCallback(undefined);
|
|
66
55
|
this.isReadyCallback(false);
|
|
67
56
|
this.config = MODEL_CONFIGS[modelName];
|
|
68
|
-
this.modelName = modelName;
|
|
69
57
|
try {
|
|
70
|
-
|
|
71
|
-
encoderSource = await
|
|
72
|
-
decoderSource = await fetchResource(decoderSource || this.config.sources.decoder, progress => this.modelDownloadProgessCallback?.(0.5 + progress / 2));
|
|
58
|
+
await TokenizerModule.load(tokenizerSource || this.config.tokenizer.source);
|
|
59
|
+
[encoderSource, decoderSource] = await ResourceFetcher.fetchMultipleResources(this.modelDownloadProgressCallback, encoderSource || this.config.sources.encoder, decoderSource || this.config.sources.decoder);
|
|
73
60
|
} catch (e) {
|
|
74
|
-
this.onErrorCallback
|
|
61
|
+
this.onErrorCallback(e);
|
|
75
62
|
return;
|
|
76
63
|
}
|
|
64
|
+
if (modelName === 'whisperMultilingual') {
|
|
65
|
+
// The underlying native class is instantiated based on the name of the model. There is no need to
|
|
66
|
+
// create a separate class for multilingual version of Whisper, since it is the same. We just need
|
|
67
|
+
// the distinction here, in TS, for start tokens and such. If we introduce
|
|
68
|
+
// more versions of Whisper, such as the small one, this should be refactored.
|
|
69
|
+
modelName = 'whisper';
|
|
70
|
+
}
|
|
77
71
|
try {
|
|
78
|
-
await this.
|
|
79
|
-
this.
|
|
72
|
+
await this.speechToTextNativeModule.loadModule(modelName, [encoderSource, decoderSource]);
|
|
73
|
+
this.modelDownloadProgressCallback?.(1);
|
|
80
74
|
this.isReadyCallback(true);
|
|
81
75
|
} catch (e) {
|
|
82
|
-
this.onErrorCallback
|
|
83
|
-
console.error('Error when loading the SpeechToTextController!', e);
|
|
76
|
+
this.onErrorCallback(e);
|
|
84
77
|
}
|
|
85
78
|
}
|
|
86
79
|
configureStreaming(overlapSeconds, windowSize, streamingConfig) {
|
|
@@ -98,106 +91,216 @@ export class SpeechToTextController {
|
|
|
98
91
|
this.windowSize = 30 * SECOND - 2 * this.overlapSeconds;
|
|
99
92
|
}
|
|
100
93
|
}
|
|
101
|
-
chunkWaveform(
|
|
102
|
-
this.
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
94
|
+
chunkWaveform() {
|
|
95
|
+
this.numOfChunks = Math.ceil(this.waveform.length / this.windowSize);
|
|
96
|
+
for (let i = 0; i < this.numOfChunks; i++) {
|
|
97
|
+
let chunk = [];
|
|
98
|
+
const left = Math.max(this.windowSize * i - this.overlapSeconds, 0);
|
|
99
|
+
const right = Math.min(this.windowSize * (i + 1) + this.overlapSeconds, this.waveform.length);
|
|
100
|
+
chunk = this.waveform.slice(left, right);
|
|
106
101
|
this.chunks.push(chunk);
|
|
107
102
|
}
|
|
108
103
|
}
|
|
109
|
-
|
|
110
|
-
if (!this.isReady) {
|
|
111
|
-
this.onErrorCallback?.(new Error('Model is not yet ready'));
|
|
112
|
-
return '';
|
|
113
|
-
}
|
|
114
|
-
if (this.isGenerating) {
|
|
115
|
-
this.onErrorCallback?.(new Error('Model is already transcribing'));
|
|
116
|
-
return '';
|
|
117
|
-
}
|
|
118
|
-
this.onErrorCallback?.(undefined);
|
|
119
|
-
this.isGeneratingCallback(true);
|
|
104
|
+
resetState() {
|
|
120
105
|
this.sequence = [];
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
106
|
+
this.seqs = [];
|
|
107
|
+
this.waveform = [];
|
|
108
|
+
this.prevSeq = [];
|
|
109
|
+
this.chunks = [];
|
|
110
|
+
this.decodedTranscribeCallback([]);
|
|
111
|
+
this.onErrorCallback(undefined);
|
|
112
|
+
}
|
|
113
|
+
expectedChunkLength() {
|
|
114
|
+
//only first chunk can be of shorter length, for first chunk there are no seqs decoded
|
|
115
|
+
return this.seqs.length ? this.windowSize + 2 * this.overlapSeconds : this.windowSize + this.overlapSeconds;
|
|
116
|
+
}
|
|
117
|
+
async getStartingTokenIds(audioLanguage) {
|
|
118
|
+
// We need different starting token ids based on the multilingualism of the model.
|
|
119
|
+
// The eng version only needs BOS token, while the multilingual one needs:
|
|
120
|
+
// [BOS, LANG, TRANSCRIBE]. Optionally we should also set notimestamps token, as timestamps
|
|
121
|
+
// is not yet supported.
|
|
122
|
+
if (!audioLanguage) {
|
|
123
|
+
return [this.config.tokenizer.bos];
|
|
124
124
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
125
|
+
// FIXME: I should use .getTokenId for the BOS as well, should remove it from config
|
|
126
|
+
const langTokenId = await TokenizerModule.tokenToId(`<|${audioLanguage}|>`);
|
|
127
|
+
const transcribeTokenId = await TokenizerModule.tokenToId('<|transcribe|>');
|
|
128
|
+
const noTimestampsTokenId = await TokenizerModule.tokenToId('<|notimestamps|>');
|
|
129
|
+
const startingTokenIds = [this.config.tokenizer.bos, langTokenId, transcribeTokenId, noTimestampsTokenId];
|
|
130
|
+
return startingTokenIds;
|
|
131
|
+
}
|
|
132
|
+
async decodeChunk(chunk, audioLanguage) {
|
|
133
|
+
const seq = await this.getStartingTokenIds(audioLanguage);
|
|
134
|
+
let prevSeqTokenIdx = 0;
|
|
135
|
+
this.prevSeq = this.sequence.slice();
|
|
136
|
+
try {
|
|
137
|
+
await this.encode(chunk);
|
|
138
|
+
} catch (error) {
|
|
139
|
+
this.onErrorCallback(new Error(getError(error) + ' encoding error'));
|
|
140
|
+
return [];
|
|
141
|
+
}
|
|
142
|
+
let lastToken = seq.at(-1);
|
|
143
|
+
while (lastToken !== this.config.tokenizer.eos) {
|
|
133
144
|
try {
|
|
134
|
-
await this.
|
|
145
|
+
lastToken = await this.decode(seq);
|
|
135
146
|
} catch (error) {
|
|
136
|
-
this.onErrorCallback
|
|
137
|
-
return
|
|
147
|
+
this.onErrorCallback(new Error(getError(error) + ' decoding error'));
|
|
148
|
+
return [...seq, this.config.tokenizer.eos];
|
|
138
149
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
this.onErrorCallback?.(`Decode ${error}`);
|
|
144
|
-
return '';
|
|
145
|
-
}
|
|
146
|
-
seq = [...seq, lastToken];
|
|
147
|
-
if (seqs.length > 0 && seq.length < seqs.at(-1).length && seq.length % 3 !== 0) {
|
|
148
|
-
prevseq = [...prevseq, seqs.at(-1)[prevSeqTokenIdx++]];
|
|
149
|
-
this.decodedTranscribeCallback(prevseq);
|
|
150
|
-
}
|
|
150
|
+
seq.push(lastToken);
|
|
151
|
+
if (this.seqs.length > 0 && seq.length < this.seqs.at(-1).length && seq.length % 3 !== 0) {
|
|
152
|
+
this.prevSeq.push(this.seqs.at(-1)[prevSeqTokenIdx++]);
|
|
153
|
+
this.decodedTranscribeCallback(this.prevSeq);
|
|
151
154
|
}
|
|
155
|
+
}
|
|
156
|
+
return seq;
|
|
157
|
+
}
|
|
158
|
+
async handleOverlaps(seqs) {
|
|
159
|
+
const maxInd = longCommonInfPref(seqs.at(-2), seqs.at(-1), HAMMING_DIST_THRESHOLD);
|
|
160
|
+
this.sequence = [...this.sequence, ...seqs.at(-2).slice(0, maxInd)];
|
|
161
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
162
|
+
return this.sequence.slice();
|
|
163
|
+
}
|
|
164
|
+
trimLeft(numOfTokensToTrim) {
|
|
165
|
+
const idx = this.seqs.length - 1;
|
|
166
|
+
if (this.seqs[idx][0] === this.config.tokenizer.bos) {
|
|
167
|
+
this.seqs[idx] = this.seqs[idx].slice(numOfTokensToTrim);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
trimRight(numOfTokensToTrim) {
|
|
171
|
+
const idx = this.seqs.length - 2;
|
|
172
|
+
if (this.seqs[idx].at(-1) === this.config.tokenizer.eos) {
|
|
173
|
+
this.seqs[idx] = this.seqs[idx].slice(0, -numOfTokensToTrim);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
// since we are calling this every time (except first) after a new seq is pushed to this.seqs
|
|
178
|
+
// we can only trim left the last seq and trim right the second to last seq
|
|
179
|
+
async trimSequences(audioLanguage) {
|
|
180
|
+
const numSpecialTokens = (await this.getStartingTokenIds(audioLanguage)).length;
|
|
181
|
+
this.trimLeft(numSpecialTokens + NUM_TOKENS_TO_TRIM);
|
|
182
|
+
this.trimRight(numSpecialTokens + NUM_TOKENS_TO_TRIM);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// if last chunk is too short combine it with second to last to improve quality
|
|
186
|
+
validateAndFixLastChunk() {
|
|
187
|
+
const lastChunkLength = this.chunks.at(-1).length / SECOND;
|
|
188
|
+
const secondToLastChunkLength = this.chunks.at(-2).length / SECOND;
|
|
189
|
+
if (lastChunkLength < 5 && secondToLastChunkLength + lastChunkLength < 30) {
|
|
190
|
+
this.chunks[this.chunks.length - 2] = [...this.chunks.at(-2).slice(0, -this.overlapSeconds * 2), ...this.chunks.at(-1)];
|
|
191
|
+
this.chunks = this.chunks.slice(0, -1);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
async tokenIdsToText(tokenIds) {
|
|
195
|
+
try {
|
|
196
|
+
return TokenizerModule.decode(tokenIds, true);
|
|
197
|
+
} catch (e) {
|
|
198
|
+
this.onErrorCallback(new Error(`An error has occurred when decoding the token ids: ${e}`));
|
|
199
|
+
return '';
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
async transcribe(waveform, audioLanguage) {
|
|
203
|
+
try {
|
|
204
|
+
if (!this.isReady) throw Error(getError(ETError.ModuleNotLoaded));
|
|
205
|
+
if (this.isGenerating || this.streaming) throw Error(getError(ETError.ModelGenerating));
|
|
206
|
+
if (!!audioLanguage !== this.config.isMultilingual) throw new Error(getError(ETError.MultilingualConfiguration));
|
|
207
|
+
} catch (e) {
|
|
208
|
+
this.onErrorCallback(e);
|
|
209
|
+
return '';
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// Making sure that the error is not set when we get there
|
|
213
|
+
this.isGeneratingCallback(true);
|
|
214
|
+
this.resetState();
|
|
215
|
+
this.waveform = waveform;
|
|
216
|
+
this.chunkWaveform();
|
|
217
|
+
this.validateAndFixLastChunk();
|
|
218
|
+
for (let chunkId = 0; chunkId < this.chunks.length; chunkId++) {
|
|
219
|
+
const seq = await this.decodeChunk(this.chunks.at(chunkId));
|
|
220
|
+
// whole audio is inside one chunk, no processing required
|
|
152
221
|
if (this.chunks.length === 1) {
|
|
153
|
-
|
|
154
|
-
this.
|
|
155
|
-
this.decodedTranscribeCallback(finalSeq);
|
|
222
|
+
this.sequence = seq;
|
|
223
|
+
this.decodedTranscribeCallback(seq);
|
|
156
224
|
break;
|
|
157
225
|
}
|
|
158
|
-
|
|
159
|
-
if (seqs.length
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
seqs = [...seqs, seq.slice(4, -4)];
|
|
165
|
-
}
|
|
166
|
-
if (seqs.length < 2) {
|
|
167
|
-
continue;
|
|
168
|
-
}
|
|
169
|
-
const maxInd = longCommonInfPref(seqs.at(-2), seqs.at(-1));
|
|
170
|
-
finalSeq = [...this.sequence, ...seqs.at(-2).slice(0, maxInd)];
|
|
171
|
-
this.sequence = finalSeq;
|
|
172
|
-
this.decodedTranscribeCallback(finalSeq);
|
|
173
|
-
prevseq = finalSeq;
|
|
226
|
+
this.seqs.push(seq);
|
|
227
|
+
if (this.seqs.length < 2) continue;
|
|
228
|
+
|
|
229
|
+
// Remove starting tokenIds and some additional ones
|
|
230
|
+
await this.trimSequences(audioLanguage);
|
|
231
|
+
this.prevSeq = await this.handleOverlaps(this.seqs);
|
|
174
232
|
|
|
175
|
-
//last sequence processed
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
this.sequence =
|
|
179
|
-
this.decodedTranscribeCallback(
|
|
180
|
-
|
|
233
|
+
// last sequence processed
|
|
234
|
+
// overlaps are already handled, so just append the last seq
|
|
235
|
+
if (this.seqs.length === this.chunks.length) {
|
|
236
|
+
this.sequence = [...this.sequence, ...this.seqs.at(-1)];
|
|
237
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
238
|
+
this.prevSeq = this.sequence;
|
|
181
239
|
}
|
|
182
240
|
}
|
|
183
|
-
const
|
|
241
|
+
const decodedText = await this.tokenIdsToText(this.sequence);
|
|
184
242
|
this.isGeneratingCallback(false);
|
|
185
|
-
return
|
|
243
|
+
return decodedText;
|
|
186
244
|
}
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
this.
|
|
245
|
+
async streamingTranscribe(streamAction, waveform, audioLanguage) {
|
|
246
|
+
try {
|
|
247
|
+
if (!this.isReady) throw Error(getError(ETError.ModuleNotLoaded));
|
|
248
|
+
if (!!audioLanguage !== this.config.isMultilingual) throw new Error(getError(ETError.MultilingualConfiguration));
|
|
249
|
+
if (streamAction === STREAMING_ACTION.START && !this.streaming && this.isGenerating) throw Error(getError(ETError.ModelGenerating));
|
|
250
|
+
if (streamAction === STREAMING_ACTION.START && this.streaming) throw Error(getError(ETError.ModelGenerating));
|
|
251
|
+
if (streamAction === STREAMING_ACTION.DATA && !this.streaming) throw Error(getError(ETError.StreamingNotStarted));
|
|
252
|
+
if (streamAction === STREAMING_ACTION.STOP && !this.streaming) throw Error(getError(ETError.StreamingNotStarted));
|
|
253
|
+
if (streamAction === STREAMING_ACTION.DATA && !waveform) throw new Error(getError(ETError.MissingDataChunk));
|
|
254
|
+
} catch (e) {
|
|
255
|
+
this.onErrorCallback(e);
|
|
190
256
|
return '';
|
|
191
257
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
258
|
+
if (streamAction === STREAMING_ACTION.START) {
|
|
259
|
+
this.resetState();
|
|
260
|
+
this.streaming = true;
|
|
261
|
+
this.isGeneratingCallback(true);
|
|
262
|
+
}
|
|
263
|
+
this.waveform = [...this.waveform, ...(waveform || [])];
|
|
264
|
+
|
|
265
|
+
// while buffer has at least required size get chunk and decode
|
|
266
|
+
while (this.waveform.length >= this.expectedChunkLength()) {
|
|
267
|
+
const chunk = this.waveform.slice(0, this.windowSize + this.overlapSeconds * (1 + Number(this.seqs.length > 0)));
|
|
268
|
+
this.chunks = [chunk]; //save last chunk for STREAMING_ACTION.STOP
|
|
269
|
+
this.waveform = this.waveform.slice(this.windowSize - this.overlapSeconds * Number(this.seqs.length === 0));
|
|
270
|
+
const seq = await this.decodeChunk(chunk, audioLanguage);
|
|
271
|
+
this.seqs.push(seq);
|
|
272
|
+
if (this.seqs.length < 2) continue;
|
|
273
|
+
await this.trimSequences(audioLanguage);
|
|
274
|
+
await this.handleOverlaps(this.seqs);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
// got final package, process all remaining waveform data
|
|
278
|
+
// since we run the loop above the waveform has at most one chunk in it
|
|
279
|
+
if (streamAction === STREAMING_ACTION.STOP) {
|
|
280
|
+
// pad remaining waveform data with previous chunk to this.windowSize + 2 * this.overlapSeconds
|
|
281
|
+
const chunk = this.chunks.length ? [...this.chunks[0].slice(0, this.windowSize), ...this.waveform].slice(-this.windowSize - 2 * this.overlapSeconds) : this.waveform;
|
|
282
|
+
this.waveform = [];
|
|
283
|
+
const seq = await this.decodeChunk(chunk, audioLanguage);
|
|
284
|
+
this.seqs.push(seq);
|
|
285
|
+
if (this.seqs.length === 1) {
|
|
286
|
+
this.sequence = this.seqs[0];
|
|
287
|
+
} else {
|
|
288
|
+
await this.trimSequences(audioLanguage);
|
|
289
|
+
await this.handleOverlaps(this.seqs);
|
|
290
|
+
this.sequence = [...this.sequence, ...this.seqs.at(-1)];
|
|
291
|
+
}
|
|
292
|
+
this.decodedTranscribeCallback(this.sequence);
|
|
293
|
+
this.isGeneratingCallback(false);
|
|
294
|
+
this.streaming = false;
|
|
295
|
+
}
|
|
296
|
+
const decodedText = await this.tokenIdsToText(this.sequence);
|
|
297
|
+
return decodedText;
|
|
195
298
|
}
|
|
196
299
|
async encode(waveform) {
|
|
197
|
-
return await this.
|
|
300
|
+
return await this.speechToTextNativeModule.encode(waveform);
|
|
198
301
|
}
|
|
199
302
|
async decode(seq, encodings) {
|
|
200
|
-
return await this.
|
|
303
|
+
return await this.speechToTextNativeModule.decode(seq, encodings || []);
|
|
201
304
|
}
|
|
202
305
|
}
|
|
203
306
|
//# sourceMappingURL=SpeechToTextController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_SpeechToTextModule","FileSystem","fetchResource","HAMMING_DIST_THRESHOLD","SECOND","MODEL_CONFIGS","MODES","longCommonInfPref","seq1","seq2","maxInd","maxLength","i","length","j","hammingDist","SpeechToTextController","chunks","sequence","isReady","isGenerating","constructor","transcribeCallback","modelDownloadProgessCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","overlapSeconds","windowSize","streamingConfig","decodedTranscribeCallback","seq","decodeSeq","nativeModule","configureStreaming","fetchTokenizer","localUri","tokenzerUri","config","tokenizer","source","JSON","parse","readAsStringAsync","loadModel","modelName","encoderSource","decoderSource","tokenizerSource","undefined","tokenMapping","sources","encoder","progress","decoder","e","loadModule","Error","console","error","warn","chunkWaveform","waveform","numOfChunks","Math","ceil","chunk","slice","max","min","push","transcribe","seqs","prevseq","chunkId","lastToken","sos","prevSeqTokenIdx","finalSeq","encode","at","eos","decode","decodedSeq","filter","token","map","join","replaceAll","specialChar","encodings"],"sourceRoot":"../../../src","sources":["controllers/SpeechToTextController.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["HAMMING_DIST_THRESHOLD","MODEL_CONFIGS","SECOND","MODES","NUM_TOKENS_TO_TRIM","STREAMING_ACTION","SpeechToTextNativeModule","TokenizerModule","ResourceFetcher","longCommonInfPref","ETError","getError","SpeechToTextController","speechToTextNativeModule","sequence","isReady","isGenerating","chunks","seqs","prevSeq","waveform","numOfChunks","streaming","constructor","transcribeCallback","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","overlapSeconds","windowSize","streamingConfig","decodedTranscribeCallback","seq","tokenIdsToText","error","Error","undefined","configureStreaming","loadModel","modelName","encoderSource","decoderSource","tokenizerSource","config","load","tokenizer","source","fetchMultipleResources","sources","encoder","decoder","e","loadModule","console","warn","chunkWaveform","Math","ceil","length","i","chunk","left","max","right","min","slice","push","resetState","expectedChunkLength","getStartingTokenIds","audioLanguage","bos","langTokenId","tokenToId","transcribeTokenId","noTimestampsTokenId","startingTokenIds","decodeChunk","prevSeqTokenIdx","encode","lastToken","at","eos","decode","handleOverlaps","maxInd","trimLeft","numOfTokensToTrim","idx","trimRight","trimSequences","numSpecialTokens","validateAndFixLastChunk","lastChunkLength","secondToLastChunkLength","tokenIds","transcribe","ModuleNotLoaded","ModelGenerating","isMultilingual","MultilingualConfiguration","chunkId","decodedText","streamingTranscribe","streamAction","START","DATA","StreamingNotStarted","STOP","MissingDataChunk","Number","encodings"],"sourceRoot":"../../../src","sources":["controllers/SpeechToTextController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import { symbols } from '../constants/ocr/symbols';
|
|
4
4
|
import { ETError, getError } from '../Error';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { VerticalOCRNativeModule } from '../native/RnExecutorchModules';
|
|
6
|
+
import { ResourceFetcher } from '../utils/ResourceFetcher';
|
|
7
7
|
export class VerticalOCRController {
|
|
8
8
|
isReady = false;
|
|
9
9
|
isGenerating = false;
|
|
@@ -14,7 +14,7 @@ export class VerticalOCRController {
|
|
|
14
14
|
isGeneratingCallback = _isGenerating => {},
|
|
15
15
|
errorCallback = _error => {}
|
|
16
16
|
}) {
|
|
17
|
-
this.
|
|
17
|
+
this.ocrNativeModule = VerticalOCRNativeModule;
|
|
18
18
|
this.modelDownloadProgressCallback = modelDownloadProgressCallback;
|
|
19
19
|
this.isReadyCallback = isReadyCallback;
|
|
20
20
|
this.isGeneratingCallback = isGeneratingCallback;
|
|
@@ -28,12 +28,8 @@ export class VerticalOCRController {
|
|
|
28
28
|
}
|
|
29
29
|
this.isReady = false;
|
|
30
30
|
this.isReadyCallback(this.isReady);
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
detectorLarge: await fetchResource(detectorSources.detectorLarge, calculateDownloadProgres(3, 1, this.modelDownloadProgressCallback)),
|
|
34
|
-
detectorNarrow: await fetchResource(detectorSources.detectorNarrow, calculateDownloadProgres(3, 2, this.modelDownloadProgressCallback))
|
|
35
|
-
};
|
|
36
|
-
await this.nativeModule.loadModule(detectorPaths.detectorLarge, detectorPaths.detectorNarrow, recognizerPath, symbols[language], independentCharacters);
|
|
31
|
+
const paths = await ResourceFetcher.fetchMultipleResources(this.modelDownloadProgressCallback, detectorSources.detectorLarge, detectorSources.detectorNarrow, independentCharacters ? recognizerSources.recognizerSmall : recognizerSources.recognizerLarge);
|
|
32
|
+
await this.ocrNativeModule.loadModule(paths[0], paths[1], paths[2], symbols[language], independentCharacters);
|
|
37
33
|
this.isReady = true;
|
|
38
34
|
this.isReadyCallback(this.isReady);
|
|
39
35
|
} catch (e) {
|
|
@@ -54,7 +50,7 @@ export class VerticalOCRController {
|
|
|
54
50
|
try {
|
|
55
51
|
this.isGenerating = true;
|
|
56
52
|
this.isGeneratingCallback(this.isGenerating);
|
|
57
|
-
return await this.
|
|
53
|
+
return await this.ocrNativeModule.forward(input);
|
|
58
54
|
} catch (e) {
|
|
59
55
|
throw new Error(getError(e));
|
|
60
56
|
} finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["symbols","ETError","getError","
|
|
1
|
+
{"version":3,"names":["symbols","ETError","getError","VerticalOCRNativeModule","ResourceFetcher","VerticalOCRController","isReady","isGenerating","error","constructor","modelDownloadProgressCallback","_downloadProgress","isReadyCallback","_isReady","isGeneratingCallback","_isGenerating","errorCallback","_error","ocrNativeModule","loadModel","detectorSources","recognizerSources","language","independentCharacters","Object","keys","length","Error","LanguageNotSupported","paths","fetchMultipleResources","detectorLarge","detectorNarrow","recognizerSmall","recognizerLarge","loadModule","e","forward","input","ModuleNotLoaded","ModelGenerating"],"sourceRoot":"../../../src","sources":["controllers/VerticalOCRController.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,28 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { _ClassificationModule } from '../../native/RnExecutorchModules';
|
|
3
|
+
import { ClassificationModule } from '../../modules/computer_vision/ClassificationModule';
|
|
5
4
|
import { useModule } from '../useModule';
|
|
6
5
|
export const useClassification = ({
|
|
7
|
-
modelSource
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
downloadProgress,
|
|
15
|
-
forwardImage: forward
|
|
16
|
-
} = useModule({
|
|
17
|
-
modelSource,
|
|
18
|
-
module
|
|
19
|
-
});
|
|
20
|
-
return {
|
|
21
|
-
error,
|
|
22
|
-
isReady,
|
|
23
|
-
isGenerating,
|
|
24
|
-
downloadProgress,
|
|
25
|
-
forward
|
|
26
|
-
};
|
|
27
|
-
};
|
|
6
|
+
modelSource,
|
|
7
|
+
preventLoad = false
|
|
8
|
+
}) => useModule({
|
|
9
|
+
module: ClassificationModule,
|
|
10
|
+
loadArgs: [modelSource],
|
|
11
|
+
preventLoad
|
|
12
|
+
});
|
|
28
13
|
//# sourceMappingURL=useClassification.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ClassificationModule","useModule","useClassification","modelSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useClassification.ts"],"mappings":";;AAAA,SAASA,oBAAoB,QAAQ,oDAAoD;AAEzF,SAASC,SAAS,QAAQ,cAAc;AAExC,OAAO,MAAMC,iBAAiB,GAAGA,CAAC;EAChCC,WAAW;EACXC,WAAW,GAAG;AAIhB,CAAC,KACCH,SAAS,CAAC;EACRI,MAAM,EAAEL,oBAAoB;EAC5BM,QAAQ,EAAE,CAACH,WAAW,CAAC;EACvBC;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useModule } from '../useModule';
|
|
4
|
+
import { ImageSegmentationModule } from '../../modules/computer_vision/ImageSegmentationModule';
|
|
5
|
+
export const useImageSegmentation = ({
|
|
6
|
+
modelSource,
|
|
7
|
+
preventLoad = false
|
|
8
|
+
}) => useModule({
|
|
9
|
+
module: ImageSegmentationModule,
|
|
10
|
+
loadArgs: [modelSource],
|
|
11
|
+
preventLoad
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=useImageSegmentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useModule","ImageSegmentationModule","useImageSegmentation","modelSource","preventLoad","module","loadArgs"],"sourceRoot":"../../../../src","sources":["hooks/computer_vision/useImageSegmentation.ts"],"mappings":";;AAAA,SAASA,SAAS,QAAQ,cAAc;AACxC,SAASC,uBAAuB,QAAQ,uDAAuD;AAQ/F,OAAO,MAAMC,oBAAoB,GAAGA,CAAC;EACnCC,WAAW;EACXC,WAAW,GAAG;AACT,CAAC,KACNJ,SAAS,CAAC;EACRK,MAAM,EAAEJ,uBAAuB;EAC/BK,QAAQ,EAAE,CAACH,WAAW,CAAC;EACvBC;AACF,CAAC,CAAC","ignoreList":[]}
|