UNPKG

xfyun-sdk

Version:

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

109 lines (108 loc) 3.18 kB
/** * 科大讯飞翻译模块 * @description 支持语音翻译(边说边译)和文本翻译 */ import { BaseWebSocketClient } from './base-websocket-client'; import type { TranslatorType, SourceLanguage, TargetLanguage, TranslatorState, TranslatorError, TranslationResult, TranslatorEventHandlers, XfyunTranslatorOptions } from './types'; export type { TranslatorType, SourceLanguage, TargetLanguage, TranslatorState, TranslatorError, TranslationResult, TranslatorEventHandlers, XfyunTranslatorOptions, }; /** * 科大讯飞翻译类 * * 继承 BaseWebSocketClient,复用 WebSocket 连接管理、状态管理、错误处理等通用逻辑。 * 专注于语音/文本翻译特有的功能:多语言支持、实时翻译结果、翻译模式切换等。 * * @example * ```typescript * const translator = new XfyunTranslator({ * appId: 'your-app-id', * apiKey: 'your-api-key', * apiSecret: 'your-api-secret', * type: 'asr', * from: 'cn', * to: 'en' * }, { * onResult: (result) => console.log('翻译结果:', result), * onError: (err) => console.error('错误:', err) * }); * * await translator.start(); * translator.record(); * await translator.stop(); * ``` */ export declare class XfyunTranslator extends BaseWebSocketClient<TranslatorState, XfyunTranslatorOptions, TranslatorEventHandlers> { static translateText: (text: string, options: XfyunTranslatorOptions) => Promise<TranslationResult>; private microphoneStream; private audioContext; private recorder; private audioDataQueue; protected readonly STATE_TRANSITIONS: Record<TranslatorState, TranslatorState[]>; /** * 创建翻译器实例 * @param options 配置选项 * @param handlers 事件处理程序 */ constructor(options: XfyunTranslatorOptions, handlers?: TranslatorEventHandlers); protected getModulePrefix(): string; protected getErrorCodePrefix(): number; protected generateAuthUrl(): string; protected onConnected(): void; protected parseMessage(data: string | ArrayBuffer): void; /** * 设置事件处理程序 */ setHandlers(handlers: TranslatorEventHandlers): void; /** * 开始翻译 * @param text 文本翻译的文本(语音翻译模式可省略) */ start(text?: string): Promise<void>; /** * 停止翻译 */ stop(): void; /** * 销毁实例 */ destroy(): void; /** * 清理所有录音相关资源 */ private cleanupRecordingResources; /** * 文本翻译 */ private startTextTranslation; /** * 语音翻译 */ private startSpeechTranslation; /** * 初始化录音器 */ private initRecorder; /** * 停止录音 */ private stopRecorder; /** * 释放麦克风 */ private releaseMicrophone; /** * 发送文本翻译帧 */ private sendTextFrame; /** * 发送语音翻译开始帧 */ private sendStartFrame; /** * 发送音频数据 */ private sendAudioData; /** * 发送翻译结束帧 */ private sendTranslationEndFrame; }