Renumber spec 001 decision placeholders to D-040–D-051; record the Danish publication
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
30969e86b7
commit
0632f7843b
71 files changed
+244
-236
No files matched your search
+18
-18
@@ -36,14 +36,14 @@ export interface DtypeDefault {
|
||||
}
|
||||
|
||||
/**
|
||||
* Which inference path a catalog entry runs on (D-WS7a). Whisper models use
|
||||
* Which inference path a catalog entry runs on (D-051). Whisper models use
|
||||
* the Transformers.js ASR pipeline; Parakeet uses the worker's own TDT path
|
||||
* (src/worker/parakeetEngine.ts). Absent ⇒ "whisper", so the Whisper entries
|
||||
* carry no field at all.
|
||||
*/
|
||||
export type ModelFamily = "whisper" | "parakeet";
|
||||
|
||||
/** Exact weight-file sizes per dtype, for entries whose files we know (D-WS7a). */
|
||||
/** Exact weight-file sizes per dtype, for entries whose files we know (D-051). */
|
||||
export interface ExactModelBytes {
|
||||
encoder: Partial<Record<WhisperDtype, number>>;
|
||||
decoder: Partial<Record<WhisperDtype, number>>;
|
||||
@@ -54,7 +54,7 @@ export interface ExactModelBytes {
|
||||
export interface WhisperModel {
|
||||
/** Hugging Face Hub id, e.g. "onnx-community/whisper-tiny.en". */
|
||||
id: string;
|
||||
/** Inference path (D-WS7a); absent ⇒ "whisper". */
|
||||
/** Inference path (D-051); absent ⇒ "whisper". */
|
||||
family?: ModelFamily;
|
||||
/**
|
||||
* Real file sizes; when present they replace the parameter-count estimate
|
||||
@@ -67,11 +67,11 @@ export interface WhisperModel {
|
||||
multilingual: boolean;
|
||||
/**
|
||||
* Whether Whisper's own `task: "translate"` (speech → English text) is
|
||||
* offered (D-WS4a). False for every `.en` model (no task token) and for
|
||||
* offered (D-044). False for every `.en` model (no task token) and for
|
||||
* large-v3-turbo, which OpenAI did not train for translation — and for any
|
||||
* turbo-based fine-tune not tested for it. The UI hides "Translate to
|
||||
* English" where false; text translation of a finished transcript
|
||||
* (D-WS4b) works for every model regardless.
|
||||
* (D-045) works for every model regardless.
|
||||
*/
|
||||
canTranslate: boolean;
|
||||
/** Encoder parameter count, in millions (drives size estimates). */
|
||||
@@ -86,7 +86,7 @@ export interface WhisperModel {
|
||||
* CTranslate2 conversions on the Hub (`Systran/faster-whisper-*`;
|
||||
* large-v3-turbo → `mobiuslabsgmbh/faster-whisper-large-v3-turbo`), so the
|
||||
* pinned library version stays the single authority on the exact repo.
|
||||
* Absent for browser-only families (Parakeet, D-WS7a): the server engine
|
||||
* Absent for browser-only families (Parakeet, D-051): the server engine
|
||||
* answers 400 for them and the picker hides them while it is selected.
|
||||
*/
|
||||
fasterWhisperModel?: string;
|
||||
@@ -212,12 +212,12 @@ const ACCEL_Q4: DtypeDefault = {
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Danish fine-tunes (D-WS6a)
|
||||
// Danish fine-tunes (D-046)
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Hugging Face account that hosts our conversions of the Danish Whisper
|
||||
* fine-tunes (D-WS6a). Both the ONNX repo (browser engine) and the
|
||||
* fine-tunes (D-046). Both the ONNX repo (browser engine) and the
|
||||
* CTranslate2 int8 repo (server engine) hang off this one value. Only
|
||||
* whisper-small-danish is published: the turbo fine-tunes (turbo-danish,
|
||||
* edda-v0.2) showed no clear gain over stock turbo on our Danish clip.
|
||||
@@ -225,14 +225,14 @@ const ACCEL_Q4: DtypeDefault = {
|
||||
export const DANISH_MODELS_HF_OWNER = "lucasw89";
|
||||
|
||||
/**
|
||||
* WASM default for the Danish conversions (D-WS6a): measured on our own files
|
||||
* WASM default for the Danish conversions (D-046): measured on our own files
|
||||
* (da_festuge, onnxruntime-node CPU), q4 matched or beat q8 on WER and was
|
||||
* faster for all three — small included, unlike the stock small (q8).
|
||||
*/
|
||||
const DANISH_WASM_Q4: DtypeDefault = {
|
||||
dtype: "q4",
|
||||
verified: false,
|
||||
note: "q4: best measured WER and fastest of q8/q4 on our Danish conversions (D-WS6a).",
|
||||
note: "q4: best measured WER and fastest of q8/q4 on our Danish conversions (D-046).",
|
||||
};
|
||||
|
||||
/** Catalog id + matching faster-whisper repo for one published conversion. */
|
||||
@@ -247,7 +247,7 @@ function danishRepos(name: string): Pick<WhisperModel, "id" | "fasterWhisperMode
|
||||
// The catalog (D-006: curated, not exhaustive)
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
/** Parakeet TDT 0.6B v3 ONNX repo and the revision its file sizes were taken from (D-WS7a). */
|
||||
/** Parakeet TDT 0.6B v3 ONNX repo and the revision its file sizes were taken from (D-051). */
|
||||
export const PARAKEET_MODEL_ID = "ysdede/parakeet-tdt-0.6b-v3-onnx";
|
||||
export const PARAKEET_REVISION = "e5356bf6e24bdb7a269536b0e9e7869bc034b893";
|
||||
|
||||
@@ -347,13 +347,13 @@ export const MODELS: readonly WhisperModel[] = [
|
||||
displayName: "Whisper Large v3 Turbo",
|
||||
multilingual: true,
|
||||
// Not trained for translation (OpenAI's turbo model card); its
|
||||
// "translate" output is unreliable (D-WS4a).
|
||||
// "translate" output is unreliable (D-044).
|
||||
canTranslate: false,
|
||||
encoderParamsM: 635,
|
||||
decoderParamsM: 174,
|
||||
defaults: { wasm: WASM_Q4, webgpu: WEBGPU_FP16_Q4, webnn: WEBNN_FP16 },
|
||||
},
|
||||
// Danish fine-tune (D-WS6a): unchanged Whisper architecture, so the
|
||||
// Danish fine-tune (D-046): unchanged Whisper architecture, so the
|
||||
// parameter counts are its base model's. Conversions by us, weights by
|
||||
// the original authors (credited in each published repo's model card).
|
||||
{
|
||||
@@ -361,7 +361,7 @@ export const MODELS: readonly WhisperModel[] = [
|
||||
...danishRepos("whisper-small-danish"),
|
||||
displayName: "Whisper Small (Danish)",
|
||||
multilingual: true,
|
||||
// Translation untested on these fine-tunes (spec 001, D-WS4a).
|
||||
// Translation untested on these fine-tunes (spec 001, D-044).
|
||||
canTranslate: false,
|
||||
encoderParamsM: 88,
|
||||
decoderParamsM: 156,
|
||||
@@ -369,7 +369,7 @@ export const MODELS: readonly WhisperModel[] = [
|
||||
},
|
||||
{
|
||||
// NVIDIA Parakeet TDT 0.6B v3 (CC-BY-4.0), NeMo→ONNX conversion by
|
||||
// ysdede, run through parakeet.js on our onnxruntime-web (D-WS7a).
|
||||
// ysdede, run through parakeet.js on our onnxruntime-web (D-051).
|
||||
// English-only in this app (the model itself knows 25 European
|
||||
// languages, but only English is measured here). Desktop-only: its
|
||||
// ~1.3 GB load peak is far past every phone budget (D-027–D-029), so
|
||||
@@ -391,10 +391,10 @@ export const MODELS: readonly WhisperModel[] = [
|
||||
wasm: {
|
||||
dtype: "q8",
|
||||
verified: false,
|
||||
note: "int8 encoder + decoder: the measured WASM path (D-WS7a).",
|
||||
note: "int8 encoder + decoder: the measured WASM path (D-051).",
|
||||
},
|
||||
// Only used when WebGPU is chosen explicitly — "auto" never picks it
|
||||
// for Parakeet (D-WS7a): int8 on WebGPU is reported broken, and fp16
|
||||
// for Parakeet (D-051): int8 on WebGPU is reported broken, and fp16
|
||||
// is a separate 1.24 GB download. The decoder stays int8 on WASM.
|
||||
webgpu: {
|
||||
dtype: { encoder_model: "fp16", decoder_model_merged: "q8" },
|
||||
@@ -424,7 +424,7 @@ export function getFasterWhisperModel(id: string): string | undefined {
|
||||
}
|
||||
|
||||
/**
|
||||
* The task a run on `modelId` should actually use (D-WS4a): a "translate"
|
||||
* The task a run on `modelId` should actually use (D-044): a "translate"
|
||||
* left over from a model that could translate falls back to "transcribe" on
|
||||
* one that cannot (large-v3-turbo, `.en`, unknown ids). App applies it on
|
||||
* every model switch and again when building each run's options.
|
||||
|
||||
Reference in new issue
Block a user