@kajidog/mcp-tts-voicevox
Version:
VOICEVOX integration for MCP - Text-to-Speech server using VOICEVOX engine
96 lines • 2.78 kB
TypeScript
import { AudioQuery } from "../types";
/**
* キューアイテムの状態
*/
export declare enum QueueItemStatus {
PENDING = "pending",// 初期状態
GENERATING = "generating",// 音声生成中
READY = "ready",// 再生準備完了
PLAYING = "playing",// 再生中
DONE = "done",// 再生完了
PAUSED = "paused",// 一時停止中
ERROR = "error"
}
/**
* キューアイテムの情報
*/
export interface QueueItem {
id: string;
text: string;
speaker: number;
status: QueueItemStatus;
createdAt: Date;
audioData?: ArrayBuffer;
tempFile?: string;
query?: AudioQuery;
error?: Error;
}
/**
* キュー管理イベントの種類
*/
export declare enum QueueEventType {
ITEM_ADDED = "item_added",// アイテム追加
ITEM_REMOVED = "item_removed",// アイテム削除
ITEM_STATUS_CHANGED = "item_status_changed",// 状態変更
ITEM_COMPLETED = "item_completed",// アイテム再生完了
QUEUE_CLEARED = "queue_cleared",// キュークリア
PLAYBACK_STARTED = "playback_started",// 再生開始
PLAYBACK_PAUSED = "playback_paused",// 再生一時停止
PLAYBACK_RESUMED = "playback_resumed",// 再生再開
PLAYBACK_COMPLETED = "playback_completed",// 再生完了
ERROR = "error"
}
/**
* キューイベントリスナー関数の型
*/
export type QueueEventListener = (event: QueueEventType, item?: QueueItem) => void;
/**
* キュー管理のインターフェース
*/
export interface QueueManager {
/**
* キューに新しいテキストを追加
*/
enqueueText(text: string, speaker: number, isKara?: boolean): Promise<QueueItem>;
/**
* キューに音声合成用クエリを追加
*/
enqueueQuery(query: AudioQuery, speaker: number): Promise<QueueItem>;
/**
* キューからアイテムを削除
*/
removeItem(itemId: string): Promise<boolean>;
/**
* キューをクリア
*/
clearQueue(): Promise<void>;
/**
* 再生を開始
*/
startPlayback(): Promise<void>;
/**
* 再生を一時停止
*/
pausePlayback(): Promise<void>;
/**
* 再生を再開
*/
resumePlayback(): Promise<void>;
/**
* イベントリスナーを追加
*/
addEventListener(event: QueueEventType, listener: QueueEventListener): void;
/**
* イベントリスナーを削除
*/
removeEventListener(event: QueueEventType, listener: QueueEventListener): void;
/**
* 現在のキュー内のアイテムを取得
*/
getQueue(): QueueItem[];
/**
* 特定のアイテムの状態を取得
*/
getItemStatus(itemId: string): QueueItemStatus | null;
}
//# sourceMappingURL=types.d.ts.map