UNPKG

hama-js

Version:

G2P, phoneme-ASR, and P2G inference for Node, Bun, and browsers, powered by a self-contained WASM engine (no onnxruntime).

49 lines (48 loc) 1.75 kB
export declare const ENC_FEAT = 192; export declare const ENC_HID = 96; export declare const DEC_HID = 96; export declare const ASR_VOCAB = 191; export interface EncoderOut { encoderOutputs: Float32Array; projectedKeys: Float32Array; hidden: Float32Array; mask: Uint8Array; prevAttn: Float32Array; T: number; } export interface DecoderOut { nextToken: number; attnArgmax: number; hiddenOut: Float32Array; prevOut: Float32Array; } export declare class HamaEngine { private ex; private constructor(); static fromBytes(wasm: Uint8Array): Promise<HamaEngine>; private writeBytes; private writeF32; private writeI64; private readF32; private readU8; private readI64; private loadModel; loadEncoder(bytes: Uint8Array): number; loadDecoder(bytes: Uint8Array): number; loadAsr(bytes: Uint8Array): number; loadP2g(bytes: Uint8Array): number; /** Greedy decode: prefixIds = [bos, src, phones..., tgt]; returns generated token ids. */ p2gGreedy(h: number, prefixIds: BigInt64Array, maxNew: number, eos: number, pad: number): number[]; /** Greedy decode + per-token source-phoneme alignment index (-1 if unaligned). */ p2gGreedyAlign(h: number, prefixIds: BigInt64Array, maxNew: number, eos: number, pad: number): { ids: number[]; align: number[]; }; encoderRun(h: number, ids: BigInt64Array, length: number): EncoderOut; decoderStep(h: number, token: number, eo: Float32Array, pk: Float32Array, mask: Uint8Array, prev: Float32Array, hidden: Float32Array, positions: Float32Array): DecoderOut; asrRun(h: number, wav: Float32Array): { logProbs: Float32Array; T: number; outLength: number; }; }