UNPKG

stt-sdk

Version:

基于 LLMs 的语音转文本 SDK

53 lines (50 loc) 1.47 kB
/** * STT 客户端工具合集 */ export abstract class BaseSTTClientUtil { /** * 默认编码选择器 */ public pickSupportedMime(): string { const cands = [ "audio/webm;codecs=opus", "audio/ogg;codecs=opus", "audio/webm", ]; return cands.find((t) => MediaRecorder.isTypeSupported(t)) ?? "audio/webm"; } /** * 默认音频流选择器 */ public defaultVoiceStream(): Promise<MediaStream> { return new Promise(async (resolve, reject) => { try { const stream = await navigator.mediaDevices.getUserMedia({ audio: { deviceId: "default", }, video: false }); resolve(stream); } catch (e) { reject(e); } }); } /** * 默认音频流切割器 */ public defaultSlice(stream: MediaStream, receive_handler: (data: Blob) => void, config: { mime: string, sliceTimeout: number }) { const mr = new MediaRecorder(stream, { mimeType: config.mime }); mr.ondataavailable = async (e: BlobEvent) => { if (e.data && e.data.size > 0) { receive_handler(e.data); } }; mr.start(config.sliceTimeout); } }