xfyun-sdk
Version:
科大讯飞语音识别 SDK,支持浏览器中实时语音听写功能
134 lines (133 loc) • 3.42 kB
TypeScript
/**
* 科大讯飞语音识别模块
* @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';