import Parse from "parse"; import { NovaUploadService } from "../../../storage/service-upload/nova-upload.service"; import { AudioPlayer } from "../audio.player"; import { FmPushAudioOutputStreamCallback } from "../stream.player"; interface FmodeTTSEvent { onSpeakBefore?(): void; onStreamStarted?(): void; onAudioCompleted?(): void; } /** * FmodeTTS * 每个类,表示一次独立的语音合成服务 */ export declare class FmodeTTS { private speechConfig; private audioConfig; private synthesizer; private subscriptionKey; private authorizationToken; private region; eventMap: FmodeTTSEvent; uploadServ?: NovaUploadService; isPlaying?: boolean; audioPlayer: AudioPlayer; audioStream: FmPushAudioOutputStreamCallback; stop(): void; constructor(config: { region: string; subscriptionKey: string; token: string; }, uploadServ?: NovaUploadService); extractTextFromXML(inputString: any): string; extractSSMLContent(inputString: any): any; /** * 合成语言并播放 * @param textOrSSML * @desc * 普通文本 * SSML https://learn.microsoft.com/zh-cn/azure/ai-services/speech-service/how-to-speech-synthesis?tabs=browserjs%2Cterminal&pivots=programming-language-javascript#use-ssml-to-customize-speech-characteristics * @returns */ speakAsync(textOrSSML: string, chatVoice?: Parse.Object, eventMap?: any): Promise; onBreak(options: { playedTime: string; playedText: string; leftText: string; }): void; fixMarkdownChar(md: any): any; playAudioData(audioData: string, chatVoice: Parse.Object, eventMap: any): Promise; uploadAndSaveVoice(blob: any, chatVoice: any): Promise; } export {};