UNPKG

xfyun-sdk

Version:

科大讯飞语音识别 SDK,支持浏览器中实时语音听写功能

134 lines (133 loc) 3.42 kB
/** * 科大讯飞语音识别模块 * @description 基于 WebSocket 的实时语音识别,支持麦克风录音、文件识别、重连机制 */ import { XfyunASROptions, ASREventHandlers, RecognizerState } from './types'; import { BaseWebSocketClient } from './base-websocket-client'; /** * 科大讯飞语音识别类 * * 继承 BaseWebSocketClient,复用 WebSocket 连接管理、状态管理、错误处理等通用逻辑。 * 专注于语音识别特有的功能:麦克风管理、音频录制、重连机制等。 * * @example * ```typescript * const recognizer = new XfyunASR({ * appId: 'your-app-id', * apiKey: 'your-api-key', * apiSecret: 'your-api-secret' * }, { * onResult: (text) => console.log('识别结果:', text), * onError: (err) => console.error('错误:', err) * }); * * await recognizer.start(); * recognizer.record(); * await recognizer.stop(); * ``` */ export declare class XfyunASR extends BaseWebSocketClient<RecognizerState, XfyunASROptions, ASREventHandlers> { private recorder; private audioContext; private audioSource; private analyser; private audioDataQueue; private totalAudioBytes; private recognitionResult; private volumeTimer; private microphoneStream; private cachedBusinessParams; private reconnectCount; private reconnectTimer; private isReconnecting; protected readonly STATE_TRANSITIONS: Record<RecognizerState, RecognizerState[]>; /** * 创建语音识别实例 * @param options 配置选项 * @param handlers 事件处理程序 */ constructor(options: XfyunASROptions, handlers?: ASREventHandlers); protected getModulePrefix(): string; protected getErrorCodePrefix(): number; protected generateAuthUrl(): string; protected onConnected(): void; protected onWebSocketClosed(_event: CloseEvent): void; protected parseMessage(data: string | ArrayBuffer): void; /** * 设置事件处理程序 */ setHandlers(handlers: ASREventHandlers): void; /** * 开始语音识别 */ start(): Promise<void>; /** * 停止语音识别 */ stop(): void; /** * 销毁实例,释放所有资源 */ destroy(): void; /** * 获取当前识别结果 */ getResult(): string; /** * 清除识别结果 */ clearResult(): void; /** * 是否正在录音中 */ isRecording(): boolean; /** * 初始化麦克风 */ private initMicrophone; /** * 开始录音 */ private startRecording; /** * 释放麦克风资源 */ private releaseMicrophone; /** * 停止音量检测 */ private stopVolumeDetection; /** * 构建公共业务参数(缓存避免重复创建) */ private buildBusinessParams; /** * 处理识别结果数据 */ private processRecognitionResult; /** * 发送开始帧 */ private sendStartFrame; /** * 发送音频数据 */ private sendAudioData; /** * 发送结束帧 */ private sendEndFrame; /** * 开始音量检测 */ private startVolumeDetection; /** * 清除重连定时器 */ private clearReconnectTimer; /** * 处理重连逻辑 */ private handleReconnect; } export { LogLevel, Logger } from './logger';