@coeiro-operator/core 1.2.3 → 1.3.1

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 (40) hide show
  1. package/dist/index.d.ts +4 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/operator/{character-defaults.d.ts → character/character-defaults.d.ts} +4 -6
  6. package/dist/operator/character/character-defaults.d.ts.map +1 -0
  7. package/dist/operator/character/character-defaults.js.map +1 -0
  8. package/dist/operator/{character-info-service.d.ts → character/character-info-service.d.ts} +35 -8
  9. package/dist/operator/character/character-info-service.d.ts.map +1 -0
  10. package/dist/operator/{character-info-service.js → character/character-info-service.js} +85 -52
  11. package/dist/operator/character/character-info-service.js.map +1 -0
  12. package/dist/operator/{config-manager.d.ts → config/config-manager.d.ts} +42 -4
  13. package/dist/operator/config/config-manager.d.ts.map +1 -0
  14. package/dist/operator/{config-manager.js → config/config-manager.js} +147 -9
  15. package/dist/operator/config/config-manager.js.map +1 -0
  16. package/dist/operator/file-operation-manager.d.ts.map +1 -1
  17. package/dist/operator/file-operation-manager.js +3 -2
  18. package/dist/operator/file-operation-manager.js.map +1 -1
  19. package/dist/operator/index.d.ts +75 -16
  20. package/dist/operator/index.d.ts.map +1 -1
  21. package/dist/operator/index.js +201 -65
  22. package/dist/operator/index.js.map +1 -1
  23. package/dist/operator/speech-rate-measurer.d.ts +32 -0
  24. package/dist/operator/speech-rate-measurer.d.ts.map +1 -0
  25. package/dist/operator/speech-rate-measurer.js +121 -0
  26. package/dist/operator/speech-rate-measurer.js.map +1 -0
  27. package/dist/setup.d.ts +19 -0
  28. package/dist/setup.d.ts.map +1 -0
  29. package/dist/setup.js +31 -0
  30. package/dist/setup.js.map +1 -0
  31. package/dist/terminal/terminal-background.d.ts +1 -1
  32. package/dist/terminal/terminal-background.d.ts.map +1 -1
  33. package/package.json +1 -1
  34. package/dist/operator/character-defaults.d.ts.map +0 -1
  35. package/dist/operator/character-defaults.js.map +0 -1
  36. package/dist/operator/character-info-service.d.ts.map +0 -1
  37. package/dist/operator/character-info-service.js.map +0 -1
  38. package/dist/operator/config-manager.d.ts.map +0 -1
  39. package/dist/operator/config-manager.js.map +0 -1
  40. /package/dist/operator/{character-defaults.js → character/character-defaults.js} +0 -0
@@ -4,13 +4,11 @@
4
4
  * キャラクター:スタイル単位での管理とMCP情報提供に対応
5
5
  */
6
6
  import { join } from 'path';
7
- import ConfigManager from './config-manager.js';
8
7
  import FileOperationManager from './file-operation-manager.js';
9
8
  import { hostname } from 'os';
10
- import CharacterInfoService from './character-info-service.js';
11
- import { getConfigDir } from '../common/config-paths.js';
12
9
  import { mkdir } from 'fs/promises';
13
10
  import { logger } from '@coeiro-operator/common';
11
+ import { SpeechRateMeasurer, generateCharacterId } from './speech-rate-measurer.js';
14
12
  /**
15
13
  * セッションIDを取得
16
14
  */
@@ -26,51 +24,34 @@ function getSessionId() {
26
24
  }
27
25
  }
28
26
  export class OperatorManager {
27
+ configManager;
28
+ characterInfoService;
29
29
  sessionId;
30
- configDir = null;
31
- coeiroinkConfigFile = null;
32
- configManager = null;
33
30
  dataStore = null;
34
- characterInfoService;
35
- constructor() {
31
+ speechRateMeasurer;
32
+ constructor(configManager, characterInfoService) {
33
+ this.configManager = configManager;
34
+ this.characterInfoService = characterInfoService;
36
35
  this.sessionId = getSessionId();
37
- // 初期化時はnullを設定(initializeで正式に設定)
38
- this.dataStore = null;
39
- this.characterInfoService = new CharacterInfoService();
36
+ this.speechRateMeasurer = new SpeechRateMeasurer(configManager);
40
37
  }
41
38
  async initialize() {
42
- this.configDir = await getConfigDir();
43
- this.coeiroinkConfigFile = join(this.configDir, 'coeiroink-config.json');
44
- // 設定管理システムを初期化
45
- this.configManager = new ConfigManager(this.configDir);
46
- // ConfigManagerの動的設定を事前にビルドして初期化を完了
47
- try {
48
- await this.configManager.buildDynamicConfig();
49
- }
50
- catch (error) {
51
- console.warn(`OperatorManager dynamic config build failed:`, error.message);
52
- }
53
39
  // dataStoreを初期化(設定ディレクトリ内に保存)
54
40
  const operatorConfig = await this.configManager.getOperatorConfig();
55
41
  const timeoutMs = operatorConfig.timeout;
56
42
  const hostnameClean = hostname().replace(/[^a-zA-Z0-9]/g, '_');
57
43
  // オペレータ状態を永続的に保存するディレクトリを作成
58
- const operatorStateDir = join(this.configDir, 'state');
44
+ const operatorStateDir = this.configManager.getStateDir();
59
45
  await mkdir(operatorStateDir, { recursive: true });
60
46
  // ファイルパスを設定ディレクトリ内に変更
61
47
  const filePath = join(operatorStateDir, `operators-${hostnameClean}.json`);
62
48
  this.dataStore = new FileOperationManager(filePath, this.sessionId, timeoutMs);
63
- console.log(`[OperatorManager] State file path: ${filePath}`);
64
- // CharacterInfoServiceを初期化
65
- this.characterInfoService.initialize(this.configManager, this.coeiroinkConfigFile);
66
49
  }
67
50
  /**
68
51
  * 設定の事前構築(外部からの呼び出し用)
52
+ * @deprecated Phase 2以降でsetup関数に移行予定
69
53
  */
70
54
  async buildDynamicConfig() {
71
- if (!this.configManager) {
72
- throw new Error('ConfigManager is not initialized');
73
- }
74
55
  try {
75
56
  await this.configManager.buildDynamicConfig();
76
57
  }
@@ -79,25 +60,11 @@ export class OperatorManager {
79
60
  throw error;
80
61
  }
81
62
  }
82
- /**
83
- * キャラクター情報を取得
84
- */
85
- async getCharacterInfo(characterId) {
86
- return await this.characterInfoService.getCharacterInfo(characterId);
87
- }
88
- /**
89
- * スタイルを選択
90
- * @param character キャラクター情報
91
- * @param specifiedStyle 指定されたスタイル名
92
- */
93
- selectStyle(character, specifiedStyle = null) {
94
- return this.characterInfoService.selectStyle(character, specifiedStyle);
95
- }
96
63
  /**
97
64
  * 利用可能なオペレータを取得(仕事中のオペレータ情報も含む)
98
65
  */
99
66
  async getAvailableOperators() {
100
- if (!this.configManager || !this.dataStore) {
67
+ if (!this.dataStore) {
101
68
  throw new Error('State manager is not initialized');
102
69
  }
103
70
  const allOperators = await this.configManager.getAvailableCharacterIds();
@@ -156,7 +123,7 @@ export class OperatorManager {
156
123
  }
157
124
  return {
158
125
  characterId,
159
- characterName: character?.speaker?.speakerName || characterId,
126
+ characterName: character?.speakerName || characterId,
160
127
  farewell: character?.farewell || '',
161
128
  wasAssigned: true,
162
129
  };
@@ -242,9 +209,6 @@ export class OperatorManager {
242
209
  if (!specifiedCharacter) {
243
210
  throw new Error('キャラクターIDを指定してください');
244
211
  }
245
- if (!this.configManager) {
246
- throw new Error('Manager is not initialized');
247
- }
248
212
  // キャラクター情報を取得
249
213
  const character = await this.characterInfoService.getOperatorCharacterInfo(specifiedCharacter);
250
214
  if (!character) {
@@ -267,7 +231,7 @@ export class OperatorManager {
267
231
  const styleConfig = character.styles?.[selectedStyle.styleId];
268
232
  return {
269
233
  characterId: specifiedCharacter,
270
- characterName: character.speaker?.speakerName || character.characterId,
234
+ characterName: character.speakerName || character.characterId,
271
235
  currentStyle: {
272
236
  styleId: selectedStyle.styleId.toString(),
273
237
  styleName: selectedStyle.styleName,
@@ -275,10 +239,10 @@ export class OperatorManager {
275
239
  speakingStyle: styleConfig?.speakingStyle || character.speakingStyle,
276
240
  },
277
241
  speakerConfig: {
278
- speakerId: character.speaker?.speakerId || '',
242
+ speakerId: character.speakerId || '',
279
243
  styleId: selectedStyle.styleId,
280
244
  },
281
- message: `現在のオペレータ: ${character.speaker?.speakerName || character.characterId} (${specifiedCharacter})`,
245
+ message: `現在のオペレータ: ${character.speakerName || character.characterId} (${specifiedCharacter})`,
282
246
  };
283
247
  }
284
248
  // 現在のオペレータをサイレントリリース
@@ -298,7 +262,7 @@ export class OperatorManager {
298
262
  const styleConfig = character.styles?.[selectedStyle.styleId];
299
263
  return {
300
264
  characterId: specifiedCharacter,
301
- characterName: character.speaker?.speakerName || character.characterId,
265
+ characterName: character.speakerName || character.characterId,
302
266
  currentStyle: {
303
267
  styleId: selectedStyle.styleId.toString(),
304
268
  styleName: selectedStyle.styleName,
@@ -306,7 +270,7 @@ export class OperatorManager {
306
270
  speakingStyle: styleConfig?.speakingStyle || character.speakingStyle,
307
271
  },
308
272
  speakerConfig: {
309
- speakerId: character.speaker?.speakerId || '',
273
+ speakerId: character.speakerId || '',
310
274
  styleId: selectedStyle.styleId,
311
275
  },
312
276
  greeting: character.greeting || '',
@@ -317,9 +281,6 @@ export class OperatorManager {
317
281
  * 仕様書準拠: getCurrentOperatorId()の自動時間切れ処理に依存し、統一された検証ロジックを実装
318
282
  */
319
283
  async showCurrentOperator() {
320
- if (!this.configManager) {
321
- throw new Error('Manager is not initialized');
322
- }
323
284
  // 仕様書準拠: getCurrentOperatorSession()が時間切れチェックと自動解放を実行
324
285
  const operatorSession = await this.getCurrentOperatorSession();
325
286
  if (!operatorSession) {
@@ -348,9 +309,19 @@ export class OperatorManager {
348
309
  let selectedStyle;
349
310
  if (styleId !== undefined && styleName) {
350
311
  // 保存されたスタイルを検索
351
- const styles = character.speaker?.styles || [];
352
- selectedStyle =
353
- styles.find(s => s.styleId === styleId) || this.characterInfoService.selectStyle(character);
312
+ const styleConfig = character.styles?.[styleId];
313
+ if (styleConfig && !styleConfig.disabled) {
314
+ selectedStyle = {
315
+ styleId: styleId,
316
+ styleName: styleConfig.styleName,
317
+ morasPerSecond: styleConfig.morasPerSecond,
318
+ personality: styleConfig.personality,
319
+ speakingStyle: styleConfig.speakingStyle,
320
+ };
321
+ }
322
+ else {
323
+ selectedStyle = this.characterInfoService.selectStyle(character);
324
+ }
354
325
  }
355
326
  else {
356
327
  selectedStyle = this.characterInfoService.selectStyle(character);
@@ -359,14 +330,14 @@ export class OperatorManager {
359
330
  const styleConfig = character.styles?.[selectedStyle.styleId];
360
331
  return {
361
332
  characterId,
362
- characterName: character.speaker?.speakerName || character.characterId,
333
+ characterName: character.speakerName || character.characterId,
363
334
  currentStyle: {
364
335
  styleId: selectedStyle.styleId.toString(),
365
336
  styleName: selectedStyle.styleName,
366
337
  personality: styleConfig?.personality || character.personality,
367
338
  speakingStyle: styleConfig?.speakingStyle || character.speakingStyle,
368
339
  },
369
- message: `現在のオペレータ: ${character.speaker?.speakerName || character.characterId} (${characterId}) - ${selectedStyle.styleName}`,
340
+ message: `現在のオペレータ: ${character.speakerName || character.characterId} (${characterId}) - ${selectedStyle.styleName}`,
370
341
  };
371
342
  }
372
343
  /**
@@ -376,18 +347,183 @@ export class OperatorManager {
376
347
  async refreshOperatorReservation() {
377
348
  const operatorSession = await this.getCurrentOperatorSession();
378
349
  if (!operatorSession) {
379
- console.log('[OperatorManager] Cannot refresh - no operator assigned');
350
+ logger.debug('[OperatorManager] Cannot refresh - no operator assigned');
380
351
  return false; // オペレータが割り当てられていない
381
352
  }
382
353
  if (!this.dataStore) {
383
- console.log('[OperatorManager] Cannot refresh - dataStore not initialized');
354
+ logger.debug('[OperatorManager] Cannot refresh - dataStore not initialized');
384
355
  return false;
385
356
  }
386
- console.log(`[OperatorManager] Refreshing reservation for: ${operatorSession.characterId}`);
357
+ logger.debug(`[OperatorManager] Refreshing reservation for: ${operatorSession.characterId}`);
387
358
  const result = await this.dataStore.refresh();
388
- console.log(`[OperatorManager] Refresh result: ${result ? 'success' : 'failed'}`);
359
+ logger.debug(`[OperatorManager] Refresh result: ${result ? 'success' : 'failed'}`);
389
360
  return result;
390
361
  }
362
+ /**
363
+ * 未登録のSpeaker/Styleを検出
364
+ *
365
+ * @returns 登録状況の分類結果
366
+ */
367
+ async detectUnregisteredSpeakers() {
368
+ // 1. API Speakersを取得
369
+ const { getSpeakerProvider } = await import('../environment/speaker-provider.js');
370
+ const speakerProvider = getSpeakerProvider();
371
+ const apiSpeakers = await speakerProvider.getSpeakers();
372
+ // 2. 登録済みキャラクターを取得
373
+ const mergedConfig = this.configManager.getMergedConfig();
374
+ const characters = mergedConfig?.characters || {};
375
+ const registered = [];
376
+ const partiallyRegistered = [];
377
+ const unregistered = [];
378
+ // 3. 各Speakerを分類
379
+ for (const speaker of apiSpeakers) {
380
+ const registeredChar = Object.entries(characters).find(([_, config]) => config.speakerId === speaker.speakerUuid);
381
+ if (!registeredChar) {
382
+ // 完全未登録
383
+ unregistered.push({
384
+ speakerId: speaker.speakerUuid,
385
+ speakerName: speaker.speakerName,
386
+ totalStyles: speaker.styles.length,
387
+ styles: speaker.styles.map(s => ({
388
+ styleId: s.styleId,
389
+ styleName: s.styleName,
390
+ })),
391
+ });
392
+ continue;
393
+ }
394
+ const [characterId, characterConfig] = registeredChar;
395
+ // スタイルの登録状況をチェック
396
+ const missingStyles = speaker.styles.filter(apiStyle => {
397
+ const styleConfig = characterConfig.styles?.[apiStyle.styleId];
398
+ return !styleConfig || styleConfig.morasPerSecond === undefined;
399
+ });
400
+ if (missingStyles.length === 0) {
401
+ // 完全登録
402
+ registered.push({
403
+ speakerId: speaker.speakerUuid,
404
+ speakerName: speaker.speakerName,
405
+ characterId,
406
+ registeredStyles: speaker.styles.length,
407
+ totalStyles: speaker.styles.length,
408
+ allStylesHaveSpeechRate: true,
409
+ });
410
+ }
411
+ else {
412
+ // 部分登録
413
+ partiallyRegistered.push({
414
+ speakerId: speaker.speakerUuid,
415
+ speakerName: speaker.speakerName,
416
+ characterId,
417
+ missingStyles: missingStyles.map(s => ({
418
+ styleId: s.styleId,
419
+ styleName: s.styleName,
420
+ })),
421
+ });
422
+ }
423
+ }
424
+ return { registered, partiallyRegistered, unregistered };
425
+ }
426
+ /**
427
+ * Speaker/Styleの話速を測定して登録
428
+ *
429
+ * @param speakerName Speaker名
430
+ * @param styleName スタイル名(省略時は全スタイル)
431
+ * @param characterId キャラクターID(省略時は自動生成)
432
+ * @returns 測定結果
433
+ */
434
+ async measureAndRegisterSpeaker(speakerName, styleName, characterId) {
435
+ // 1. Speakerを検証
436
+ const { getSpeakerProvider } = await import('../environment/speaker-provider.js');
437
+ const speakerProvider = getSpeakerProvider();
438
+ const apiSpeakers = await speakerProvider.getSpeakers();
439
+ const speaker = apiSpeakers.find(s => s.speakerName === speakerName);
440
+ if (!speaker) {
441
+ throw new Error(`Speaker "${speakerName}" が見つかりません`);
442
+ }
443
+ // 2. 測定対象のスタイルを決定
444
+ const targetStyles = styleName
445
+ ? speaker.styles.filter(s => s.styleName === styleName)
446
+ : speaker.styles;
447
+ if (targetStyles.length === 0) {
448
+ throw new Error(`Style "${styleName}" が見つかりません`);
449
+ }
450
+ // 3. 話速測定(測定ロジックを呼び出し)
451
+ const measurements = await this.speechRateMeasurer.measureSpeechRateForStyles(speaker.speakerUuid, targetStyles);
452
+ // 4. characterIdの決定
453
+ const finalCharacterId = characterId || generateCharacterId(speakerName);
454
+ // 5. config.jsonに登録
455
+ await this.configManager.updateCharacterConfig(finalCharacterId, {
456
+ speakerId: speaker.speakerUuid,
457
+ name: speaker.speakerName,
458
+ personality: '',
459
+ speakingStyle: '',
460
+ greeting: '',
461
+ farewell: '',
462
+ defaultStyleId: targetStyles[0].styleId,
463
+ styles: Object.fromEntries(measurements.map(m => [
464
+ m.styleId,
465
+ {
466
+ styleName: m.styleName,
467
+ morasPerSecond: m.morasPerSecond,
468
+ },
469
+ ])),
470
+ });
471
+ return {
472
+ speakerId: speaker.speakerUuid,
473
+ speakerName: speaker.speakerName,
474
+ measurements,
475
+ };
476
+ }
477
+ /**
478
+ * キャラクターの話速を測定(登録済みキャラクター用)
479
+ *
480
+ * @param characterId キャラクターID
481
+ * @param styleName スタイル名(省略時は全スタイル)
482
+ * @param dryRun trueの場合は測定のみで設定更新しない
483
+ * @returns 測定結果
484
+ */
485
+ async measureCharacterSpeechRate(characterId, styleName, dryRun = false) {
486
+ // 1. CharacterConfigを取得
487
+ const characterConfig = await this.configManager.getCharacterConfig(characterId);
488
+ if (!characterConfig) {
489
+ throw new Error(`Character "${characterId}" が見つかりません`);
490
+ }
491
+ // 2. SpeakerProviderからSpeaker情報を取得
492
+ const { getSpeakerProvider } = await import('../environment/speaker-provider.js');
493
+ const speakerProvider = getSpeakerProvider();
494
+ const apiSpeakers = await speakerProvider.getSpeakers();
495
+ const speaker = apiSpeakers.find(s => s.speakerUuid === characterConfig.speakerId);
496
+ if (!speaker) {
497
+ throw new Error(`Speaker "${characterConfig.speakerId}" が見つかりません`);
498
+ }
499
+ // 3. 測定対象のスタイルを決定
500
+ const targetStyles = styleName
501
+ ? speaker.styles.filter(s => s.styleName === styleName)
502
+ : speaker.styles;
503
+ if (targetStyles.length === 0) {
504
+ throw new Error(`Style "${styleName}" が見つかりません`);
505
+ }
506
+ // 4. 話速測定
507
+ const measurements = await this.speechRateMeasurer.measureSpeechRateForStyles(speaker.speakerUuid, targetStyles);
508
+ // 5. config.jsonに登録(dryRunでない場合)
509
+ if (!dryRun) {
510
+ await this.configManager.updateCharacterConfig(characterId, {
511
+ styles: Object.fromEntries(measurements.map(m => [
512
+ m.styleId,
513
+ {
514
+ styleName: m.styleName,
515
+ morasPerSecond: m.morasPerSecond,
516
+ },
517
+ ])),
518
+ });
519
+ }
520
+ return {
521
+ characterId,
522
+ speakerId: speaker.speakerUuid,
523
+ speakerName: speaker.speakerName,
524
+ measurements,
525
+ };
526
+ }
391
527
  }
392
528
  export default OperatorManager;
393
529
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operator/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * 話速測定ユーティリティ
3
+ * Speaker/Styleの話速(モーラ/秒)を測定する機能を提供
4
+ */
5
+ import ConfigManager from './config/config-manager.js';
6
+ /**
7
+ * 話速測定クラス
8
+ */
9
+ export declare class SpeechRateMeasurer {
10
+ private configManager;
11
+ constructor(configManager: ConfigManager);
12
+ /**
13
+ * 指定されたスタイルの話速を測定
14
+ */
15
+ measureSpeechRateForStyles(speakerId: string, styles: Array<{
16
+ styleId: number;
17
+ styleName: string;
18
+ }>): Promise<Array<{
19
+ styleId: number;
20
+ styleName: string;
21
+ morasPerSecond: number;
22
+ }>>;
23
+ }
24
+ /**
25
+ * WAVファイルヘッダーから再生時間を取得
26
+ */
27
+ export declare function getWavDuration(buffer: ArrayBuffer): number;
28
+ /**
29
+ * Speaker名からcharacterIdを生成
30
+ */
31
+ export declare function generateCharacterId(speakerName: string): string;
32
+ //# sourceMappingURL=speech-rate-measurer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-rate-measurer.d.ts","sourceRoot":"","sources":["../../src/operator/speech-rate-measurer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAEvD;;GAEG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,aAAa;gBAAb,aAAa,EAAE,aAAa;IAEhD;;OAEG;IACG,0BAA0B,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,GACpD,OAAO,CAAC,KAAK,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC,CAAC;CAgFJ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAoC1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAG/D"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * 話速測定ユーティリティ
3
+ * Speaker/Styleの話速(モーラ/秒)を測定する機能を提供
4
+ */
5
+ import { logger } from '@coeiro-operator/common';
6
+ /**
7
+ * 話速測定クラス
8
+ */
9
+ export class SpeechRateMeasurer {
10
+ configManager;
11
+ constructor(configManager) {
12
+ this.configManager = configManager;
13
+ }
14
+ /**
15
+ * 指定されたスタイルの話速を測定
16
+ */
17
+ async measureSpeechRateForStyles(speakerId, styles) {
18
+ // テスト用の文章(モーラ数が正確に計算できる文章)
19
+ const TEST_TEXTS = [
20
+ { text: 'こんにちは今日はとてもいい天気ですね', expectedMoras: 19 },
21
+ { text: 'おはようございます今日も一日頑張りましょう', expectedMoras: 23 },
22
+ { text: '日本の技術は世界でもトップクラスです', expectedMoras: 22 },
23
+ { text: 'ありがとうございましたまたよろしくお願いします', expectedMoras: 24 },
24
+ ];
25
+ const results = [];
26
+ for (const style of styles) {
27
+ logger.info(` スタイル: ${style.styleName} (ID: ${style.styleId})`);
28
+ let totalMoras = 0;
29
+ let totalDuration = 0;
30
+ // 各テスト文章で測定
31
+ for (let i = 0; i < TEST_TEXTS.length; i++) {
32
+ const testText = TEST_TEXTS[i];
33
+ const moraCount = testText.expectedMoras;
34
+ try {
35
+ // 音声合成(speedScale=1.0固定)
36
+ const synthesisParams = {
37
+ text: testText.text,
38
+ speakerUuid: speakerId,
39
+ styleId: style.styleId,
40
+ speedScale: 1.0,
41
+ volumeScale: 1.0,
42
+ pitchScale: 0.0,
43
+ intonationScale: 1.0,
44
+ prePhonemeLength: 0.1,
45
+ postPhonemeLength: 0.1,
46
+ outputSamplingRate: 24000,
47
+ };
48
+ const connectionConfig = await this.configManager.getConnectionConfig();
49
+ const url = `http://${connectionConfig.host}:${connectionConfig.port}/v1/synthesis`;
50
+ const response = await fetch(url, {
51
+ method: 'POST',
52
+ headers: { 'Content-Type': 'application/json' },
53
+ body: JSON.stringify(synthesisParams),
54
+ });
55
+ if (!response.ok) {
56
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
57
+ }
58
+ const audioBuffer = await response.arrayBuffer();
59
+ // WAVファイルから再生時間を取得
60
+ const duration = getWavDuration(audioBuffer);
61
+ const morasPerSecond = moraCount / duration;
62
+ totalMoras += moraCount;
63
+ totalDuration += duration;
64
+ logger.info(` 文章${i + 1}: ${morasPerSecond.toFixed(2)} モーラ/秒 (${duration.toFixed(2)}秒, ${moraCount}モーラ)`);
65
+ }
66
+ catch (error) {
67
+ logger.error(` 文章${i + 1}: 測定失敗 - ${error}`);
68
+ }
69
+ }
70
+ if (totalDuration > 0) {
71
+ // 平均値を計算
72
+ const averageMorasPerSecond = totalMoras / totalDuration;
73
+ results.push({
74
+ styleId: style.styleId,
75
+ styleName: style.styleName,
76
+ morasPerSecond: parseFloat(averageMorasPerSecond.toFixed(2)),
77
+ });
78
+ logger.info(` 平均: ${averageMorasPerSecond.toFixed(2)} モーラ/秒`);
79
+ }
80
+ }
81
+ return results;
82
+ }
83
+ }
84
+ /**
85
+ * WAVファイルヘッダーから再生時間を取得
86
+ */
87
+ export function getWavDuration(buffer) {
88
+ const view = new DataView(buffer);
89
+ // WAVファイルのヘッダー構造を解析
90
+ // サンプリングレートの位置: 24-27バイト
91
+ const sampleRate = view.getUint32(24, true);
92
+ // データチャンクサイズの位置を探す
93
+ let pos = 12;
94
+ while (pos < buffer.byteLength - 8) {
95
+ const chunkId = String.fromCharCode(view.getUint8(pos), view.getUint8(pos + 1), view.getUint8(pos + 2), view.getUint8(pos + 3));
96
+ const chunkSize = view.getUint32(pos + 4, true);
97
+ if (chunkId === 'data') {
98
+ // データチャンクが見つかった
99
+ // チャンネル数の取得 (22-23バイト)
100
+ const channels = view.getUint16(22, true);
101
+ // ビット深度の取得 (34-35バイト)
102
+ const bitsPerSample = view.getUint16(34, true);
103
+ // 再生時間 = データサイズ / (サンプリングレート * チャンネル数 * (ビット深度/8))
104
+ const duration = chunkSize / (sampleRate * channels * (bitsPerSample / 8));
105
+ return duration;
106
+ }
107
+ pos += 8 + chunkSize;
108
+ // 必要に応じてパディング調整
109
+ if (chunkSize % 2 !== 0)
110
+ pos++;
111
+ }
112
+ throw new Error('WAVファイルのdataチャンクが見つかりません');
113
+ }
114
+ /**
115
+ * Speaker名からcharacterIdを生成
116
+ */
117
+ export function generateCharacterId(speakerName) {
118
+ // speakerNameから英数字以外を除去して小文字化
119
+ return speakerName.toLowerCase().replace(/[^a-z0-9-_]/g, '_');
120
+ }
121
+ //# sourceMappingURL=speech-rate-measurer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"speech-rate-measurer.js","sourceRoot":"","sources":["../../src/operator/speech-rate-measurer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * packages/core/src/setup.ts
3
+ * OperatorManager、ConfigManager、CharacterInfoServiceの統一セットアップ関数
4
+ */
5
+ import ConfigManager from './operator/config/config-manager.js';
6
+ import CharacterInfoService from './operator/character/character-info-service.js';
7
+ import OperatorManager from './operator/index.js';
8
+ export interface SetupResult {
9
+ configManager: ConfigManager;
10
+ characterInfoService: CharacterInfoService;
11
+ operatorManager: OperatorManager;
12
+ }
13
+ /**
14
+ * OperatorManagerとその依存関係を初期化する
15
+ *
16
+ * @returns 初期化されたコンポーネント
17
+ */
18
+ export declare function setup(): Promise<SetupResult>;
19
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,oBAAoB,MAAM,gDAAgD,CAAC;AAClF,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,eAAe,EAAE,eAAe,CAAC;CAClC;AAED;;;;GAIG;AACH,wBAAsB,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC,CAoBlD"}