@kajidog/voicevox-client 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/accent-utils.d.ts +93 -0
  2. package/dist/accent-utils.d.ts.map +1 -0
  3. package/dist/accent-utils.js +211 -0
  4. package/dist/accent-utils.js.map +1 -0
  5. package/dist/api.d.ts +4 -0
  6. package/dist/api.d.ts.map +1 -1
  7. package/dist/api.js +14 -0
  8. package/dist/api.js.map +1 -1
  9. package/dist/cache-policy.d.ts +21 -0
  10. package/dist/cache-policy.d.ts.map +1 -0
  11. package/dist/cache-policy.js +31 -0
  12. package/dist/cache-policy.js.map +1 -0
  13. package/dist/client.d.ts +27 -118
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/client.js +42 -417
  16. package/dist/client.js.map +1 -1
  17. package/dist/index.d.ts +3 -1
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +3 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/playback/node-playback-strategy.d.ts.map +1 -1
  22. package/dist/playback/node-playback-strategy.js +2 -6
  23. package/dist/playback/node-playback-strategy.js.map +1 -1
  24. package/dist/queue/file-manager.js.map +1 -1
  25. package/dist/queue/queue-service.d.ts.map +1 -1
  26. package/dist/queue/queue-service.js +4 -2
  27. package/dist/queue/queue-service.js.map +1 -1
  28. package/dist/queue/types.d.ts +3 -1
  29. package/dist/queue/types.d.ts.map +1 -1
  30. package/dist/queue/types.js.map +1 -1
  31. package/dist/services/dictionary-service.d.ts +35 -0
  32. package/dist/services/dictionary-service.d.ts.map +1 -0
  33. package/dist/services/dictionary-service.js +188 -0
  34. package/dist/services/dictionary-service.js.map +1 -0
  35. package/dist/services/speech-service.d.ts +43 -0
  36. package/dist/services/speech-service.d.ts.map +1 -0
  37. package/dist/services/speech-service.js +236 -0
  38. package/dist/services/speech-service.js.map +1 -0
  39. package/dist/state/queue-state-machine.d.ts.map +1 -1
  40. package/dist/state/queue-state-machine.js +13 -0
  41. package/dist/state/queue-state-machine.js.map +1 -1
  42. package/dist/state/types.d.ts +2 -0
  43. package/dist/state/types.d.ts.map +1 -1
  44. package/dist/utils.d.ts +16 -0
  45. package/dist/utils.d.ts.map +1 -1
  46. package/dist/utils.js +36 -0
  47. package/dist/utils.js.map +1 -1
  48. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -2,12 +2,12 @@ import { VoicevoxApi } from './api.js';
2
2
  import { handleError } from './error.js';
3
3
  import { QueueService } from './queue/queue-service.js';
4
4
  import { QueueEventType, QueueItemStatus } from './queue/types.js';
5
- import { downloadBlob, isBrowser, splitText } from './utils.js';
5
+ import { DictionaryService } from './services/dictionary-service.js';
6
+ import { SpeechService } from './services/speech-service.js';
6
7
  /**
7
8
  * 環境変数から再生オプションを読み取る関数
8
9
  */
9
10
  function getPlaybackOptionsFromEnv() {
10
- // ブラウザ環境ではprocess.envが存在しないので空のオブジェクトを返す
11
11
  if (typeof process === 'undefined' || !process.env) {
12
12
  return {};
13
13
  }
@@ -25,34 +25,22 @@ function getPlaybackOptionsFromEnv() {
25
25
  export class VoicevoxClient {
26
26
  queueService;
27
27
  api;
28
- defaultSpeaker;
29
- defaultSpeedScale;
30
- defaultVolumeScale;
31
- defaultPitchScale;
32
- defaultPrePhonemeLength;
33
- defaultPostPhonemeLength;
34
28
  defaultPlaybackOptions;
35
- maxSegmentLength;
29
+ dictionaryService;
30
+ speechService;
36
31
  constructor(config) {
37
32
  this.validateConfig(config);
38
- this.defaultSpeaker = config.defaultSpeaker ?? 1;
39
- this.defaultSpeedScale = config.defaultSpeedScale ?? 1.0;
40
- this.defaultVolumeScale = config.defaultVolumeScale;
41
- this.defaultPitchScale = config.defaultPitchScale;
42
- this.defaultPrePhonemeLength = config.defaultPrePhonemeLength;
43
- this.defaultPostPhonemeLength = config.defaultPostPhonemeLength;
44
- // 設定から再生オプションを取得し、環境変数でオーバーライド
33
+ const defaultSpeaker = config.defaultSpeaker ?? 1;
34
+ const defaultSpeedScale = config.defaultSpeedScale ?? 1.0;
45
35
  const envOptions = getPlaybackOptionsFromEnv();
46
36
  this.defaultPlaybackOptions = {
47
37
  immediate: true,
48
38
  waitForStart: false,
49
39
  waitForEnd: false,
50
40
  };
51
- // 設定オブジェクトの値で上書き
52
41
  if (config.defaultPlaybackOptions) {
53
42
  Object.assign(this.defaultPlaybackOptions, config.defaultPlaybackOptions);
54
43
  }
55
- // 環境変数の値でオーバーライド
56
44
  if (envOptions.immediate !== undefined) {
57
45
  this.defaultPlaybackOptions.immediate = envOptions.immediate;
58
46
  }
@@ -62,386 +50,40 @@ export class VoicevoxClient {
62
50
  if (envOptions.waitForEnd !== undefined) {
63
51
  this.defaultPlaybackOptions.waitForEnd = envOptions.waitForEnd;
64
52
  }
65
- this.maxSegmentLength = config.maxSegmentLength ?? 150;
66
53
  this.api = new VoicevoxApi(config.url);
67
54
  this.queueService = new QueueService(this.api, {
68
55
  useStreaming: config.useStreaming,
69
56
  prefetchSize: config.prefetchSize,
70
57
  });
71
- // デフォルトで再生を開始
58
+ this.dictionaryService = new DictionaryService(this.api, defaultSpeaker);
59
+ this.speechService = new SpeechService(this.api, this.queueService, {
60
+ defaultSpeaker,
61
+ defaultSpeedScale,
62
+ defaultVolumeScale: config.defaultVolumeScale,
63
+ defaultPitchScale: config.defaultPitchScale,
64
+ defaultPrePhonemeLength: config.defaultPrePhonemeLength,
65
+ defaultPostPhonemeLength: config.defaultPostPhonemeLength,
66
+ defaultPlaybackOptions: this.defaultPlaybackOptions,
67
+ maxSegmentLength: config.maxSegmentLength ?? 150,
68
+ });
72
69
  this.queueService.startPlayback();
73
- // エラーイベントのログ記録
74
70
  this.queueService.addEventListener(QueueEventType.ERROR, (_, item) => {
75
71
  if (item) {
76
72
  console.error(`音声合成エラー: ${item.text} (${item.error?.message || '不明なエラー'})`);
77
73
  }
78
74
  });
79
75
  }
80
- /**
81
- * テキストを音声に変換して再生します(統一API)
82
- * @param input テキスト、テキスト配列、またはセグメント配列
83
- * @param options 再生オプション(speaker, speedScale, immediate, waitForStart, waitForEnd)
84
- * @returns 処理結果
85
- */
86
76
  async speak(input, options = {}) {
87
- try {
88
- const speaker = options.speaker ?? this.defaultSpeaker;
89
- const speed = options.speedScale ?? this.defaultSpeedScale;
90
- // 入力を統一フォーマットに変換
91
- const segments = this.normalizeInput(input, speaker);
92
- if (segments.length === 0) {
93
- return this.createSpeakResult('error', segments, 'Text is empty');
94
- }
95
- // 再生オプションをマージ(undefined の場合はデフォルト値を使用)
96
- const playbackOptions = {
97
- immediate: options.immediate ?? this.defaultPlaybackOptions.immediate,
98
- waitForStart: options.waitForStart ?? this.defaultPlaybackOptions.waitForStart,
99
- waitForEnd: options.waitForEnd ?? this.defaultPlaybackOptions.waitForEnd,
100
- };
101
- // immediate: true の場合、既存のキューをクリア
102
- if (playbackOptions.immediate === true) {
103
- await this.queueService.clearQueue();
104
- }
105
- // 待機用のPromise
106
- let firstStartPromise;
107
- let lastEndPromise;
108
- // 最初のセグメントを優先的に処理して再生を早く開始
109
- if (segments.length > 0) {
110
- const firstSegment = segments[0];
111
- const speakerId = this.getSpeakerId(firstSegment.speaker);
112
- const firstQuery = await this.generateQuery(firstSegment.text, speakerId);
113
- this.applyAudioOptions(firstQuery, options, speed);
114
- const { promises: firstPromises } = await this.queueService.enqueueQuery(firstQuery, speakerId, {
115
- ...playbackOptions,
116
- immediate: false, // キューは既にクリア済みなので、通常のキュー処理を行う
117
- waitForStart: playbackOptions.waitForStart,
118
- waitForEnd: playbackOptions.waitForEnd,
119
- }, firstSegment.text // テキストを渡す
120
- );
121
- // waitForStart: 最初のセグメントの開始を待つ
122
- if (firstPromises.start) {
123
- firstStartPromise = firstPromises.start;
124
- }
125
- // セグメントが1つだけの場合は最後のendもこれ
126
- if (firstPromises.end) {
127
- lastEndPromise = firstPromises.end;
128
- }
129
- }
130
- // 残りのセグメントを順番に処理
131
- for (let i = 1; i < segments.length; i++) {
132
- const segment = segments[i];
133
- const speakerId = this.getSpeakerId(segment.speaker);
134
- const query = await this.generateQuery(segment.text, speakerId);
135
- this.applyAudioOptions(query, options, speed);
136
- const isLastSegment = i === segments.length - 1;
137
- const { promises: segmentPromises } = await this.queueService.enqueueQuery(query, speakerId, {
138
- ...playbackOptions,
139
- immediate: false,
140
- waitForStart: false, // 残りのセグメントの開始は待たない
141
- waitForEnd: isLastSegment ? playbackOptions.waitForEnd : false, // 最後のセグメントのみ終了を待つ
142
- }, segment.text // テキストを渡す
143
- );
144
- // waitForEnd: 最後のセグメントの終了を待つ
145
- if (isLastSegment && segmentPromises.end) {
146
- lastEndPromise = segmentPromises.end;
147
- }
148
- }
149
- // 待機オプションに応じて処理
150
- const waitPromises = [];
151
- // waitForStart: 最初のセグメントの再生開始を待つ
152
- if (playbackOptions.waitForStart && firstStartPromise) {
153
- waitPromises.push(firstStartPromise);
154
- }
155
- // waitForEnd: 最後のセグメントの再生終了を待つ
156
- if (playbackOptions.waitForEnd && lastEndPromise) {
157
- waitPromises.push(lastEndPromise);
158
- }
159
- if (waitPromises.length > 0) {
160
- await Promise.all(waitPromises);
161
- }
162
- const status = playbackOptions.waitForEnd ? 'played' : 'queued';
163
- return this.createSpeakResult(status, segments);
164
- }
165
- catch (error) {
166
- return this.createSpeakResult('error', [], error instanceof Error ? error.message : String(error));
167
- }
77
+ return this.speechService.speak(input, options);
168
78
  }
169
- /**
170
- * 入力を統一フォーマット(SpeechSegment[])に変換
171
- * @private
172
- */
173
- normalizeInput(input, defaultSpeaker) {
174
- if (typeof input === 'string') {
175
- // 文字列の場合は分割してセグメント化
176
- const segments = splitText(input, this.maxSegmentLength);
177
- return segments.map((text) => ({
178
- text,
179
- speaker: defaultSpeaker,
180
- }));
181
- }
182
- if (Array.isArray(input)) {
183
- // 配列の場合
184
- if (input.length === 0)
185
- return [];
186
- // SpeechSegment配列かどうかチェック
187
- if (typeof input[0] === 'object' && 'text' in input[0]) {
188
- // SpeechSegment配列の場合
189
- return input.map((segment) => ({
190
- text: segment.text,
191
- speaker: segment.speaker || defaultSpeaker,
192
- }));
193
- }
194
- // 文字列配列の場合
195
- return input.map((text) => ({
196
- text,
197
- speaker: defaultSpeaker,
198
- }));
199
- }
200
- return [];
201
- }
202
- /**
203
- * テキストから音声合成用クエリを生成します
204
- * @param text 変換するテキスト
205
- * @param speaker 話者ID(オプション)
206
- * @param speedScale 再生速度(オプション)
207
- * @returns 音声合成用クエリ
208
- */
209
79
  async generateQuery(text, speaker, speedScale) {
210
- try {
211
- const speakerId = this.getSpeakerId(speaker);
212
- // 直接APIを使用してクエリを生成
213
- const query = await this.api.generateQuery(text, speakerId);
214
- query.speedScale = this.getSpeedScale(speedScale);
215
- // デフォルト値を適用
216
- if (this.defaultVolumeScale !== undefined) {
217
- query.volumeScale = this.defaultVolumeScale;
218
- }
219
- if (this.defaultPitchScale !== undefined) {
220
- query.pitchScale = this.defaultPitchScale;
221
- }
222
- if (this.defaultPrePhonemeLength !== undefined) {
223
- query.prePhonemeLength = this.defaultPrePhonemeLength;
224
- }
225
- if (this.defaultPostPhonemeLength !== undefined) {
226
- query.postPhonemeLength = this.defaultPostPhonemeLength;
227
- }
228
- return query;
229
- }
230
- catch (error) {
231
- throw handleError('クエリ生成中にエラーが発生しました', error);
232
- }
80
+ return this.speechService.generateQuery(text, speaker, speedScale);
233
81
  }
234
- /**
235
- * テキストから直接音声ファイルを生成します
236
- * @param textOrQuery テキストまたは音声合成用クエリ
237
- * @param outputPath 出力ファイルパス(オプション、省略時は一時ファイル)
238
- * @param speaker 話者ID(オプション)
239
- * @param speedScale 再生速度(オプション)
240
- * @returns 生成した音声ファイルのパス
241
- */
242
82
  async generateAudioFile(textOrQuery, outputPath, speaker, speedScale) {
243
- try {
244
- const speakerId = this.getSpeakerId(speaker);
245
- const speed = this.getSpeedScale(speedScale);
246
- const fileManager = this.queueService.getFileManager();
247
- // ブラウザ環境の場合
248
- if (isBrowser()) {
249
- const filename = outputPath ||
250
- (typeof textOrQuery === 'string'
251
- ? `voice-${textOrQuery.substring(0, 10).replace(/[^a-zA-Z0-9]/g, '_')}-${Date.now()}.wav`
252
- : `voice-${Date.now()}.wav`);
253
- const query = typeof textOrQuery === 'string' ? await this.generateQuery(textOrQuery, speakerId) : { ...textOrQuery };
254
- query.speedScale = speed;
255
- const audioData = await this.api.synthesize(query, speakerId);
256
- return await downloadBlob(audioData, filename);
257
- }
258
- // Node.js環境の場合
259
- if (typeof textOrQuery === 'string') {
260
- const query = await this.generateQuery(textOrQuery, speakerId);
261
- query.speedScale = speed;
262
- const audioData = await this.api.synthesize(query, speakerId);
263
- if (!outputPath) {
264
- return await fileManager.saveTempAudioFile(audioData);
265
- }
266
- return await fileManager.saveAudioFile(audioData, outputPath);
267
- }
268
- // クエリを使って音声合成
269
- const query = { ...textOrQuery, speedScale: speed };
270
- const audioData = await this.api.synthesize(query, speakerId);
271
- if (!outputPath) {
272
- return await fileManager.saveTempAudioFile(audioData);
273
- }
274
- return await fileManager.saveAudioFile(audioData, outputPath);
275
- }
276
- catch (error) {
277
- throw handleError('音声ファイル生成中にエラーが発生しました', error);
278
- }
83
+ return this.speechService.generateAudioFile(textOrQuery, outputPath, speaker, speedScale);
279
84
  }
280
- /**
281
- * テキストを音声ファイル生成キューに追加します(統一API)
282
- * @param input テキスト、テキスト配列、セグメント配列、またはAudioQuery
283
- * @param options 再生オプション
284
- * @returns 処理結果
285
- */
286
85
  async enqueueAudioGeneration(input, options = {}) {
287
- try {
288
- const speed = options.speedScale ?? this.defaultSpeedScale;
289
- // 再生オプションをマージ(undefined の場合はデフォルト値を使用)
290
- const playbackOptions = {
291
- immediate: options.immediate ?? this.defaultPlaybackOptions.immediate,
292
- waitForStart: options.waitForStart ?? this.defaultPlaybackOptions.waitForStart,
293
- waitForEnd: options.waitForEnd ?? this.defaultPlaybackOptions.waitForEnd,
294
- };
295
- // immediate: true の場合、既存のキューをクリア
296
- if (playbackOptions.immediate === true) {
297
- await this.queueService.clearQueue();
298
- }
299
- // AudioQueryの場合(単一アイテム)
300
- if (typeof input === 'object' && !Array.isArray(input) && 'accent_phrases' in input) {
301
- const speakerId = this.getSpeakerId(options.speaker);
302
- const query = { ...input };
303
- this.applyAudioOptions(query, options, speed);
304
- const { promises } = await this.queueService.enqueueQuery(query, speakerId, {
305
- ...playbackOptions,
306
- immediate: false, // キューは既にクリア済み
307
- }, '(クエリ再生)' // クエリの場合はテキストがないのでプレースホルダー
308
- );
309
- const waitPromises = [];
310
- if (playbackOptions.waitForStart && promises.start)
311
- waitPromises.push(promises.start);
312
- if (playbackOptions.waitForEnd && promises.end)
313
- waitPromises.push(promises.end);
314
- if (waitPromises.length > 0) {
315
- await Promise.all(waitPromises);
316
- }
317
- const status = playbackOptions.waitForEnd ? 'played' : 'queued';
318
- return this.createSpeakResult(status, [{ text: '(from query)', speaker: speakerId }]);
319
- }
320
- // テキスト系の場合
321
- const segments = this.normalizeInput(input, options.speaker);
322
- if (segments.length === 0) {
323
- return this.createSpeakResult('error', segments, 'Text is empty');
324
- }
325
- // 待機用のPromise
326
- let firstStartPromise;
327
- let lastEndPromise;
328
- // 最初のセグメントを優先処理
329
- if (segments.length > 0) {
330
- const firstSegment = segments[0];
331
- const speakerId = this.getSpeakerId(firstSegment.speaker);
332
- const firstQuery = await this.generateQuery(firstSegment.text, speakerId);
333
- this.applyAudioOptions(firstQuery, options, speed);
334
- const { promises: firstPromises } = await this.queueService.enqueueQuery(firstQuery, speakerId, {
335
- ...playbackOptions,
336
- immediate: false, // キューは既にクリア済み
337
- waitForStart: playbackOptions.waitForStart,
338
- waitForEnd: playbackOptions.waitForEnd,
339
- }, firstSegment.text // テキストを渡す
340
- );
341
- // waitForStart: 最初のセグメントの開始を待つ
342
- if (firstPromises.start) {
343
- firstStartPromise = firstPromises.start;
344
- }
345
- // セグメントが1つだけの場合は最後のendもこれ
346
- if (firstPromises.end) {
347
- lastEndPromise = firstPromises.end;
348
- }
349
- }
350
- // 残りのセグメントを順番に処理
351
- for (let i = 1; i < segments.length; i++) {
352
- const segment = segments[i];
353
- const speakerId = this.getSpeakerId(segment.speaker);
354
- const query = await this.generateQuery(segment.text, speakerId);
355
- this.applyAudioOptions(query, options, speed);
356
- const isLastSegment = i === segments.length - 1;
357
- const { promises: segmentPromises } = await this.queueService.enqueueQuery(query, speakerId, {
358
- ...playbackOptions,
359
- immediate: false,
360
- waitForStart: false, // 残りのセグメントの開始は待たない
361
- waitForEnd: isLastSegment ? playbackOptions.waitForEnd : false, // 最後のセグメントのみ終了を待つ
362
- }, segment.text // テキストを渡す
363
- );
364
- // waitForEnd: 最後のセグメントの終了を待つ
365
- if (isLastSegment && segmentPromises.end) {
366
- lastEndPromise = segmentPromises.end;
367
- }
368
- }
369
- // 待機オプションに応じて処理
370
- const waitPromises = [];
371
- // waitForStart: 最初のセグメントの再生開始を待つ
372
- if (playbackOptions.waitForStart && firstStartPromise) {
373
- waitPromises.push(firstStartPromise);
374
- }
375
- // waitForEnd: 最後のセグメントの再生終了を待つ
376
- if (playbackOptions.waitForEnd && lastEndPromise) {
377
- waitPromises.push(lastEndPromise);
378
- }
379
- if (waitPromises.length > 0) {
380
- await Promise.all(waitPromises);
381
- }
382
- const status = playbackOptions.waitForEnd ? 'played' : 'queued';
383
- return this.createSpeakResult(status, segments);
384
- }
385
- catch (error) {
386
- return this.createSpeakResult('error', [], error instanceof Error ? error.message : String(error));
387
- }
388
- }
389
- /**
390
- * 話者IDを取得(指定がない場合はデフォルト値を使用)
391
- * @private
392
- */
393
- getSpeakerId(speaker) {
394
- return speaker ?? this.defaultSpeaker;
395
- }
396
- /**
397
- * 再生速度を取得(指定がない場合はデフォルト値を使用)
398
- * @private
399
- */
400
- getSpeedScale(speedScale) {
401
- return speedScale ?? this.defaultSpeedScale;
402
- }
403
- /**
404
- * AudioQueryにSpeakOptionsの音声パラメータを適用
405
- * @private
406
- */
407
- applyAudioOptions(query, options, speed) {
408
- query.speedScale = speed;
409
- if (options.pitchScale !== undefined)
410
- query.pitchScale = options.pitchScale;
411
- if (options.intonationScale !== undefined)
412
- query.intonationScale = options.intonationScale;
413
- if (options.volumeScale !== undefined)
414
- query.volumeScale = options.volumeScale;
415
- if (options.prePhonemeLength !== undefined)
416
- query.prePhonemeLength = options.prePhonemeLength;
417
- if (options.postPhonemeLength !== undefined)
418
- query.postPhonemeLength = options.postPhonemeLength;
419
- }
420
- /**
421
- * SpeakResultを生成
422
- * @private
423
- */
424
- createSpeakResult(status, segments, errorMessage) {
425
- const isStreaming = this.queueService.isStreamingEnabled();
426
- const textPreview = this.createTextPreview(segments, 30);
427
- return {
428
- status,
429
- mode: isStreaming ? 'streaming' : 'file',
430
- textPreview,
431
- segmentCount: segments.length,
432
- errorMessage,
433
- };
434
- }
435
- /**
436
- * テキストプレビューを生成
437
- * @private
438
- */
439
- createTextPreview(segments, maxLength) {
440
- const fullText = segments.map((s) => s.text).join(' ');
441
- if (fullText.length <= maxLength) {
442
- return fullText;
443
- }
444
- return `${fullText.substring(0, maxLength - 3)}...`;
86
+ return this.speechService.enqueueAudioGeneration(input, options);
445
87
  }
446
88
  validateConfig(config) {
447
89
  if (!config.url) {
@@ -459,16 +101,30 @@ export class VoicevoxClient {
459
101
  }
460
102
  }
461
103
  }
462
- /**
463
- * キューをクリア
464
- */
104
+ async getDictionary() {
105
+ return this.dictionaryService.getDictionary();
106
+ }
107
+ async addDictionaryWord(input) {
108
+ return this.dictionaryService.addDictionaryWord(input);
109
+ }
110
+ async addDictionaryWords(inputs) {
111
+ return this.dictionaryService.addDictionaryWords(inputs);
112
+ }
113
+ async updateDictionaryWord(input) {
114
+ return this.dictionaryService.updateDictionaryWord(input);
115
+ }
116
+ async updateDictionaryWords(inputs) {
117
+ return this.dictionaryService.updateDictionaryWords(inputs);
118
+ }
119
+ async deleteDictionaryWord(wordUuid) {
120
+ return this.dictionaryService.deleteDictionaryWord(wordUuid);
121
+ }
122
+ async getAccentNotation(text, speaker) {
123
+ return this.dictionaryService.getAccentNotation(text, speaker);
124
+ }
465
125
  async clearQueue() {
466
126
  return this.queueService.clearQueue();
467
127
  }
468
- /**
469
- * スピーカー一覧を取得します
470
- * @returns スピーカー情報の配列
471
- */
472
128
  async getSpeakers() {
473
129
  try {
474
130
  return await this.api.getSpeakers();
@@ -477,11 +133,6 @@ export class VoicevoxClient {
477
133
  throw handleError('スピーカー一覧取得中にエラーが発生しました', error);
478
134
  }
479
135
  }
480
- /**
481
- * スピーカーの情報を取得
482
- * @param uuid スピーカーUUID
483
- * @returns スピーカー情報
484
- */
485
136
  async getSpeakerInfo(uuid) {
486
137
  try {
487
138
  return await this.api.getSpeakerInfo(uuid);
@@ -490,53 +141,27 @@ export class VoicevoxClient {
490
141
  throw handleError('スピーカー情報取得中にエラーが発生しました', error);
491
142
  }
492
143
  }
493
- /**
494
- * VOICEVOX Engine の接続状態をチェック
495
- * @returns 接続情報(connected, version, url)
496
- */
497
144
  async checkHealth() {
498
145
  return this.api.checkHealth();
499
146
  }
500
- /**
501
- * QueueServiceインスタンスを取得
502
- * 高度な操作のため公開
503
- */
504
147
  getQueueService() {
505
148
  return this.queueService;
506
149
  }
507
- /**
508
- * 再生を開始
509
- */
510
150
  startPlayback() {
511
151
  this.queueService.startPlayback();
512
152
  }
513
- /**
514
- * 再生を一時停止
515
- */
516
153
  pausePlayback() {
517
154
  this.queueService.pausePlayback();
518
155
  }
519
- /**
520
- * 再生を再開
521
- */
522
156
  resumePlayback() {
523
157
  this.queueService.resumePlayback();
524
158
  }
525
- /**
526
- * キュー内のアイテム数を取得
527
- */
528
159
  getQueueLength() {
529
160
  return this.queueService.getQueue().length;
530
161
  }
531
- /**
532
- * キューが空かどうかを確認
533
- */
534
162
  isQueueEmpty() {
535
163
  return this.queueService.getQueue().length === 0;
536
164
  }
537
- /**
538
- * キューが再生中かどうかを確認
539
- */
540
165
  isPlaying() {
541
166
  return this.queueService.getQueue().some((item) => item.status === QueueItemStatus.PLAYING);
542
167
  }
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- export { VoicevoxClient, type SpeakOptions } from './client.js';
1
+ export { VoicevoxClient, type SpeakOptions, type DictionaryWordInput, type DictionaryWordUpdateInput, } from './client.js';
2
2
  export * from './types.js';
3
3
  export * from './api.js';
4
4
  export * from './utils.js';
5
5
  export * from './error.js';
6
+ export * from './accent-utils.js';
7
+ export * from './cache-policy.js';
6
8
  // queueモジュールから再エクスポート(stateと重複するものを除く)
7
9
  export { QueueService, type EnqueueResult, type EnqueueOptions, AudioFileManager, EventManager, AudioGenerator, QueueEventType, type QueueItem, type QueueEventListener, type QueueManager, } from './queue/index.js';
8
10
  // stateモジュールから再エクスポート
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/D,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAE1B,2FAAuC;AACvC,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AAEzB,kDAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,eAAe,EACf,UAAU,EACV,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAA;AAEzB,qDAAyB;AACzB,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAA;AACpB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AAEjC,2FAAuC;AACvC,OAAO,EACL,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,kBAAkB,EACvB,KAAK,YAAY,GAClB,MAAM,kBAAkB,CAAA;AAEzB,kDAAsB;AACtB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,eAAe,EACf,UAAU,EACV,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAA;AAEzB,qDAAyB;AACzB,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAA"}
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
- export { VoicevoxClient } from './client.js';
1
+ export { VoicevoxClient, } from './client.js';
2
2
  export * from './types.js';
3
3
  export * from './api.js';
4
4
  export * from './utils.js';
5
5
  export * from './error.js';
6
+ export * from './accent-utils.js';
7
+ export * from './cache-policy.js';
6
8
  // queueモジュールから再エクスポート(stateと重複するものを除く)
7
9
  export { QueueService, AudioFileManager, EventManager, AudioGenerator, QueueEventType, } from './queue/index.js';
8
10
  // stateモジュールから再エクスポート