import { Talk } from '../types/voice'; import { VoiceEngine } from './VoiceEngine'; /** * Aivis Cloud API voice synthesis engine */ export declare class AivisCloudEngine implements VoiceEngine { private modelUuid?; private speakerUuid?; private styleId?; private styleName?; private userDictionaryUuid?; private language; private useSSML; private speakingRate; private emotionalIntensity; private tempoDynamics; private pitch; private volume; private leadingSilence; private trailingSilence; private lineBreakSilence; private outputFormat; private outputBitrate?; private outputSamplingRate; private outputChannels; private enableBillingLogs; /** * Set model UUID * @param modelUuid Aivis Cloud model UUID */ setModelUuid(modelUuid: string): void; /** * Set speaker UUID * @param speakerUuid Aivis Cloud speaker UUID */ setSpeakerUuid(speakerUuid: string): void; /** * Set style ID * @param styleId Style ID (0-31) */ setStyleId(styleId: number): void; /** * Set style name * @param styleName Style name */ setStyleName(styleName: string): void; /** * Set user dictionary UUID * @param userDictionaryUuid User dictionary UUID */ setUserDictionaryUuid(userDictionaryUuid?: string): void; /** * Set synthesis language (BCP 47) * @param language Language tag (currently only 'ja' supported) */ setLanguage(language?: string): void; /** * Set SSML usage * @param useSSML Enable SSML interpretation */ setUseSSML(useSSML: boolean): void; /** * Set speaking rate * @param rate Speaking rate (0.5-2.0) */ setSpeakingRate(rate: number): void; /** * Set emotional intensity * @param intensity Emotional intensity (0.0-2.0) */ setEmotionalIntensity(intensity: number): void; /** * Set tempo dynamics * @param dynamics Tempo dynamics (0.0-2.0) */ setTempoDynamics(dynamics: number): void; /** * Set pitch * @param pitch Pitch (-1.0-1.0) */ setPitch(pitch: number): void; /** * Set volume * @param volume Volume (0.0-2.0) */ setVolume(volume: number): void; /** * Set silence durations * @param leading Leading silence in seconds * @param trailing Trailing silence in seconds * @param lineBreak Line break silence in seconds */ setSilenceDurations(leading: number, trailing: number, lineBreak: number): void; /** * Set output format * @param format Output format */ setOutputFormat(format: 'wav' | 'flac' | 'mp3' | 'aac' | 'opus'): void; /** * Set output bitrate * @param bitrate Output bitrate in kbps (8-320) */ setOutputBitrate(bitrate: number): void; /** * Set output sampling rate * @param rate Output sampling rate in Hz */ setOutputSamplingRate(rate: 8000 | 11025 | 12000 | 16000 | 22050 | 24000 | 44100 | 48000): void; /** * Set output channels * @param channels Output channels (mono or stereo) */ setOutputChannels(channels: 'mono' | 'stereo'): void; /** * Enable or disable billing/usage information logs * @param enable Whether to enable billing logs (default: false) */ setEnableBillingLogs(enable: boolean): void; fetchAudio(input: Talk, speaker: string, apiKey?: string): Promise; /** * Get emotion settings based on emotion type * @param emotion Emotion type * @returns Emotion settings with adjusted emotional intensity */ private getEmotionSettings; getTestMessage(textVoiceText?: string): string; }