@qvac/sdk 0.8.0 → 1.0.0
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/LICENSE +24 -1
- package/README.md +191 -373
- package/dist/client/api/cancel.d.ts +4 -13
- package/dist/client/api/cancel.js +6 -16
- package/dist/client/api/completion-stream.d.ts +30 -24
- package/dist/client/api/completion-stream.js +70 -121
- package/dist/client/api/delete-cache.js +2 -3
- package/dist/client/api/download-asset.d.ts +5 -6
- package/dist/client/api/download-asset.js +20 -16
- package/dist/client/api/embed.d.ts +4 -21
- package/dist/client/api/embed.js +14 -4
- package/dist/client/api/index.d.ts +1 -5
- package/dist/client/api/index.js +1 -5
- package/dist/client/api/load-model.d.ts +21 -49
- package/dist/client/api/load-model.js +134 -40
- package/dist/client/api/logging-stream.d.ts +4 -7
- package/dist/client/api/logging-stream.js +5 -9
- package/dist/client/api/ping.d.ts +1 -1
- package/dist/client/api/ping.js +2 -3
- package/dist/client/api/provide.d.ts +1 -1
- package/dist/client/api/provide.js +3 -4
- package/dist/client/api/rag.d.ts +21 -216
- package/dist/client/api/rag.js +36 -396
- package/dist/client/api/stop-provider.d.ts +1 -1
- package/dist/client/api/stop-provider.js +3 -4
- package/dist/client/api/text-to-speech.d.ts +2 -2
- package/dist/client/api/text-to-speech.js +3 -3
- package/dist/client/api/transcribe.d.ts +5 -9
- package/dist/client/api/transcribe.js +9 -11
- package/dist/client/api/translate.d.ts +3 -3
- package/dist/client/api/translate.js +15 -15
- package/dist/client/api/unload-model.d.ts +1 -5
- package/dist/client/api/unload-model.js +4 -17
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.js +1 -1
- package/dist/client/logging-stream-registry.d.ts +1 -1
- package/dist/client/logging-stream-registry.js +13 -14
- package/dist/client/rpc/bare-client.d.ts +139 -3
- package/dist/client/rpc/bare-client.js +16 -117
- package/dist/client/rpc/bare-rpc-client.d.ts +4 -0
- package/dist/client/rpc/bare-rpc-client.js +87 -0
- package/dist/client/rpc/expo-rpc-client.d.ts +1 -2
- package/dist/client/rpc/expo-rpc-client.js +14 -57
- package/dist/client/rpc/node-rpc-client.d.ts +8 -3
- package/dist/client/rpc/node-rpc-client.js +62 -218
- package/dist/client/rpc/rpc-client.d.ts +2 -3
- package/dist/client/rpc/rpc-client.js +49 -184
- package/dist/constants/audio.d.ts +2 -1
- package/dist/constants/audio.js +17 -1
- package/dist/constants/index.d.ts +0 -1
- package/dist/constants/index.js +0 -1
- package/dist/examples/delegated-inference/consumer.js +2 -3
- package/dist/examples/download-with-cancel.js +4 -3
- package/dist/examples/embed-hyperdrive.js +4 -39
- package/dist/examples/kv-cache-cleanup.js +2 -1
- package/dist/examples/kv-cache-custom-key.js +2 -16
- package/dist/examples/kv-cache-example.js +2 -1
- package/dist/examples/llamacpp-file-logging.d.ts +2 -0
- package/dist/examples/{logging-file-transport.js → llamacpp-file-logging.js} +8 -3
- package/dist/examples/llamacpp-filesystem.js +2 -2
- package/dist/examples/llamacpp-http.js +1 -0
- package/dist/examples/llamacpp-hyperdrive.js +2 -1
- package/dist/examples/llamacpp-multimodal.js +4 -3
- package/dist/examples/llamacpp-native-tools.js +30 -72
- package/dist/examples/multi-model-demo.js +3 -2
- package/dist/examples/parallel-download.js +14 -46
- package/dist/examples/rag/rag-chromadb.js +1 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.d.ts +2 -0
- package/dist/examples/rag/rag-hyperdb-workspaces.js +107 -0
- package/dist/examples/rag/rag-hyperdb.d.ts +2 -0
- package/dist/examples/rag/{rag-hyperdb/ingest.js → rag-hyperdb.js} +5 -10
- package/dist/examples/rag/rag-lancedb.js +1 -0
- package/dist/examples/rag/rag-sqlite.js +1 -0
- package/dist/examples/text-to-speech.d.ts +3 -0
- package/dist/examples/{tts/utils.js → text-to-speech.js} +63 -18
- package/dist/examples/translation/translation-indic.js +1 -4
- package/dist/examples/translation/translation-llm-context.js +1 -0
- package/dist/examples/translation/translation-llm.js +2 -2
- package/dist/examples/translation/translation-opus.js +3 -6
- package/dist/examples/translation/translation-stream.js +3 -3
- package/dist/examples/whispercpp-filesystem.js +43 -0
- package/dist/examples/{transcription/whispercpp-microphone-record.js → whispercpp-microphone-record.js} +9 -8
- package/dist/expo/plugins/index.d.ts +0 -3
- package/dist/expo/plugins/index.js +0 -3
- package/dist/expo/plugins/withMobileBundle.d.ts +2 -5
- package/dist/expo/plugins/withMobileBundle.js +40 -121
- package/dist/expo/plugins/withQvacSDK.d.ts +0 -4
- package/dist/expo/plugins/withQvacSDK.js +1 -26
- package/dist/index.d.ts +4 -9
- package/dist/index.js +5 -11
- package/dist/logging/base-logger.js +16 -26
- package/dist/logging/index.d.ts +1 -7
- package/dist/logging/index.js +1 -7
- package/dist/logging/logger.d.ts +2 -0
- package/dist/logging/logger.js +6 -11
- package/dist/logging/stream-logger.d.ts +1 -1
- package/dist/logging/stream-logger.js +3 -6
- package/dist/logging/transport.js +2 -2
- package/dist/logging/types.d.ts +0 -2
- package/dist/logging/utils.d.ts +0 -2
- package/dist/logging/utils.js +0 -62
- package/dist/models/{registry → hyperdrive}/index.js +1 -1
- package/dist/models/hyperdrive/models.d.ts +619 -0
- package/dist/models/hyperdrive/models.js +693 -0
- package/dist/schemas/cancel.d.ts +0 -6
- package/dist/schemas/cancel.js +0 -5
- package/dist/schemas/common.d.ts +164 -2973
- package/dist/schemas/common.js +1 -23
- package/dist/schemas/completion-stream.d.ts +60 -31
- package/dist/schemas/completion-stream.js +44 -20
- package/dist/schemas/delegate.d.ts +0 -1
- package/dist/schemas/delegate.js +0 -1
- package/dist/schemas/download-asset.d.ts +3 -125
- package/dist/schemas/download-asset.js +5 -22
- package/dist/schemas/embed.d.ts +3 -3
- package/dist/schemas/embed.js +2 -9
- package/dist/schemas/index.d.ts +1 -19
- package/dist/schemas/index.js +1 -19
- package/dist/schemas/llamacpp-config.d.ts +12 -243
- package/dist/schemas/llamacpp-config.js +14 -50
- package/dist/schemas/load-model.d.ts +893 -14358
- package/dist/schemas/load-model.js +72 -325
- package/dist/schemas/logging-stream.d.ts +4 -11
- package/dist/schemas/logging-stream.js +3 -4
- package/dist/schemas/rag.d.ts +52 -183
- package/dist/schemas/rag.js +23 -152
- package/dist/schemas/text-to-speech.d.ts +1 -692
- package/dist/schemas/text-to-speech.js +3 -35
- package/dist/schemas/transcription.d.ts +0 -3
- package/dist/schemas/transcription.js +0 -1
- package/dist/schemas/translate.d.ts +23 -68
- package/dist/schemas/translate.js +11 -37
- package/dist/schemas/translation-config.d.ts +7 -810
- package/dist/schemas/translation-config.js +7 -113
- package/dist/schemas/unload-model.d.ts +0 -2
- package/dist/schemas/unload-model.js +0 -2
- package/dist/schemas/whispercpp-config.d.ts +25 -0
- package/dist/schemas/whispercpp-config.js +18 -0
- package/dist/server/bare/{ops → addons}/cancel.js +1 -2
- package/dist/server/bare/addons/index.d.ts +4 -0
- package/dist/server/bare/addons/index.js +3 -0
- package/dist/server/bare/addons/llamacpp/create-model.d.ts +5 -0
- package/dist/server/bare/addons/llamacpp/create-model.js +67 -0
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.d.ts +1 -2
- package/dist/server/bare/{plugins/llamacpp-completion/ops → addons/llamacpp/handlers}/completion-stream.js +87 -54
- package/dist/server/bare/addons/llamacpp/handlers/embed.d.ts +4 -0
- package/dist/server/bare/{ops → addons/llamacpp/handlers}/embed.js +7 -22
- package/dist/server/bare/addons/llamacpp/index.d.ts +4 -0
- package/dist/server/bare/addons/llamacpp/index.js +3 -0
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.d.ts +1 -4
- package/dist/server/bare/{ops → addons/llamacpp}/kv-cache-utils.js +19 -54
- package/dist/server/bare/addons/load-model.d.ts +3 -0
- package/dist/server/bare/addons/load-model.js +62 -0
- package/dist/server/bare/addons/translation/create-model.d.ts +4 -0
- package/dist/server/bare/addons/translation/create-model.js +45 -0
- package/dist/server/bare/addons/translation/handlers/translate.d.ts +3 -0
- package/dist/server/bare/{ops → addons/translation/handlers}/translate.js +14 -47
- package/dist/server/bare/addons/translation/index.d.ts +3 -0
- package/dist/server/bare/addons/translation/index.js +2 -0
- package/dist/server/bare/addons/tts/create-model.d.ts +6 -0
- package/dist/server/bare/addons/tts/create-model.js +40 -0
- package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.js +3 -25
- package/dist/server/bare/addons/tts/index.d.ts +3 -0
- package/dist/server/bare/addons/tts/index.js +2 -0
- package/dist/server/bare/addons/unload-model.js +20 -0
- package/dist/server/bare/addons/whispercpp/create-model.d.ts +6 -0
- package/dist/server/bare/addons/whispercpp/create-model.js +55 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/handlers/transcribe-stream.js +48 -0
- package/dist/server/bare/addons/whispercpp/index.d.ts +3 -0
- package/dist/server/bare/addons/whispercpp/index.js +2 -0
- package/dist/server/bare/delegate-rpc-client.d.ts +0 -6
- package/dist/server/bare/delegate-rpc-client.js +46 -157
- package/dist/server/bare/hyperswarm.d.ts +0 -3
- package/dist/server/bare/hyperswarm.js +6 -29
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.d.ts +1 -1
- package/dist/server/bare/rag-hyperdb/handlers/delete-embeddings.js +10 -9
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.d.ts +4 -7
- package/dist/server/bare/rag-hyperdb/handlers/save-embeddings.js +14 -13
- package/dist/server/bare/rag-hyperdb/handlers/search.js +10 -10
- package/dist/server/bare/rag-hyperdb/index.d.ts +1 -8
- package/dist/server/bare/rag-hyperdb/index.js +1 -8
- package/dist/server/bare/rag-hyperdb/rag-manager.d.ts +5 -0
- package/dist/server/bare/rag-hyperdb/rag-manager.js +65 -0
- package/dist/server/bare/registry/logging-stream-registry.d.ts +7 -24
- package/dist/server/bare/registry/logging-stream-registry.js +20 -99
- package/dist/server/bare/registry/model-registry.d.ts +26 -14
- package/dist/server/bare/registry/model-registry.js +12 -32
- package/dist/server/error-handlers.d.ts +2 -3
- package/dist/server/error-handlers.js +10 -15
- package/dist/server/http-server.d.ts +2 -0
- package/dist/server/http-server.js +189 -0
- package/dist/server/rpc/create-server.js +3 -5
- package/dist/server/rpc/handle-request.d.ts +9 -0
- package/dist/server/rpc/handle-request.js +242 -92
- package/dist/server/rpc/handlers/cancelHandler.js +3 -14
- package/dist/server/rpc/handlers/completion-stream-delegated.d.ts +1 -3
- package/dist/server/rpc/handlers/completion-stream-delegated.js +6 -18
- package/dist/server/rpc/handlers/completion-stream.js +41 -2
- package/dist/server/rpc/handlers/delete-cache.js +2 -4
- package/dist/server/rpc/handlers/download-asset.js +6 -59
- package/dist/server/rpc/handlers/embed.js +19 -2
- package/dist/server/rpc/handlers/index.d.ts +0 -13
- package/dist/server/rpc/handlers/index.js +0 -13
- package/dist/server/rpc/handlers/load-model/download-manager.d.ts +11 -12
- package/dist/server/rpc/handlers/load-model/download-manager.js +28 -43
- package/dist/server/rpc/handlers/load-model/http.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/http.js +55 -424
- package/dist/server/rpc/handlers/load-model/hyperdrive.d.ts +1 -2
- package/dist/server/rpc/handlers/load-model/hyperdrive.js +171 -364
- package/dist/server/rpc/handlers/load-model/index.d.ts +2 -2
- package/dist/server/rpc/handlers/load-model/index.js +2 -2
- package/dist/server/rpc/handlers/load-model/resolve.d.ts +1 -3
- package/dist/server/rpc/handlers/load-model/resolve.js +29 -110
- package/dist/server/rpc/handlers/load-model-delegated.d.ts +2 -6
- package/dist/server/rpc/handlers/load-model-delegated.js +21 -59
- package/dist/server/rpc/handlers/{load-model/handler.d.ts → load-model.d.ts} +2 -2
- package/dist/server/rpc/handlers/load-model.js +57 -0
- package/dist/server/rpc/handlers/logging-stream.js +4 -4
- package/dist/server/rpc/handlers/provideHandler/connection.js +10 -12
- package/dist/server/rpc/handlers/provideHandler/handler.js +17 -20
- package/dist/server/rpc/handlers/provideHandler/proxy.js +6 -8
- package/dist/server/rpc/handlers/rag.d.ts +2 -2
- package/dist/server/rpc/handlers/rag.js +43 -130
- package/dist/server/rpc/handlers/stopProvideHandler.js +2 -6
- package/dist/server/rpc/handlers/text-to-speech.js +5 -2
- package/dist/server/rpc/handlers/transcribe-stream.js +24 -2
- package/dist/server/rpc/handlers/translate.js +49 -2
- package/dist/server/rpc/handlers/unload-model.js +3 -12
- package/dist/server/rpc/index.d.ts +1 -1
- package/dist/server/utils/audio/decoder.d.ts +1 -2
- package/dist/server/utils/audio/decoder.js +12 -49
- package/dist/server/utils/cache.d.ts +8 -19
- package/dist/server/utils/cache.js +15 -100
- package/dist/server/utils/hash.d.ts +5 -0
- package/dist/server/utils/hash.js +11 -0
- package/dist/server/utils/index.d.ts +2 -7
- package/dist/server/utils/index.js +2 -7
- package/dist/server/utils/tool-parser.js +14 -28
- package/dist/server/worker.d.ts +5 -4
- package/dist/server/worker.js +89 -22
- package/package.json +41 -141
- package/NOTICE +0 -358
- package/bare-imports.json +0 -44
- package/dist/client/api/get-model-info.d.ts +0 -36
- package/dist/client/api/get-model-info.js +0 -14
- package/dist/client/api/invoke-plugin.d.ts +0 -15
- package/dist/client/api/invoke-plugin.js +0 -38
- package/dist/client/api/ocr.d.ts +0 -31
- package/dist/client/api/ocr.js +0 -88
- package/dist/client/api/registry.d.ts +0 -14
- package/dist/client/api/registry.js +0 -37
- package/dist/client/config-loader/config-utils.d.ts +0 -5
- package/dist/client/config-loader/config-utils.js +0 -20
- package/dist/client/config-loader/resolve-config.bare.d.ts +0 -9
- package/dist/client/config-loader/resolve-config.bare.js +0 -87
- package/dist/client/config-loader/resolve-config.expo.d.ts +0 -11
- package/dist/client/config-loader/resolve-config.expo.js +0 -62
- package/dist/client/config-loader/resolve-config.node.d.ts +0 -10
- package/dist/client/config-loader/resolve-config.node.js +0 -145
- package/dist/client/init-hooks.d.ts +0 -21
- package/dist/client/init-hooks.js +0 -66
- package/dist/client/rpc/expo-device-info.d.ts +0 -6
- package/dist/client/rpc/expo-device-info.js +0 -32
- package/dist/client/rpc/profiling/index.d.ts +0 -2
- package/dist/client/rpc/profiling/index.js +0 -1
- package/dist/client/rpc/profiling/profiler.d.ts +0 -27
- package/dist/client/rpc/profiling/profiler.js +0 -139
- package/dist/constants/registry.d.ts +0 -2
- package/dist/constants/registry.js +0 -1
- package/dist/examples/cache-management.d.ts +0 -2
- package/dist/examples/cache-management.js +0 -97
- package/dist/examples/config/blind-relay/blind-relay.config.d.ts +0 -5
- package/dist/examples/config/blind-relay/blind-relay.config.js +0 -7
- package/dist/examples/config/default/default.config.d.ts +0 -8
- package/dist/examples/config/default/default.config.js +0 -6
- package/dist/examples/config/plugins/plugins.config.d.ts +0 -5
- package/dist/examples/config/plugins/plugins.config.js +0 -4
- package/dist/examples/config-reload.d.ts +0 -2
- package/dist/examples/config-reload.js +0 -49
- package/dist/examples/default-config-usage.d.ts +0 -17
- package/dist/examples/default-config-usage.js +0 -47
- package/dist/examples/delegated-inference/consumer-profiled.d.ts +0 -2
- package/dist/examples/delegated-inference/consumer-profiled.js +0 -67
- package/dist/examples/download-with-blind-relays.d.ts +0 -2
- package/dist/examples/download-with-blind-relays.js +0 -49
- package/dist/examples/llamacpp-sharded.d.ts +0 -2
- package/dist/examples/llamacpp-sharded.js +0 -53
- package/dist/examples/logging-file-transport.d.ts +0 -2
- package/dist/examples/logging-streaming.d.ts +0 -2
- package/dist/examples/logging-streaming.js +0 -75
- package/dist/examples/mcp-websearch.d.ts +0 -13
- package/dist/examples/mcp-websearch.js +0 -176
- package/dist/examples/ocr-fasttext.d.ts +0 -2
- package/dist/examples/ocr-fasttext.js +0 -52
- package/dist/examples/plugins.d.ts +0 -14
- package/dist/examples/plugins.js +0 -129
- package/dist/examples/profiling/basic.d.ts +0 -2
- package/dist/examples/profiling/basic.js +0 -71
- package/dist/examples/profiling/per-call.d.ts +0 -2
- package/dist/examples/profiling/per-call.js +0 -30
- package/dist/examples/quickstart.d.ts +0 -2
- package/dist/examples/quickstart.js +0 -28
- package/dist/examples/rag/rag-hyperdb/cancellation.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/cancellation.js +0 -75
- package/dist/examples/rag/rag-hyperdb/ingest.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/pipeline.js +0 -74
- package/dist/examples/rag/rag-hyperdb/workspaces.d.ts +0 -2
- package/dist/examples/rag/rag-hyperdb/workspaces.js +0 -178
- package/dist/examples/registry-query.d.ts +0 -2
- package/dist/examples/registry-query.js +0 -87
- package/dist/examples/transcription/parakeet-ctc-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-ctc-filesystem.js +0 -40
- package/dist/examples/transcription/parakeet-microphone-record.d.ts +0 -2
- package/dist/examples/transcription/parakeet-microphone-record.js +0 -95
- package/dist/examples/transcription/parakeet-sortformer.d.ts +0 -2
- package/dist/examples/transcription/parakeet-sortformer.js +0 -115
- package/dist/examples/transcription/parakeet-tdt-filesystem.d.ts +0 -2
- package/dist/examples/transcription/parakeet-tdt-filesystem.js +0 -44
- package/dist/examples/transcription/whispercpp-filesystem.js +0 -69
- package/dist/examples/transcription/whispercpp-prompt.d.ts +0 -2
- package/dist/examples/transcription/whispercpp-prompt.js +0 -67
- package/dist/examples/translation/translation-bergamot-batch.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-batch.js +0 -49
- package/dist/examples/translation/translation-bergamot-pivot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot-pivot.js +0 -73
- package/dist/examples/translation/translation-bergamot.d.ts +0 -2
- package/dist/examples/translation/translation-bergamot.js +0 -39
- package/dist/examples/translation/translation-llm-afriquegemma.d.ts +0 -2
- package/dist/examples/translation/translation-llm-afriquegemma.js +0 -39
- package/dist/examples/tts/chatterbox.d.ts +0 -2
- package/dist/examples/tts/chatterbox.js +0 -59
- package/dist/examples/tts/supertonic.d.ts +0 -2
- package/dist/examples/tts/supertonic.js +0 -51
- package/dist/examples/tts/utils.d.ts +0 -17
- package/dist/expo/plugins/resolve-sdk-package-dir.d.ts +0 -15
- package/dist/expo/plugins/resolve-sdk-package-dir.js +0 -31
- package/dist/expo/plugins/withAndroidArchitecture.d.ts +0 -8
- package/dist/expo/plugins/withAndroidArchitecture.js +0 -52
- package/dist/expo/plugins/withAndroidNdkVersion.d.ts +0 -8
- package/dist/expo/plugins/withAndroidNdkVersion.js +0 -31
- package/dist/expo/plugins/withDeviceInfo.d.ts +0 -10
- package/dist/expo/plugins/withDeviceInfo.js +0 -48
- package/dist/logging/addon.d.ts +0 -6
- package/dist/logging/addon.js +0 -75
- package/dist/logging/client-logger.d.ts +0 -3
- package/dist/logging/client-logger.js +0 -24
- package/dist/logging/namespaces.d.ts +0 -6
- package/dist/logging/namespaces.js +0 -6
- package/dist/logging/registry.d.ts +0 -31
- package/dist/logging/registry.js +0 -62
- package/dist/logging/server-logger.d.ts +0 -3
- package/dist/logging/server-logger.js +0 -16
- package/dist/models/registry/models.d.ts +0 -10417
- package/dist/models/registry/models.js +0 -10757
- package/dist/models/update-models/codegen.d.ts +0 -3
- package/dist/models/update-models/codegen.js +0 -135
- package/dist/models/update-models/history.d.ts +0 -24
- package/dist/models/update-models/history.js +0 -107
- package/dist/models/update-models/index.d.ts +0 -2
- package/dist/models/update-models/index.js +0 -125
- package/dist/models/update-models/naming.d.ts +0 -4
- package/dist/models/update-models/naming.js +0 -370
- package/dist/models/update-models/processing.d.ts +0 -8
- package/dist/models/update-models/processing.js +0 -67
- package/dist/models/update-models/registry.d.ts +0 -4
- package/dist/models/update-models/registry.js +0 -67
- package/dist/models/update-models/shards.d.ts +0 -4
- package/dist/models/update-models/shards.js +0 -57
- package/dist/models/update-models/types.d.ts +0 -60
- package/dist/models/update-models/types.js +0 -1
- package/dist/models/update-models/utils.d.ts +0 -3
- package/dist/models/update-models/utils.js +0 -21
- package/dist/pear/pre.d.ts +0 -18
- package/dist/pear/pre.js +0 -433
- package/dist/profiling/aggregator.d.ts +0 -15
- package/dist/profiling/aggregator.js +0 -100
- package/dist/profiling/clock.d.ts +0 -12
- package/dist/profiling/clock.js +0 -51
- package/dist/profiling/controller.d.ts +0 -33
- package/dist/profiling/controller.js +0 -123
- package/dist/profiling/envelope.d.ts +0 -10
- package/dist/profiling/envelope.js +0 -36
- package/dist/profiling/events.d.ts +0 -20
- package/dist/profiling/events.js +0 -37
- package/dist/profiling/exporters.d.ts +0 -10
- package/dist/profiling/exporters.js +0 -236
- package/dist/profiling/index.d.ts +0 -36
- package/dist/profiling/index.js +0 -31
- package/dist/profiling/ring-buffer.d.ts +0 -19
- package/dist/profiling/ring-buffer.js +0 -83
- package/dist/profiling/types.d.ts +0 -47
- package/dist/profiling/types.js +0 -1
- package/dist/schemas/archive.d.ts +0 -9
- package/dist/schemas/archive.js +0 -17
- package/dist/schemas/engine-addon-map.d.ts +0 -5
- package/dist/schemas/engine-addon-map.js +0 -52
- package/dist/schemas/get-model-info.d.ts +0 -120
- package/dist/schemas/get-model-info.js +0 -58
- package/dist/schemas/json-schema.d.ts +0 -16
- package/dist/schemas/json-schema.js +0 -2
- package/dist/schemas/mcp-adapter.d.ts +0 -47
- package/dist/schemas/mcp-adapter.js +0 -1
- package/dist/schemas/model-src-utils.d.ts +0 -148
- package/dist/schemas/model-src-utils.js +0 -35
- package/dist/schemas/model-types.d.ts +0 -183
- package/dist/schemas/model-types.js +0 -168
- package/dist/schemas/ocr.d.ts +0 -125
- package/dist/schemas/ocr.js +0 -57
- package/dist/schemas/path-validation.d.ts +0 -10
- package/dist/schemas/path-validation.js +0 -22
- package/dist/schemas/plugin.d.ts +0 -226
- package/dist/schemas/plugin.js +0 -158
- package/dist/schemas/profiling.d.ts +0 -105
- package/dist/schemas/profiling.js +0 -66
- package/dist/schemas/registry.d.ts +0 -356
- package/dist/schemas/registry.js +0 -93
- package/dist/schemas/reload-config.d.ts +0 -476
- package/dist/schemas/reload-config.js +0 -44
- package/dist/schemas/runtime-context.d.ts +0 -19
- package/dist/schemas/runtime-context.js +0 -7
- package/dist/schemas/sdk-config.d.ts +0 -2973
- package/dist/schemas/sdk-config.js +0 -136
- package/dist/schemas/sdk-errors-client.d.ts +0 -31
- package/dist/schemas/sdk-errors-client.js +0 -143
- package/dist/schemas/sdk-errors-registry.d.ts +0 -6
- package/dist/schemas/sdk-errors-registry.js +0 -8
- package/dist/schemas/sdk-errors-server.d.ts +0 -89
- package/dist/schemas/sdk-errors-server.js +0 -451
- package/dist/schemas/shard.d.ts +0 -21
- package/dist/schemas/shard.js +0 -17
- package/dist/schemas/tools.d.ts +0 -65
- package/dist/schemas/tools.js +0 -43
- package/dist/schemas/transcription-config.d.ts +0 -383
- package/dist/schemas/transcription-config.js +0 -95
- package/dist/scripts/run-security-tests-bare.d.ts +0 -2
- package/dist/scripts/run-security-tests-bare.js +0 -78
- package/dist/scripts/run-security-tests.d.ts +0 -2
- package/dist/scripts/run-security-tests.js +0 -22
- package/dist/scripts/run-unit-tests.d.ts +0 -2
- package/dist/scripts/run-unit-tests.js +0 -17
- package/dist/server/bare/ops/embed.d.ts +0 -12
- package/dist/server/bare/ops/load-model.d.ts +0 -9
- package/dist/server/bare/ops/load-model.js +0 -85
- package/dist/server/bare/ops/transcribe.d.ts +0 -3
- package/dist/server/bare/ops/transcribe.js +0 -75
- package/dist/server/bare/ops/translate.d.ts +0 -5
- package/dist/server/bare/ops/unload-model.js +0 -41
- package/dist/server/bare/plugins/index.d.ts +0 -8
- package/dist/server/bare/plugins/index.js +0 -7
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.d.ts +0 -6
- package/dist/server/bare/plugins/llamacpp-completion/ops/cache-logger.js +0 -34
- package/dist/server/bare/plugins/llamacpp-completion/plugin.d.ts +0 -220
- package/dist/server/bare/plugins/llamacpp-completion/plugin.js +0 -155
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.d.ts +0 -54
- package/dist/server/bare/plugins/llamacpp-embedding/plugin.js +0 -87
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.d.ts +0 -367
- package/dist/server/bare/plugins/nmtcpp-translation/plugin.js +0 -204
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.d.ts +0 -10
- package/dist/server/bare/plugins/onnx-ocr/ops/ocr-stream.js +0 -110
- package/dist/server/bare/plugins/onnx-ocr/plugin.d.ts +0 -86
- package/dist/server/bare/plugins/onnx-ocr/plugin.js +0 -117
- package/dist/server/bare/plugins/onnx-tts/plugin.d.ts +0 -373
- package/dist/server/bare/plugins/onnx-tts/plugin.js +0 -182
- package/dist/server/bare/plugins/onnx-tts/wav-helper.d.ts +0 -14
- package/dist/server/bare/plugins/onnx-tts/wav-helper.js +0 -107
- package/dist/server/bare/plugins/parakeet-transcription/plugin.d.ts +0 -317
- package/dist/server/bare/plugins/parakeet-transcription/plugin.js +0 -154
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.d.ts +0 -237
- package/dist/server/bare/plugins/whispercpp-transcription/plugin.js +0 -86
- package/dist/server/bare/rag-hyperdb/handlers/chunk.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/chunk.js +0 -7
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/close-workspace.js +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/delete-workspace.js +0 -14
- package/dist/server/bare/rag-hyperdb/handlers/ingest.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/ingest.js +0 -18
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.d.ts +0 -3
- package/dist/server/bare/rag-hyperdb/handlers/list-workspaces.js +0 -4
- package/dist/server/bare/rag-hyperdb/handlers/reindex.d.ts +0 -9
- package/dist/server/bare/rag-hyperdb/handlers/reindex.js +0 -16
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.d.ts +0 -7
- package/dist/server/bare/rag-hyperdb/rag-operation-manager.js +0 -39
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.d.ts +0 -15
- package/dist/server/bare/rag-hyperdb/rag-workspace-manager.js +0 -136
- package/dist/server/bare/registry/config-registry.d.ts +0 -14
- package/dist/server/bare/registry/config-registry.js +0 -82
- package/dist/server/bare/registry/model-config-registry.d.ts +0 -4
- package/dist/server/bare/registry/model-config-registry.js +0 -15
- package/dist/server/bare/registry/model-config-utils.d.ts +0 -15
- package/dist/server/bare/registry/model-config-utils.js +0 -112
- package/dist/server/bare/registry/registry-client.d.ts +0 -5
- package/dist/server/bare/registry/registry-client.js +0 -37
- package/dist/server/bare/registry/runtime-context-registry.d.ts +0 -7
- package/dist/server/bare/registry/runtime-context-registry.js +0 -26
- package/dist/server/bare/utils/audio-input.d.ts +0 -10
- package/dist/server/bare/utils/audio-input.js +0 -33
- package/dist/server/bare/utils/loader-adapter.d.ts +0 -7
- package/dist/server/bare/utils/loader-adapter.js +0 -9
- package/dist/server/env.d.ts +0 -22
- package/dist/server/env.js +0 -57
- package/dist/server/plugins/index.d.ts +0 -2
- package/dist/server/plugins/index.js +0 -1
- package/dist/server/plugins/registry.d.ts +0 -9
- package/dist/server/plugins/registry.js +0 -79
- package/dist/server/rpc/delegate-transport.d.ts +0 -19
- package/dist/server/rpc/delegate-transport.js +0 -215
- package/dist/server/rpc/handler-registry.d.ts +0 -3
- package/dist/server/rpc/handler-registry.js +0 -90
- package/dist/server/rpc/handler-utils.d.ts +0 -23
- package/dist/server/rpc/handler-utils.js +0 -128
- package/dist/server/rpc/handlers/get-model-info.d.ts +0 -3
- package/dist/server/rpc/handlers/get-model-info.js +0 -164
- package/dist/server/rpc/handlers/load-model/download-stats.d.ts +0 -6
- package/dist/server/rpc/handlers/load-model/download-stats.js +0 -87
- package/dist/server/rpc/handlers/load-model/handler.js +0 -187
- package/dist/server/rpc/handlers/load-model/registry.d.ts +0 -11
- package/dist/server/rpc/handlers/load-model/registry.js +0 -564
- package/dist/server/rpc/handlers/load-model/types.d.ts +0 -29
- package/dist/server/rpc/handlers/load-model/types.js +0 -1
- package/dist/server/rpc/handlers/ocr-stream.d.ts +0 -3
- package/dist/server/rpc/handlers/ocr-stream.js +0 -4
- package/dist/server/rpc/handlers/ping.d.ts +0 -3
- package/dist/server/rpc/handlers/ping.js +0 -3
- package/dist/server/rpc/handlers/plugin-dispatch.d.ts +0 -15
- package/dist/server/rpc/handlers/plugin-dispatch.js +0 -59
- package/dist/server/rpc/handlers/plugin-invoke.d.ts +0 -4
- package/dist/server/rpc/handlers/plugin-invoke.js +0 -92
- package/dist/server/rpc/handlers/registry.d.ts +0 -5
- package/dist/server/rpc/handlers/registry.js +0 -157
- package/dist/server/rpc/handlers/unload-model-delegated.d.ts +0 -3
- package/dist/server/rpc/handlers/unload-model-delegated.js +0 -32
- package/dist/server/rpc/profiling/context.d.ts +0 -18
- package/dist/server/rpc/profiling/context.js +0 -38
- package/dist/server/rpc/profiling/delegation-profiler.d.ts +0 -32
- package/dist/server/rpc/profiling/delegation-profiler.js +0 -154
- package/dist/server/rpc/profiling/index.d.ts +0 -5
- package/dist/server/rpc/profiling/index.js +0 -4
- package/dist/server/rpc/profiling/operation-metrics.d.ts +0 -25
- package/dist/server/rpc/profiling/operation-metrics.js +0 -199
- package/dist/server/rpc/profiling/operation-wrappers.d.ts +0 -18
- package/dist/server/rpc/profiling/operation-wrappers.js +0 -124
- package/dist/server/rpc/profiling/profiler.d.ts +0 -13
- package/dist/server/rpc/profiling/profiler.js +0 -97
- package/dist/server/utils/archive.d.ts +0 -4
- package/dist/server/utils/archive.js +0 -179
- package/dist/server/utils/checksum.d.ts +0 -4
- package/dist/server/utils/checksum.js +0 -31
- package/dist/server/utils/config-transform.d.ts +0 -3
- package/dist/server/utils/config-transform.js +0 -23
- package/dist/server/utils/formatting.d.ts +0 -19
- package/dist/server/utils/formatting.js +0 -61
- package/dist/server/utils/gguf-tensor-extractor.d.ts +0 -15
- package/dist/server/utils/gguf-tensor-extractor.js +0 -314
- package/dist/server/utils/path-security.d.ts +0 -12
- package/dist/server/utils/path-security.js +0 -25
- package/dist/server/utils/shard-utils.d.ts +0 -48
- package/dist/server/utils/shard-utils.js +0 -125
- package/dist/server/utils/tool-integration.d.ts +0 -13
- package/dist/server/utils/tool-integration.js +0 -43
- package/dist/server/worker-core.d.ts +0 -6
- package/dist/server/worker-core.js +0 -88
- package/dist/utils/errors-base.d.ts +0 -3
- package/dist/utils/errors-base.js +0 -13
- package/dist/utils/errors-client.d.ts +0 -137
- package/dist/utils/errors-client.js +0 -240
- package/dist/utils/errors-server.d.ts +0 -236
- package/dist/utils/errors-server.js +0 -412
- package/dist/utils/global-singleton.d.ts +0 -2
- package/dist/utils/global-singleton.js +0 -10
- package/dist/utils/mcp-adapter.d.ts +0 -12
- package/dist/utils/mcp-adapter.js +0 -103
- package/dist/utils/object.d.ts +0 -2
- package/dist/utils/object.js +0 -3
- package/dist/utils/path-sanitize.d.ts +0 -17
- package/dist/utils/path-sanitize.js +0 -54
- package/dist/utils/tool-helpers.d.ts +0 -25
- package/dist/utils/tool-helpers.js +0 -112
- package/expo/plugins/patches/android-link.mjs +0 -63
- package/expo/plugins/patches/ios-link.mjs +0 -63
- /package/dist/examples/{transcription/whispercpp-filesystem.d.ts → whispercpp-filesystem.d.ts} +0 -0
- /package/dist/examples/{transcription/whispercpp-microphone-record.d.ts → whispercpp-microphone-record.d.ts} +0 -0
- /package/dist/models/{registry → hyperdrive}/index.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/cancel.d.ts +0 -0
- /package/dist/server/bare/{plugins/onnx-tts/ops → addons/tts/handlers}/text-to-speech.d.ts +0 -0
- /package/dist/server/bare/{ops → addons}/unload-model.d.ts +0 -0
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, PARAKEET_TDT_ENCODER_FP32, PARAKEET_TDT_ENCODER_DATA_FP32, PARAKEET_TDT_DECODER_FP32, PARAKEET_TDT_VOCAB, PARAKEET_TDT_PREPROCESSOR_FP32, PARAKEET_SORTFORMER_FP32, } from "@qvac/sdk";
|
|
2
|
-
import { dirname, join } from "path";
|
|
3
|
-
import { fileURLToPath } from "url";
|
|
4
|
-
import { readFileSync, writeFileSync, mkdirSync } from "fs";
|
|
5
|
-
import { tmpdir } from "os";
|
|
6
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
7
|
-
const args = process.argv.slice(2);
|
|
8
|
-
const sortformerSrc = args[0] ?? PARAKEET_SORTFORMER_FP32;
|
|
9
|
-
const defaultAudioPath = join(__dirname, "..", "..", "..", "examples", "transcription", "audio", "diarization-sample-16k.wav");
|
|
10
|
-
const audioFilePath = args[1] ?? defaultAudioPath;
|
|
11
|
-
// ── Step 1: Diarize with Sortformer ──
|
|
12
|
-
const sfModelId = await loadModel({
|
|
13
|
-
modelSrc: sortformerSrc,
|
|
14
|
-
modelType: "parakeet",
|
|
15
|
-
modelConfig: {
|
|
16
|
-
modelType: "sortformer",
|
|
17
|
-
parakeetSortformerSrc: sortformerSrc,
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
const diarization = await transcribe({
|
|
21
|
-
modelId: sfModelId,
|
|
22
|
-
audioChunk: audioFilePath,
|
|
23
|
-
});
|
|
24
|
-
await unloadModel({ modelId: sfModelId });
|
|
25
|
-
const segments = parseDiarization(diarization);
|
|
26
|
-
// ── Step 2: Transcribe each segment with TDT ──
|
|
27
|
-
const tdtModelId = await loadModel({
|
|
28
|
-
modelSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
29
|
-
modelType: "parakeet",
|
|
30
|
-
modelConfig: {
|
|
31
|
-
parakeetEncoderSrc: PARAKEET_TDT_ENCODER_FP32,
|
|
32
|
-
parakeetEncoderDataSrc: PARAKEET_TDT_ENCODER_DATA_FP32,
|
|
33
|
-
parakeetDecoderSrc: PARAKEET_TDT_DECODER_FP32,
|
|
34
|
-
parakeetVocabSrc: PARAKEET_TDT_VOCAB,
|
|
35
|
-
parakeetPreprocessorSrc: PARAKEET_TDT_PREPROCESSOR_FP32,
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
const pcm = readPcm(audioFilePath);
|
|
39
|
-
const sliceDir = join(tmpdir(), `qvac-diarize-${Date.now()}`);
|
|
40
|
-
mkdirSync(sliceDir, { recursive: true });
|
|
41
|
-
const results = [];
|
|
42
|
-
for (let i = 0; i < segments.length; i++) {
|
|
43
|
-
const seg = segments[i];
|
|
44
|
-
const slicePath = join(sliceDir, `seg-${i}.wav`);
|
|
45
|
-
if (!writeWavSlice(pcm, seg.start, seg.end, slicePath)) {
|
|
46
|
-
results.push({ ...seg, text: "[No speech detected]" });
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
const text = await transcribe({ modelId: tdtModelId, audioChunk: slicePath });
|
|
50
|
-
results.push({ ...seg, text: text.trim() || "[No speech detected]" });
|
|
51
|
-
}
|
|
52
|
-
await unloadModel({ modelId: tdtModelId });
|
|
53
|
-
// ── Step 3: Merge consecutive same-speaker segments and print ──
|
|
54
|
-
const merged = mergeSpeakers(results);
|
|
55
|
-
console.log("\n=== DIARIZED TRANSCRIPTION ===");
|
|
56
|
-
console.log("=".repeat(60));
|
|
57
|
-
for (const entry of merged) {
|
|
58
|
-
console.log(`Speaker ${entry.speaker} (${entry.start.toFixed(2)}s - ${entry.end.toFixed(2)}s):`);
|
|
59
|
-
console.log(` ${entry.text}\n`);
|
|
60
|
-
}
|
|
61
|
-
console.log("=".repeat(60));
|
|
62
|
-
console.log("\nDone!");
|
|
63
|
-
// ── Helpers ──
|
|
64
|
-
function parseDiarization(text) {
|
|
65
|
-
const segs = [];
|
|
66
|
-
for (const line of text.split("\n")) {
|
|
67
|
-
const m = line.match(/Speaker (\d+): ([\d.]+)s - ([\d.]+)s/);
|
|
68
|
-
if (m)
|
|
69
|
-
segs.push({ speaker: +m[1], start: +m[2], end: +m[3] });
|
|
70
|
-
}
|
|
71
|
-
return segs.sort((a, b) => a.start - b.start);
|
|
72
|
-
}
|
|
73
|
-
function readPcm(wavPath) {
|
|
74
|
-
const buf = readFileSync(wavPath);
|
|
75
|
-
const dataOffset = buf.indexOf("data") + 4;
|
|
76
|
-
return buf.subarray(dataOffset + 4, dataOffset + 4 + buf.readUInt32LE(dataOffset));
|
|
77
|
-
}
|
|
78
|
-
function writeWavSlice(pcm, startSec, endSec, outPath) {
|
|
79
|
-
const SR = 16000;
|
|
80
|
-
const BPS = 2;
|
|
81
|
-
const startByte = Math.floor(startSec * SR) * BPS;
|
|
82
|
-
const endByte = Math.min(Math.ceil(endSec * SR) * BPS, pcm.length);
|
|
83
|
-
if (startByte >= endByte)
|
|
84
|
-
return false;
|
|
85
|
-
const slice = pcm.subarray(startByte, endByte);
|
|
86
|
-
const hdr = Buffer.alloc(44);
|
|
87
|
-
hdr.write("RIFF", 0);
|
|
88
|
-
hdr.writeUInt32LE(36 + slice.length, 4);
|
|
89
|
-
hdr.write("WAVEfmt ", 8);
|
|
90
|
-
hdr.writeUInt32LE(16, 16);
|
|
91
|
-
hdr.writeUInt16LE(1, 20);
|
|
92
|
-
hdr.writeUInt16LE(1, 22);
|
|
93
|
-
hdr.writeUInt32LE(SR, 24);
|
|
94
|
-
hdr.writeUInt32LE(SR * BPS, 28);
|
|
95
|
-
hdr.writeUInt16LE(BPS, 32);
|
|
96
|
-
hdr.writeUInt16LE(16, 34);
|
|
97
|
-
hdr.write("data", 36);
|
|
98
|
-
hdr.writeUInt32LE(slice.length, 40);
|
|
99
|
-
writeFileSync(outPath, Buffer.concat([hdr, slice]));
|
|
100
|
-
return true;
|
|
101
|
-
}
|
|
102
|
-
function mergeSpeakers(entries) {
|
|
103
|
-
const out = [];
|
|
104
|
-
for (const e of entries) {
|
|
105
|
-
const last = out[out.length - 1];
|
|
106
|
-
if (last && last.speaker === e.speaker) {
|
|
107
|
-
last.text += " " + e.text;
|
|
108
|
-
last.end = e.end;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
out.push({ ...e });
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return out;
|
|
115
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, PARAKEET_TDT_ENCODER_FP32, PARAKEET_TDT_ENCODER_DATA_FP32, PARAKEET_TDT_DECODER_FP32, PARAKEET_TDT_VOCAB, PARAKEET_TDT_PREPROCESSOR_FP32, } from "@qvac/sdk";
|
|
2
|
-
const args = process.argv.slice(2);
|
|
3
|
-
if (!args[0]) {
|
|
4
|
-
console.error("Usage: bun run examples/transcription/parakeet-tdt-filesystem.ts <wav-file-path> " +
|
|
5
|
-
"[encoder-onnx] [encoder-data] [decoder-onnx] [vocab-txt] [preprocessor-onnx]");
|
|
6
|
-
console.error("\nIf model paths are omitted, defaults to registry models.");
|
|
7
|
-
process.exit(1);
|
|
8
|
-
}
|
|
9
|
-
const audioFilePath = args[0];
|
|
10
|
-
const parakeetEncoderSrc = args[1] ?? PARAKEET_TDT_ENCODER_FP32;
|
|
11
|
-
const parakeetEncoderDataSrc = args[2] ?? PARAKEET_TDT_ENCODER_DATA_FP32;
|
|
12
|
-
const parakeetDecoderSrc = args[3] ?? PARAKEET_TDT_DECODER_FP32;
|
|
13
|
-
const parakeetVocabSrc = args[4] ?? PARAKEET_TDT_VOCAB;
|
|
14
|
-
const parakeetPreprocessorSrc = args[5] ?? PARAKEET_TDT_PREPROCESSOR_FP32;
|
|
15
|
-
try {
|
|
16
|
-
console.log("Starting Parakeet transcription example...");
|
|
17
|
-
console.log("Loading Parakeet model...");
|
|
18
|
-
const modelId = await loadModel({
|
|
19
|
-
modelSrc: parakeetEncoderSrc,
|
|
20
|
-
modelType: "parakeet",
|
|
21
|
-
modelConfig: {
|
|
22
|
-
parakeetEncoderSrc,
|
|
23
|
-
parakeetEncoderDataSrc,
|
|
24
|
-
parakeetDecoderSrc,
|
|
25
|
-
parakeetVocabSrc,
|
|
26
|
-
parakeetPreprocessorSrc,
|
|
27
|
-
},
|
|
28
|
-
onProgress: (progress) => {
|
|
29
|
-
console.log(`Download progress: ${progress.percentage.toFixed(1)}%`);
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
console.log(`Parakeet model loaded with ID: ${modelId}`);
|
|
33
|
-
console.log("Transcribing audio...");
|
|
34
|
-
const text = await transcribe({ modelId, audioChunk: audioFilePath });
|
|
35
|
-
console.log("Transcription result:");
|
|
36
|
-
console.log(text);
|
|
37
|
-
console.log("Unloading Parakeet model...");
|
|
38
|
-
await unloadModel({ modelId });
|
|
39
|
-
console.log("Parakeet model unloaded successfully");
|
|
40
|
-
}
|
|
41
|
-
catch (error) {
|
|
42
|
-
console.error("Error:", error);
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, WHISPER_TINY } from "@qvac/sdk";
|
|
2
|
-
// Parse command line arguments
|
|
3
|
-
const args = process.argv.slice(2);
|
|
4
|
-
if (!args[0]) {
|
|
5
|
-
console.error("Usage: bun run examples/whispercpp-filesystem.ts <wav-file-path>");
|
|
6
|
-
process.exit(1);
|
|
7
|
-
}
|
|
8
|
-
const audioFilePath = args[0];
|
|
9
|
-
try {
|
|
10
|
-
console.log("🎤 Starting Whisper transcription example...");
|
|
11
|
-
// Load the Whisper model
|
|
12
|
-
console.log("📥 Loading Whisper model...");
|
|
13
|
-
const modelId = await loadModel({
|
|
14
|
-
modelSrc: WHISPER_TINY,
|
|
15
|
-
modelType: "whisper",
|
|
16
|
-
modelConfig: {
|
|
17
|
-
audio_format: "f32le",
|
|
18
|
-
// Sampling strategy
|
|
19
|
-
strategy: "greedy",
|
|
20
|
-
n_threads: 4,
|
|
21
|
-
// Transcription options
|
|
22
|
-
language: "en",
|
|
23
|
-
translate: false,
|
|
24
|
-
no_timestamps: false,
|
|
25
|
-
single_segment: false,
|
|
26
|
-
print_timestamps: true,
|
|
27
|
-
token_timestamps: true,
|
|
28
|
-
// Quality settings
|
|
29
|
-
temperature: 0.0,
|
|
30
|
-
suppress_blank: true,
|
|
31
|
-
suppress_nst: true,
|
|
32
|
-
// Advanced tuning
|
|
33
|
-
entropy_thold: 2.4,
|
|
34
|
-
logprob_thold: -1.0,
|
|
35
|
-
// VAD configuration
|
|
36
|
-
vad_params: {
|
|
37
|
-
threshold: 0.35,
|
|
38
|
-
min_speech_duration_ms: 200,
|
|
39
|
-
min_silence_duration_ms: 150,
|
|
40
|
-
max_speech_duration_s: 30.0,
|
|
41
|
-
speech_pad_ms: 600,
|
|
42
|
-
samples_overlap: 0.3,
|
|
43
|
-
},
|
|
44
|
-
// Context parameters for GPU
|
|
45
|
-
contextParams: {
|
|
46
|
-
use_gpu: true,
|
|
47
|
-
flash_attn: true,
|
|
48
|
-
gpu_device: 0,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
onProgress: (progress) => {
|
|
52
|
-
console.log(progress);
|
|
53
|
-
},
|
|
54
|
-
});
|
|
55
|
-
console.log(`✅ Whisper model loaded with ID: ${modelId}`);
|
|
56
|
-
// Perform transcription
|
|
57
|
-
console.log("🎧 Transcribing audio...");
|
|
58
|
-
const text = await transcribe({ modelId, audioChunk: audioFilePath });
|
|
59
|
-
console.log("📝 Transcription result:");
|
|
60
|
-
console.log(text);
|
|
61
|
-
// Unload the model when done
|
|
62
|
-
console.log("🧹 Unloading Whisper model...");
|
|
63
|
-
await unloadModel({ modelId });
|
|
64
|
-
console.log("✅ Whisper model unloaded successfully");
|
|
65
|
-
}
|
|
66
|
-
catch (error) {
|
|
67
|
-
console.error("❌ Error:", error);
|
|
68
|
-
process.exit(1);
|
|
69
|
-
}
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import { loadModel, unloadModel, transcribe, WHISPER_TINY } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
console.log("🎤 Starting Whisper transcription with prompt example...");
|
|
4
|
-
// Load the Whisper model
|
|
5
|
-
console.log("📥 Loading Whisper model...");
|
|
6
|
-
const modelId = await loadModel({
|
|
7
|
-
modelSrc: WHISPER_TINY,
|
|
8
|
-
modelType: "whisper",
|
|
9
|
-
modelConfig: {
|
|
10
|
-
audio_format: "f32le",
|
|
11
|
-
// Sampling strategy
|
|
12
|
-
strategy: "greedy",
|
|
13
|
-
n_threads: 4,
|
|
14
|
-
// Transcription options
|
|
15
|
-
language: "en",
|
|
16
|
-
translate: false,
|
|
17
|
-
no_timestamps: false,
|
|
18
|
-
single_segment: false,
|
|
19
|
-
print_timestamps: true,
|
|
20
|
-
token_timestamps: true,
|
|
21
|
-
// Quality settings
|
|
22
|
-
temperature: 0.0,
|
|
23
|
-
suppress_blank: true,
|
|
24
|
-
suppress_nst: true,
|
|
25
|
-
// Advanced tuning
|
|
26
|
-
entropy_thold: 2.4,
|
|
27
|
-
logprob_thold: -1.0,
|
|
28
|
-
// VAD configuration
|
|
29
|
-
vad_params: {
|
|
30
|
-
threshold: 0.35,
|
|
31
|
-
min_speech_duration_ms: 200,
|
|
32
|
-
min_silence_duration_ms: 150,
|
|
33
|
-
max_speech_duration_s: 30.0,
|
|
34
|
-
speech_pad_ms: 600,
|
|
35
|
-
samples_overlap: 0.3,
|
|
36
|
-
},
|
|
37
|
-
// Context parameters for GPU
|
|
38
|
-
contextParams: {
|
|
39
|
-
use_gpu: true,
|
|
40
|
-
flash_attn: true,
|
|
41
|
-
gpu_device: 0,
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
onProgress: (progress) => {
|
|
45
|
-
console.log(progress);
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
console.log(`✅ Whisper model loaded with ID: ${modelId}`);
|
|
49
|
-
// Perform transcription
|
|
50
|
-
console.log("🎧 Transcribing audio...");
|
|
51
|
-
const text = await transcribe({
|
|
52
|
-
modelId,
|
|
53
|
-
audioChunk: "examples/audio/sample-16khz.wav",
|
|
54
|
-
prompt: "This is a test recording with clear speech and proper punctuation.",
|
|
55
|
-
});
|
|
56
|
-
console.log("📝 Transcription result:");
|
|
57
|
-
console.log(text);
|
|
58
|
-
// Unload the model when done
|
|
59
|
-
console.log("🧹 Unloading Whisper model...");
|
|
60
|
-
await unloadModel({ modelId });
|
|
61
|
-
console.log("✅ Whisper model unloaded successfully");
|
|
62
|
-
process.exit(0);
|
|
63
|
-
}
|
|
64
|
-
catch (error) {
|
|
65
|
-
console.error("❌ Error:", error);
|
|
66
|
-
process.exit(1);
|
|
67
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { loadModel, translate, unloadModel, BERGAMOT_EN_FR } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
const modelId = await loadModel({
|
|
4
|
-
modelSrc: BERGAMOT_EN_FR,
|
|
5
|
-
modelType: "nmt",
|
|
6
|
-
modelConfig: {
|
|
7
|
-
engine: "Bergamot",
|
|
8
|
-
from: "en",
|
|
9
|
-
to: "fr",
|
|
10
|
-
beamsize: 1,
|
|
11
|
-
normalize: 1,
|
|
12
|
-
temperature: 0.2,
|
|
13
|
-
norepeatngramsize: 3,
|
|
14
|
-
lengthpenalty: 1.2,
|
|
15
|
-
},
|
|
16
|
-
onProgress: (progress) => {
|
|
17
|
-
console.log(progress);
|
|
18
|
-
},
|
|
19
|
-
});
|
|
20
|
-
console.log(`✅ Bergamot model loaded: ${modelId}`);
|
|
21
|
-
// Test with array of texts for batch processing
|
|
22
|
-
const texts = [
|
|
23
|
-
"Hello world",
|
|
24
|
-
"How are you today?",
|
|
25
|
-
"This is a test of batch translation",
|
|
26
|
-
"The weather is nice",
|
|
27
|
-
];
|
|
28
|
-
console.log("\n📝 Translating batch of texts:");
|
|
29
|
-
texts.forEach((text, i) => console.log(` ${i + 1}. ${text}`));
|
|
30
|
-
const result = translate({
|
|
31
|
-
modelId,
|
|
32
|
-
text: texts, // Pass array for batch processing
|
|
33
|
-
modelType: "nmt",
|
|
34
|
-
stream: false,
|
|
35
|
-
});
|
|
36
|
-
const translatedText = await result.text;
|
|
37
|
-
const translations = translatedText.split("\n");
|
|
38
|
-
console.log("\n✅ Translations:");
|
|
39
|
-
translations.forEach((translation, i) => {
|
|
40
|
-
if (i < texts.length) {
|
|
41
|
-
console.log(` ${i + 1}. ${texts[i]} -> "${translation}"`);
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
await unloadModel({ modelId });
|
|
45
|
-
}
|
|
46
|
-
catch (error) {
|
|
47
|
-
console.error("❌ Error:", error);
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { BERGAMOT_ES_EN, BERGAMOT_EN_IT, loadModel, translate, unloadModel } from "@qvac/sdk";
|
|
2
|
-
/**
|
|
3
|
-
* Example: Pivot Translation with Bergamot
|
|
4
|
-
*
|
|
5
|
-
* Demonstrates translating Spanish to Italian through English as a pivot language.
|
|
6
|
-
* This requires two models:
|
|
7
|
-
* 1. Spanish → English (primary model)
|
|
8
|
-
* 2. English → Italian (pivot model)
|
|
9
|
-
*
|
|
10
|
-
* The API structure follows the standard Bergamot model pattern:
|
|
11
|
-
* - modelSrc: Primary translation model
|
|
12
|
-
* - modelConfig: Configuration with Bergamot-specific settings
|
|
13
|
-
* - modelConfig.pivotModel: Configuration for the secondary model
|
|
14
|
-
*/
|
|
15
|
-
// Spanish to Italian via English pivot example
|
|
16
|
-
try {
|
|
17
|
-
// Load the primary model (Spanish → English) with pivot configuration
|
|
18
|
-
const modelId = await loadModel({
|
|
19
|
-
modelSrc: BERGAMOT_ES_EN, // Primary model: Spanish → English
|
|
20
|
-
modelType: "nmt",
|
|
21
|
-
modelConfig: {
|
|
22
|
-
engine: "Bergamot",
|
|
23
|
-
from: "es",
|
|
24
|
-
to: "it", // Final target language (SDK handles the pivot internally)
|
|
25
|
-
beamsize: 4,
|
|
26
|
-
normalize: 1,
|
|
27
|
-
temperature: 0.3,
|
|
28
|
-
topk: 100,
|
|
29
|
-
// Pivot model configuration (English → Italian)
|
|
30
|
-
pivotModel: {
|
|
31
|
-
modelSrc: BERGAMOT_EN_IT, // Source for English → Italian model
|
|
32
|
-
// Bergamot-specific generation parameters for pivot model
|
|
33
|
-
beamsize: 4,
|
|
34
|
-
temperature: 0.3,
|
|
35
|
-
topk: 100,
|
|
36
|
-
normalize: 1,
|
|
37
|
-
lengthpenalty: 1.2,
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
onProgress: (progress) => {
|
|
41
|
-
console.log(progress);
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
console.log(`✅ Pivot translation model loaded: ${modelId}`);
|
|
45
|
-
console.log(" Primary: Spanish → English");
|
|
46
|
-
console.log(" Pivot: English → Italian");
|
|
47
|
-
// Spanish text to translate
|
|
48
|
-
const spanishText = `Era una mañana soleada cuando María decidió visitar el mercado local.
|
|
49
|
-
Compró frutas frescas, verduras y flores para su casa.
|
|
50
|
-
El vendedor le recomendó las mejores manzanas de la temporada.`;
|
|
51
|
-
console.log("\n📝 Original Spanish text:");
|
|
52
|
-
console.log(spanishText);
|
|
53
|
-
// Translate Spanish → English → Italian
|
|
54
|
-
const result = translate({
|
|
55
|
-
modelId,
|
|
56
|
-
text: spanishText,
|
|
57
|
-
modelType: "nmt",
|
|
58
|
-
stream: false,
|
|
59
|
-
});
|
|
60
|
-
const italianText = await result.text;
|
|
61
|
-
console.log("\n🇮🇹 Translated to Italian (via English):");
|
|
62
|
-
console.log(italianText);
|
|
63
|
-
// Expected output (approximate):
|
|
64
|
-
// "Era una mattina di sole quando Maria decise di visitare il mercato locale.
|
|
65
|
-
// Ha comprato frutta fresca, verdura e fiori per la sua casa.
|
|
66
|
-
// Il venditore ha consigliato le migliori mele della stagione."
|
|
67
|
-
await unloadModel({ modelId });
|
|
68
|
-
console.log("\n✅ Model unloaded successfully");
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
console.error("❌ Error:", error);
|
|
72
|
-
process.exit(1);
|
|
73
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { loadModel, translate, unloadModel, BERGAMOT_EN_FR } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
// Bergamot models automatically derive vocabulary files from the model source.
|
|
4
|
-
// You can still override them explicitly if needed:
|
|
5
|
-
// - srcVocabSrc: source vocabulary file (optional)
|
|
6
|
-
// - dstVocabSrc: target vocabulary file (optional)
|
|
7
|
-
const modelId = await loadModel({
|
|
8
|
-
modelSrc: BERGAMOT_EN_FR,
|
|
9
|
-
modelType: "nmt",
|
|
10
|
-
modelConfig: {
|
|
11
|
-
engine: "Bergamot",
|
|
12
|
-
from: "en",
|
|
13
|
-
to: "fr",
|
|
14
|
-
beamsize: 1,
|
|
15
|
-
normalize: 1,
|
|
16
|
-
temperature: 0.2,
|
|
17
|
-
norepeatngramsize: 3,
|
|
18
|
-
lengthpenalty: 1.2,
|
|
19
|
-
},
|
|
20
|
-
onProgress: (progress) => {
|
|
21
|
-
console.log(progress);
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
console.log(`✅ Bergamot model loaded: ${modelId}`);
|
|
25
|
-
const text = "This is a test of the Bergamot translation model.";
|
|
26
|
-
const result = translate({
|
|
27
|
-
modelId,
|
|
28
|
-
text,
|
|
29
|
-
modelType: "nmt",
|
|
30
|
-
stream: false,
|
|
31
|
-
});
|
|
32
|
-
const translatedText = await result.text;
|
|
33
|
-
console.log(`Translated text EN -> FR: ${text} -> "${translatedText}"`);
|
|
34
|
-
await unloadModel({ modelId });
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.error("❌ Error:", error);
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { translate, loadModel, unloadModel, AFRICAN_4B_TRANSLATION_Q4_K_M, } from "@qvac/sdk";
|
|
2
|
-
try {
|
|
3
|
-
const modelId = await loadModel({
|
|
4
|
-
modelSrc: AFRICAN_4B_TRANSLATION_Q4_K_M,
|
|
5
|
-
modelType: "llm",
|
|
6
|
-
onProgress: (progress) => {
|
|
7
|
-
console.log(progress);
|
|
8
|
-
},
|
|
9
|
-
// IMPORTANT: these parameters are validated to be optimal
|
|
10
|
-
modelConfig: {
|
|
11
|
-
tools: true,
|
|
12
|
-
ctx_size: 2048,
|
|
13
|
-
top_k: 1,
|
|
14
|
-
top_p: 1,
|
|
15
|
-
temp: 0,
|
|
16
|
-
repeat_penalty: 1,
|
|
17
|
-
seed: 42,
|
|
18
|
-
predict: 256,
|
|
19
|
-
stop_sequences: ['\n']
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
// With explicit source language
|
|
23
|
-
const engText = "Hello, how are you today?";
|
|
24
|
-
const resultExplicit = translate({
|
|
25
|
-
modelId,
|
|
26
|
-
text: engText,
|
|
27
|
-
from: "en",
|
|
28
|
-
to: "swh_Latn",
|
|
29
|
-
modelType: "llm",
|
|
30
|
-
stream: false,
|
|
31
|
-
});
|
|
32
|
-
const translatedTextExplicit = await resultExplicit.text;
|
|
33
|
-
console.log(`Explicit source: ${engText} -> "${translatedTextExplicit}"`);
|
|
34
|
-
await unloadModel({ modelId, clearStorage: false });
|
|
35
|
-
}
|
|
36
|
-
catch (error) {
|
|
37
|
-
console.error("❌ Error:", error);
|
|
38
|
-
process.exit(1);
|
|
39
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { loadModel, textToSpeech, unloadModel, TTS_TOKENIZER_EN_CHATTERBOX, TTS_SPEECH_ENCODER_EN_CHATTERBOX_FP32, TTS_EMBED_TOKENS_EN_CHATTERBOX_FP32, TTS_CONDITIONAL_DECODER_EN_CHATTERBOX_FP32, TTS_LANGUAGE_MODEL_EN_CHATTERBOX_FP32, } from "@qvac/sdk";
|
|
2
|
-
import { createWav, playAudio, int16ArrayToBuffer, createWavHeader, } from "./utils.js";
|
|
3
|
-
// Chatterbox TTS: voice cloning with reference audio.
|
|
4
|
-
// Uses registry model constants - downloads automatically from QVAC Registry.
|
|
5
|
-
// Only reference audio WAV needs to be provided by the user.
|
|
6
|
-
// Usage: node chatterbox-filesystem.js <referenceAudioSrc>
|
|
7
|
-
const [referenceAudioSrc] = process.argv.slice(2);
|
|
8
|
-
if (!referenceAudioSrc) {
|
|
9
|
-
console.error("Usage: node chatterbox-filesystem.js <referenceAudioSrc>");
|
|
10
|
-
process.exit(1);
|
|
11
|
-
}
|
|
12
|
-
const CHATTERBOX_SAMPLE_RATE = 24000;
|
|
13
|
-
try {
|
|
14
|
-
const modelId = await loadModel({
|
|
15
|
-
modelSrc: TTS_TOKENIZER_EN_CHATTERBOX.src,
|
|
16
|
-
modelType: "tts",
|
|
17
|
-
modelConfig: {
|
|
18
|
-
ttsEngine: "chatterbox",
|
|
19
|
-
language: "en",
|
|
20
|
-
ttsTokenizerSrc: TTS_TOKENIZER_EN_CHATTERBOX.src,
|
|
21
|
-
ttsSpeechEncoderSrc: TTS_SPEECH_ENCODER_EN_CHATTERBOX_FP32.src,
|
|
22
|
-
ttsEmbedTokensSrc: TTS_EMBED_TOKENS_EN_CHATTERBOX_FP32.src,
|
|
23
|
-
ttsConditionalDecoderSrc: TTS_CONDITIONAL_DECODER_EN_CHATTERBOX_FP32.src,
|
|
24
|
-
ttsLanguageModelSrc: TTS_LANGUAGE_MODEL_EN_CHATTERBOX_FP32.src,
|
|
25
|
-
referenceAudioSrc,
|
|
26
|
-
},
|
|
27
|
-
onProgress: (progress) => {
|
|
28
|
-
console.log(progress);
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
console.log(`Model loaded: ${modelId}`);
|
|
32
|
-
console.log("🎵 Testing Text-to-Speech...");
|
|
33
|
-
const result = textToSpeech({
|
|
34
|
-
modelId,
|
|
35
|
-
text: `QVAC SDK is the canonical entry point to QVAC. Written in TypeScript, it provides all QVAC capabilities through a unified interface while also abstracting away the complexity of running your application in a JS environment other than Bare. Supported JS environments include Bare, Node.js, Expo and Bun.`,
|
|
36
|
-
inputType: "text",
|
|
37
|
-
stream: false,
|
|
38
|
-
});
|
|
39
|
-
const audioBuffer = await result.buffer;
|
|
40
|
-
console.log(`TTS complete. Total bytes: ${audioBuffer.length}`);
|
|
41
|
-
console.log("💾 Saving audio to file...");
|
|
42
|
-
createWav(audioBuffer, CHATTERBOX_SAMPLE_RATE, "tts-output.wav");
|
|
43
|
-
console.log("✅ Audio saved to tts-output.wav");
|
|
44
|
-
console.log("🔊 Playing audio...");
|
|
45
|
-
const audioData = int16ArrayToBuffer(audioBuffer);
|
|
46
|
-
const wavBuffer = Buffer.concat([
|
|
47
|
-
createWavHeader(audioData.length, CHATTERBOX_SAMPLE_RATE),
|
|
48
|
-
audioData,
|
|
49
|
-
]);
|
|
50
|
-
playAudio(wavBuffer);
|
|
51
|
-
console.log("✅ Audio playback complete");
|
|
52
|
-
await unloadModel({ modelId });
|
|
53
|
-
console.log("Model unloaded");
|
|
54
|
-
process.exit(0);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
console.error("❌ Error:", error);
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { loadModel, textToSpeech, unloadModel, TTS_TOKENIZER_SUPERTONIC, TTS_TEXT_ENCODER_SUPERTONIC_FP32, TTS_LATENT_DENOISER_SUPERTONIC_FP32, TTS_VOICE_DECODER_SUPERTONIC_FP32, TTS_VOICE_STYLE_SUPERTONIC, } from "@qvac/sdk";
|
|
2
|
-
import { createWav, playAudio, int16ArrayToBuffer, createWavHeader, } from "./utils.js";
|
|
3
|
-
// Supertonic TTS: general-purpose, no voice cloning.
|
|
4
|
-
// Uses registry model constants - downloads automatically from QVAC Registry.
|
|
5
|
-
const SUPERTONIC_SAMPLE_RATE = 44100;
|
|
6
|
-
try {
|
|
7
|
-
const modelId = await loadModel({
|
|
8
|
-
modelSrc: TTS_TOKENIZER_SUPERTONIC.src,
|
|
9
|
-
modelType: "tts",
|
|
10
|
-
modelConfig: {
|
|
11
|
-
ttsEngine: "supertonic",
|
|
12
|
-
language: "en",
|
|
13
|
-
ttsTokenizerSrc: TTS_TOKENIZER_SUPERTONIC.src,
|
|
14
|
-
ttsTextEncoderSrc: TTS_TEXT_ENCODER_SUPERTONIC_FP32.src,
|
|
15
|
-
ttsLatentDenoiserSrc: TTS_LATENT_DENOISER_SUPERTONIC_FP32.src,
|
|
16
|
-
ttsVoiceDecoderSrc: TTS_VOICE_DECODER_SUPERTONIC_FP32.src,
|
|
17
|
-
ttsVoiceSrc: TTS_VOICE_STYLE_SUPERTONIC.src,
|
|
18
|
-
},
|
|
19
|
-
onProgress: (progress) => {
|
|
20
|
-
console.log(progress);
|
|
21
|
-
},
|
|
22
|
-
});
|
|
23
|
-
console.log(`Model loaded: ${modelId}`);
|
|
24
|
-
console.log("🎵 Testing Text-to-Speech...");
|
|
25
|
-
const result = textToSpeech({
|
|
26
|
-
modelId,
|
|
27
|
-
text: `QVAC SDK is the canonical entry point to QVAC. Written in TypeScript, it provides all QVAC capabilities through a unified interface while also abstracting away the complexity of running your application in a JS environment other than Bare. Supported JS environments include Bare, Node.js, Expo and Bun.`,
|
|
28
|
-
inputType: "text",
|
|
29
|
-
stream: false,
|
|
30
|
-
});
|
|
31
|
-
const audioBuffer = await result.buffer;
|
|
32
|
-
console.log(`TTS complete. Total samples: ${audioBuffer.length}`);
|
|
33
|
-
console.log("💾 Saving audio to file...");
|
|
34
|
-
createWav(audioBuffer, SUPERTONIC_SAMPLE_RATE, "supertonic-output.wav");
|
|
35
|
-
console.log("✅ Audio saved to supertonic-output.wav");
|
|
36
|
-
console.log("🔊 Playing audio...");
|
|
37
|
-
const audioData = int16ArrayToBuffer(audioBuffer);
|
|
38
|
-
const wavBuffer = Buffer.concat([
|
|
39
|
-
createWavHeader(audioData.length, SUPERTONIC_SAMPLE_RATE),
|
|
40
|
-
audioData,
|
|
41
|
-
]);
|
|
42
|
-
playAudio(wavBuffer);
|
|
43
|
-
console.log("✅ Audio playback complete");
|
|
44
|
-
await unloadModel({ modelId });
|
|
45
|
-
console.log("Model unloaded");
|
|
46
|
-
process.exit(0);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
console.error("❌ Error:", error);
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Create WAV header for 16-bit PCM audio
|
|
3
|
-
*/
|
|
4
|
-
export declare function createWavHeader(dataLength: number, sampleRate: number): Buffer;
|
|
5
|
-
/**
|
|
6
|
-
* Convert Int16Array to Buffer
|
|
7
|
-
*/
|
|
8
|
-
export declare function int16ArrayToBuffer(samples: number[]): Buffer;
|
|
9
|
-
/**
|
|
10
|
-
* Create and save WAV file
|
|
11
|
-
*/
|
|
12
|
-
export declare function createWav(audioBuffer: number[], sampleRate: number, filename: string): void;
|
|
13
|
-
/**
|
|
14
|
-
* Play audio using system audio players
|
|
15
|
-
*/
|
|
16
|
-
export declare function playAudio(audioBuffer: Buffer): void;
|
|
17
|
-
//# sourceMappingURL=utils.d.ts.map
|