UNPKG

@kajidog/mcp-tts-voicevox

Version:

VOICEVOX integration for MCP - Text-to-Speech server using VOICEVOX engine

111 lines 3.61 kB
import { VoicevoxApi } from "../api"; import { AudioQuery } from "../types"; import { QueueItem, QueueItemStatus, QueueEventType, QueueEventListener, QueueManager } from "./types"; import { AudioFileManager } from "./file-manager"; import { AudioGenerator } from "./audio-generator"; /** * VOICEVOXキュー管理クラス * 音声合成タスクのキュー管理と実行を担当 */ export declare class VoicevoxQueueManager implements QueueManager { private queue; private isPlaying; private isPaused; private prefetchSize; private currentPlayingItem; private api; private fileManager; private eventManager; private audioGenerator; private audioPlayer; /** * コンストラクタ * @param apiInstance VOICEVOX APIクライアントのインスタンス * @param prefetchSize 事前生成するアイテム数 */ constructor(apiInstance: VoicevoxApi, prefetchSize?: number); /** * キューに新しいテキストを追加 */ enqueueText(text: string, speaker: number): Promise<QueueItem>; /** * キューに音声合成用クエリを追加 * @param query 音声合成用クエリ * @param speaker 話者ID * @returns 作成されたキューアイテム */ enqueueQuery(query: AudioQuery, speaker: number): Promise<QueueItem>; /** * キューからアイテムを削除 * @param itemId 削除するアイテムのID * @returns 削除に成功したかどうか */ removeItem(itemId: string): Promise<boolean>; /** * キューをクリア */ clearQueue(): Promise<void>; startPlayback(): Promise<void>; pausePlayback(): Promise<void>; resumePlayback(): Promise<void>; /** * 次のアイテムを再生する * 最初のREADY状態のアイテムを再生します */ playNext(): Promise<void>; /** * イベントリスナーを追加 */ addEventListener(event: QueueEventType, listener: QueueEventListener): void; /** * イベントリスナーを削除 */ removeEventListener(event: QueueEventType, listener: QueueEventListener): void; /** * 現在のキュー内のアイテムを取得 */ getQueue(): QueueItem[]; /** * 特定のアイテムの状態を取得 */ getItemStatus(itemId: string): QueueItemStatus | null; /** * キュー処理実行 * キューにある音声の生成と再生を処理 */ private processQueue; /** * 次のアイテムの音声を事前に生成 (プリフェッチ) * @private */ private prefetchAudio; /** * アイテムの状態を更新し、イベントを発火 * @param item 状態を更新するアイテム * @param status 新しい状態 * @private */ private updateItemStatus; /** * バイナリーデータを一時ファイルに保存 * @param audioData 音声バイナリーデータ * @returns 保存した一時ファイルのパス */ saveTempAudioFile(audioData: ArrayBuffer): Promise<string>; /** * AudioGeneratorインスタンスを取得 * @returns AudioGeneratorインスタンス */ getAudioGenerator(): AudioGenerator; /** * FileManagerインスタンスを取得 * @returns AudioFileManagerインスタンス */ getFileManager(): AudioFileManager; /** * API インスタンスを取得 * @returns VoicevoxApi インスタンス */ getApi(): VoicevoxApi; } //# sourceMappingURL=manager.d.ts.map