Pular para o conteúdo

API: ai/nlu-voice-wasm

@mosaicoo/svg-engine/ai/nlu-voice-wasm fornece speech-to-text 100% local e offline via Whisper (transformers.js + onnxruntime-web WASM). É um entry point pesado e opt-in — as dependências de ML carregam de forma lazy, só quando a voz é de fato usada. Sem dependência de Angular Material/CDK.

import { provideWhisperVoiceEngine } from '@mosaicoo/svg-engine/ai/nlu-voice-wasm';

Registre o engine nos providers do app; o VoiceEngineService (de ai/nlu-ui) então o descobre como o engine whisper.

APIDescrição
provideWhisperVoiceEngine(config?)O bootstrap completo: registra a config e o WhisperVoiceService como VOICE_WHISPER_PROVIDER. Coloque no providers[] raiz.
provideWhisperVoice(config?)Registra só a config (mesclada com os padrões).
WhisperVoiceServiceO próprio provider — mesmo contrato VoiceProvider do Web Speech, mas transcrevendo on-device: listen(lang?, options?) grava (com detecção de atividade de voz) e transcreve localmente; signals isSupported/listening/modelLoading/lastError. Multilíngue (PT-BR / ES / EN).
WHISPER_VOICE_CONFIG / DEFAULT_WHISPER_VOICE_CONFIGO token de injeção da config e seus padrões.

WhisperVoiceConfig controla o modelo, o runtime WASM e o comportamento de detecção de atividade de voz:

CampoPadrãoSignificado
modelBasePath/assets/ml/whisperDe onde o transformers.js carrega o modelo.
modelIdwhisper-smallPasta do modelo (ex.: whisper-base, whisper-small).
wasmBasePath/assets/ml/ort/De onde os binários .wasm do onnxruntime são servidos.
dtypeq8Quantização do modelo (q8/fp32/fp16/…).
numThreads1Threads WASM (1 evita o requisito de COOP/COEP).
defaultLanguageptIdioma BCP-47 usado quando o chamador omite.
maxRecordMs15000Duração máxima de captura antes do auto-stop.
silenceMs / silenceThreshold1000 / 0.015Detecção de atividade de voz: duração do silêncio e limiar de energia RMS para auto-parar após a fala.
noSpeechTimeoutMs6000Desiste se nenhuma fala for detectada.