UNPKG

xfyun-sdk

Version:

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

80 lines (79 loc) 2.52 kB
/** * 科大讯飞 TTS 语音合成模块 * @description 基于 WebSocket 的流式语音合成,支持多种音色、语速调节、多种音频格式 */ import { BaseWebSocketClient } from './base-websocket-client'; import type { TTSAudioFormat, TTSVoiceName, SynthesizerState, TTSError, TTSEventHandlers, XfyunTTSOptions } from './types'; export type { TTSAudioFormat, TTSVoiceName, SynthesizerState, TTSError, TTSEventHandlers, XfyunTTSOptions, }; /** * 科大讯飞语音合成类 * * 继承 BaseWebSocketClient,复用 WebSocket 连接管理、状态管理、错误处理等通用逻辑。 * 专注于语音合成特有的功能:文本转语音、音频流处理、缓存管理等。 * * @example * ```typescript * const synthesizer = new XfyunTTS({ * appId: 'your-app-id', * apiKey: 'your-api-key', * apiSecret: 'your-api-secret' * }, { * onAudioData: (buffer) => console.log('音频数据:', buffer), * onEnd: () => console.log('合成完成') * }); * * await synthesizer.speak('你好,这是语音合成测试'); * await synthesizer.stop(); * ``` */ export declare class XfyunTTS extends BaseWebSocketClient<SynthesizerState, XfyunTTSOptions, TTSEventHandlers> { private audioChunks; private currentText; private textIndex; protected readonly STATE_TRANSITIONS: Record<SynthesizerState, SynthesizerState[]>; /** * 创建 TTS 合成器实例 * @param options 配置选项 * @param handlers 事件处理程序 */ constructor(options: XfyunTTSOptions, handlers?: TTSEventHandlers); protected getModulePrefix(): string; protected getErrorCodePrefix(): number; protected generateAuthUrl(): string; protected parseMessage(data: string | ArrayBuffer): void; /** * 开始语音合成 * @param text 要合成的文本 */ start(text: string): void; /** * 停止合成 */ stop(): void; /** * 获取累积的音频数据 */ getAudioData(): ArrayBuffer | null; /** * Export audio blob * @returns Audio Blob object, or null if no audio data */ exportAudio(): Blob | null; /** * Download audio file * @param filename - Name of the file to download */ downloadAudio(filename?: string): void; /** * Get file extension based on audio format */ private getFileExtension; /** * 获取 MIME 类型 */ getMimeType(): string; /** * 发送开始帧 */ private sendStartFrame; }