@aituber-onair/voice
Version:
Voice synthesis library for AITuber OnAir
65 lines (64 loc) • 2.31 kB
TypeScript
import { Talk } from '../types/voice';
import { VoiceEngine } from './VoiceEngine';
/**
* AivisSpeech audio query parameter overrides
* Reference:
* https://github.com/Aivis-Project/AivisSpeech-Engine?tab=readme-ov-file#voicevox-api-%E3%81%A8%E3%81%AE%E4%BA%92%E6%8F%9B%E6%80%A7%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6
*/
export interface AivisSpeechQueryParameterOverrides {
speedScale?: number;
pitchScale?: number;
intonationScale?: number;
tempoDynamicsScale?: number;
volumeScale?: number;
prePhonemeLength?: number;
postPhonemeLength?: number;
pauseLength?: number | null;
pauseLengthScale?: number;
outputSamplingRate?: number;
outputStereo?: boolean;
}
/**
* AivisSpeech voice synthesis engine
*/
export declare class AivisSpeechEngine implements VoiceEngine {
private apiEndpoint;
private queryOverrides;
fetchAudio(input: Talk, speaker: string): Promise<ArrayBuffer>;
private adjustEmotionParameters;
/**
* Apply user-provided overrides to audio query payload
*/
private applyQueryOverrides;
/**
* Update override map while allowing undefined to reset values
*/
private updateQueryOverrides;
private hasOverride;
getTestMessage(textVoiceText?: string): string;
/**
* Set custom API endpoint URL
* @param apiUrl custom API endpoint URL
*/
setApiEndpoint(apiUrl: string): void;
/**
* Set query parameter overrides in batch
* @param overrides Audio query parameter overrides
*/
setQueryParameters(overrides: AivisSpeechQueryParameterOverrides): void;
setSpeedScale(speedScale?: number): void;
setPitchScale(pitchScale?: number): void;
setIntonationScale(intonationScale?: number): void;
setTempoDynamicsScale(tempoDynamicsScale?: number): void;
setVolumeScale(volumeScale?: number): void;
setPrePhonemeLength(prePhonemeLength?: number): void;
setPostPhonemeLength(postPhonemeLength?: number): void;
setPauseLength(pauseLength?: number | null): void;
setPauseLengthScale(pauseLengthScale?: number): void;
setOutputSamplingRate(outputSamplingRate?: number): void;
setOutputStereo(outputStereo?: boolean): void;
/**
* Build endpoint URL with optional query parameters
*/
private buildUrl;
}