export type SupportSoundFormat = "flac" | "aac" | "m4a" | "mp3" | "wav"; export type OutputFormat = "srt" | "json" | "lrc" | "txt"; /** * 任务状态枚举 */ export declare enum ResultStateEnum { STOP = 0,// 未开始 RUNNING = 1,// 运行中 ERROR = 3,// 错误 COMPLETE = 4 } /** * 文字识别-逐字 */ export interface ASRDataWords { label: string; start_time: number; end_time: number; } /** * 文字识别-断句 */ export interface ASRDataSeg { start_time: number; end_time: number; transcript: string; /** 值为 0-1 之间的概率,表示该段落是音乐的可能性 */ music: number; punc: number; words: ASRDataWords[]; } /** * 语音识别结果 */ export interface ASRDataResult { utterances: ASRDataSeg[]; version: string; } /** * 上传申请响应 */ export interface ResourceCreateRsp { resource_id: string; title: string; type: number; in_boss_key: string; size: number; upload_urls: string[]; upload_id: string; per_size: number; } /** * 上传提交响应 */ export interface ResourceCompleteRsp { resource_id: string; download_url: string; } /** * 任务创建响应 */ export interface TaskCreateRsp { resource: string; result: string; task_id: string; } /** * 任务结果查询响应 */ export interface ResultRsp { task_id: string; result: string | null; remark: string; state: ResultStateEnum; } /** * 语音识别结果数据类 */ export declare class ASRData { private data; constructor(data: ASRDataResult); /** * 是否识别到数据 */ hasData(): boolean; /** * 转换为 srt 时间戳 */ private toSrtTimestamp; /** * 转换为 lrc 时间戳 */ private toLrcTimestamp; /** * 转成 txt 格式字幕 (无时间标记) */ toTxt(): string; /** * 转成 srt 格式字幕 * @param offset 时间偏移,单位毫秒,默认为 0 * @returns srt 字幕字符串 */ toSrt(offset?: number): string; /** * 转成 lrc 格式字幕 */ toLrc(): string; /** * 转成 JSON 格式 */ toJson(): string; /** * 获取原始数据 */ getRawData(): ASRDataResult; } /** * ASR API 错误 */ export declare class ASRError extends Error { code: number; msg: string; constructor(code: number, msg: string); } /** * 必剪语音识别接口 */ export declare class BcutASR { private session; private soundName; private soundBin; private soundFmt; private inBossKey; private resourceId; private uploadId; private uploadUrls; private perSize; private clips; private etags; private downloadUrl; taskId: string; constructor(file?: string); /** * 从文件设置数据 */ setDataFromFile(file: string): void; /** * 设置原始数据 */ setData(data: Buffer, format: SupportSoundFormat, name?: string): void; /** * 检查格式是否支持 */ private isSupportFormat; /** * 申请上传并执行上传流程 */ upload(): Promise; /** * 上传音频数据分片 */ private uploadParts; /** * 提交上传数据 */ private commitUpload; /** * 创建转换任务 */ createTask(): Promise; /** * 查询转换结果 */ result(taskId?: string): Promise; /** * 解析结果数据 */ parseResult(resultRsp: ResultRsp): ASRData; /** * 完整的识别流程 * @param pollingInterval 轮询间隔(毫秒),默认 30000ms (30秒) * @returns ASRData 识别结果 */ recognize(pollingInterval?: number): Promise; }