web-asr-core
Version:
WebASR Core - Browser-based speech processing with VAD, WakeWord and Whisper - Unified all-in-one version
163 lines • 4.83 kB
TypeScript
/**
* 系統診斷工具
*
* 提供瀏覽器能力檢測、效能評估和最佳配置建議
*
* @fileoverview 系統診斷工具實現
* @author WebASRCore Team
*/
/**
* 系統診斷結果介面
*/
export interface SystemDiagnosis {
/** 瀏覽器支援的功能 */
supported: {
/** 是否為安全上下文 (HTTPS/localhost) */
secureContext: boolean;
/** 是否支援 getUserMedia API */
getUserMedia: boolean;
/** 是否支援 AudioWorklet API */
audioWorklet: boolean;
/** 是否支援 SharedArrayBuffer */
sharedArrayBuffer: boolean;
/** 是否為跨源隔離環境 */
crossOriginIsolated: boolean;
/** 是否支援 WebGPU */
webgpu: boolean;
/** 是否支援 WebGL 2.0 */
webgl: boolean;
/** 是否支援 WebNN (Web Neural Network API) */
webnn: boolean;
/** Worker 中是否支援 WebGPU */
webgpuInWorker: boolean;
/** 是否支援 WASM 多執行緒 */
wasmThreads: boolean;
/** 是否支援 WASM SIMD */
wasmSIMD: boolean;
/** 是否支援 MediaRecorder API */
mediaRecorder: boolean;
/** 支援的 MediaRecorder MIME 類型 */
mediaRecorderMimes: string[];
/** 是否支援 Web Speech Recognition API */
webSpeechRecognition: boolean;
/** Web Speech API 是否支援離線模式 */
webSpeechOffline: boolean;
/** 是否支援 Cache API */
cacheAPI: boolean;
/** 是否支援 IndexedDB */
indexedDB: boolean;
};
/** 系統效能指標 */
performance: {
/** GPU 效能等級 */
gpuTier: 'high' | 'medium' | 'low' | 'unknown';
/** 記憶體大小 (GB) */
memoryGB: number;
/** CPU 核心數 */
cpuCores: number;
/** 瀏覽器資訊 */
browser: {
name: string;
version: string;
engine: string;
};
};
/** 最佳配置建議 */
recommendation: {
/** 建議的執行提供者優先順序 */
executionProvider: ('webgpu' | 'webnn' | 'webgl' | 'wasm')[];
/** 建議的 Whisper 後端 */
whisperBackend: 'webgpu' | 'wasm';
/** 建議的資料傳輸方式 */
transport: 'sab' | 'messageport';
/** 建議的音訊配置 */
audioConfig: {
/** 音訊塊大小 (毫秒) */
chunkMs: number;
/** 緩衝區大小 (幀數) */
bufferSizeFrames: number;
};
/** 建議的模型大小 */
modelSize: 'tiny' | 'base' | 'small';
/** 建議的 MediaRecorder MIME 類型 */
mediaRecorderMime: string;
/** 需要的 HTTP 標頭(如果缺少功能) */
headersNeeded?: {
COOP?: string;
COEP?: string;
};
/** 建議和提示 */
notes: string[];
/** 警告訊息 */
warnings: string[];
};
}
/**
* 系統診斷工具類
*/
export declare class SystemDiagnostics {
private static instance;
private cachedDiagnosis;
private constructor();
/**
* 取得系統診斷工具單例
*/
static getInstance(): SystemDiagnostics;
/**
* 執行完整的系統診斷
* @param force 是否強制重新診斷(忽略快取)
* @returns 系統診斷結果
*/
diagnose(force?: boolean): Promise<SystemDiagnosis>;
/**
* 檢測瀏覽器功能支援
*/
private checkFeatureSupport;
/**
* 檢測系統效能
*/
private checkPerformance;
/**
* 生成配置建議
*/
private generateRecommendations;
private isSecureContext;
private hasGetUserMedia;
private hasAudioWorklet;
private hasSharedArrayBuffer;
private isCrossOriginIsolated;
private hasWebGPU;
/**
* 輸出 WebGPU 設定指南到 console
*/
private logWebGPUSetupGuide;
private hasWebGL;
private hasWebNN;
private hasWebGPUInWorker;
private hasWasmThreads;
private hasWasmSIMD;
private hasMediaRecorder;
private getSupportedMediaRecorderMimes;
private hasWebSpeechRecognition;
private hasWebSpeechOffline;
private hasCacheAPI;
private hasIndexedDB;
private detectGPUTier;
private getMemorySize;
private getBrowserInfo;
private recommendMediaRecorderMime;
/**
* 執行 WebGPU 診斷並輸出指南
*/
diagnoseWebGPU(): Promise<{
mainThread: boolean;
worker: boolean;
adapterName?: string;
}>;
/**
* 生成診斷報告字串
*/
generateReport(): Promise<string>;
}
export declare const systemDiagnostics: SystemDiagnostics;
//# sourceMappingURL=system-diagnostics.d.ts.map