@coeiro-operator/audio 1.0.3 → 1.2.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.
- package/README.md +48 -0
- package/dist/audio-player.d.ts +32 -11
- package/dist/audio-player.d.ts.map +1 -1
- package/dist/audio-player.js +236 -210
- package/dist/audio-player.js.map +1 -1
- package/dist/audio-stream-controller.d.ts +27 -7
- package/dist/audio-stream-controller.d.ts.map +1 -1
- package/dist/audio-stream-controller.js +143 -40
- package/dist/audio-stream-controller.js.map +1 -1
- package/dist/audio-synthesizer.d.ts +5 -4
- package/dist/audio-synthesizer.d.ts.map +1 -1
- package/dist/audio-synthesizer.js +36 -23
- package/dist/audio-synthesizer.js.map +1 -1
- package/dist/chunk-generation-manager.d.ts +34 -2
- package/dist/chunk-generation-manager.d.ts.map +1 -1
- package/dist/chunk-generation-manager.js +237 -15
- package/dist/chunk-generation-manager.js.map +1 -1
- package/dist/debug-error-test.d.ts +5 -0
- package/dist/debug-error-test.d.ts.map +1 -0
- package/dist/debug-error-test.js +91 -0
- package/dist/debug-error-test.js.map +1 -0
- package/dist/index.d.ts +18 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +30 -4
- package/dist/index.js.map +1 -1
- package/dist/open-promise.d.ts +18 -0
- package/dist/open-promise.d.ts.map +1 -0
- package/dist/open-promise.js +42 -0
- package/dist/open-promise.js.map +1 -0
- package/dist/queue/speech-queue.d.ts +34 -0
- package/dist/queue/speech-queue.d.ts.map +1 -0
- package/dist/queue/speech-queue.js +36 -0
- package/dist/queue/speech-queue.js.map +1 -0
- package/dist/queue/task-queue.d.ts +52 -0
- package/dist/queue/task-queue.d.ts.map +1 -0
- package/dist/queue/task-queue.js +259 -0
- package/dist/queue/task-queue.js.map +1 -0
- package/dist/queue/types.d.ts +42 -0
- package/dist/queue/types.d.ts.map +1 -0
- package/dist/queue/types.js +5 -0
- package/dist/queue/types.js.map +1 -0
- package/dist/speech-queue.d.ts +4 -49
- package/dist/speech-queue.d.ts.map +1 -1
- package/dist/speech-queue.js +3 -140
- package/dist/speech-queue.js.map +1 -1
- package/dist/speed-utils.d.ts +25 -0
- package/dist/speed-utils.d.ts.map +1 -0
- package/dist/speed-utils.js +77 -0
- package/dist/speed-utils.js.map +1 -0
- package/dist/synthesis-processor.d.ts.map +1 -1
- package/dist/synthesis-processor.js +34 -10
- package/dist/synthesis-processor.js.map +1 -1
- package/dist/test-helpers.d.ts +0 -9
- package/dist/test-helpers.d.ts.map +1 -1
- package/dist/test-helpers.js +1 -80
- package/dist/test-helpers.js.map +1 -1
- package/dist/types.d.ts +41 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/voice-resolver.d.ts.map +1 -1
- package/dist/voice-resolver.js +33 -3
- package/dist/voice-resolver.js.map +1 -1
- package/package.json +4 -6
package/README.md
CHANGED
|
@@ -6,6 +6,54 @@ COEIRO Operator音声合成・再生モジュール
|
|
|
6
6
|
|
|
7
7
|
COEIROINK APIとの通信、音声ストリーミング、リサンプリング機能を提供します。
|
|
8
8
|
|
|
9
|
+
## 機能
|
|
10
|
+
|
|
11
|
+
- COEIROINK APIとの音声合成通信
|
|
12
|
+
- 低レイテンシ音声ストリーミング
|
|
13
|
+
- 音声再生(@echogarden/audio-io使用)
|
|
14
|
+
- リアルタイムリサンプリング
|
|
15
|
+
- チャンク境界での停止制御
|
|
16
|
+
- クロスフェード処理
|
|
17
|
+
- ノイズリダクション(オプション)
|
|
18
|
+
|
|
19
|
+
## 音声出力モジュール
|
|
20
|
+
|
|
21
|
+
音声出力には`@echogarden/audio-io`を使用しています。以下の特徴があります:
|
|
22
|
+
|
|
23
|
+
- **プリコンパイル済みバイナリ**: node-gypによるビルドが不要
|
|
24
|
+
- **CI/CD対応**: GitHub ActionsなどのCI環境でも動作
|
|
25
|
+
- **低レイテンシ**: コールバックベースのAPIで効率的なバッファ管理
|
|
26
|
+
- **マルチプラットフォーム**: macOS、Windows、Linuxをサポート
|
|
27
|
+
|
|
28
|
+
## パフォーマンス
|
|
29
|
+
|
|
30
|
+
@echogarden/audio-ioの採用により、以下のパフォーマンス改善を実現:
|
|
31
|
+
|
|
32
|
+
- 初期化時間: 約0.03ms(高速)
|
|
33
|
+
- チャンク処理: 平均1.47ms(低オーバーヘッド)
|
|
34
|
+
- メモリ使用量: 約130MB RSS(効率的)
|
|
35
|
+
|
|
36
|
+
## ドキュメント
|
|
37
|
+
|
|
38
|
+
### ドキュメント構成
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
packages/audio/
|
|
42
|
+
├── docs/
|
|
43
|
+
│ ├── architecture.md # アーキテクチャ概要
|
|
44
|
+
│ ├── task-orchestration.md # タスクキュー実装詳細
|
|
45
|
+
│ ├── chunk-generation-manager-spec.md # 並行生成仕様
|
|
46
|
+
│ └── architecture-improvement-proposal.md # 改善提案(未実施)
|
|
47
|
+
└── README.md # このファイル
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### ドキュメント管理ルール
|
|
51
|
+
|
|
52
|
+
- **アーキテクチャドキュメント**: `docs/` に機能ごとに配置
|
|
53
|
+
- **複数ファイルにまたがる処理フロー**: 各ドキュメントに記述
|
|
54
|
+
- **コードで明らかな情報**: ドキュメント化しない
|
|
55
|
+
- **修正済みの内容**: ドキュメント内で ✅ マークで明示
|
|
56
|
+
|
|
9
57
|
## ライセンス
|
|
10
58
|
|
|
11
59
|
MIT
|
package/dist/audio-player.d.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* src/say/audio-player.ts: 音声再生管理
|
|
3
|
-
*
|
|
3
|
+
* @echogarden/audio-ioによる音声出力を担当
|
|
4
4
|
*/
|
|
5
5
|
import type { AudioResult, Config } from './types.js';
|
|
6
|
-
export declare const forTests: {
|
|
7
|
-
mockSpeakerInstance: any;
|
|
8
|
-
};
|
|
9
6
|
export declare class AudioPlayer {
|
|
10
7
|
private synthesisRate;
|
|
11
8
|
private playbackRate;
|
|
@@ -18,6 +15,11 @@ export declare class AudioPlayer {
|
|
|
18
15
|
private isInitialized;
|
|
19
16
|
private audioConfig;
|
|
20
17
|
private config;
|
|
18
|
+
private shouldStop;
|
|
19
|
+
private audioOutput;
|
|
20
|
+
private chunkQueue;
|
|
21
|
+
private currentChunkOffset;
|
|
22
|
+
private completionPromise;
|
|
21
23
|
/**
|
|
22
24
|
* AudioPlayerの初期化
|
|
23
25
|
*/
|
|
@@ -57,7 +59,7 @@ export declare class AudioPlayer {
|
|
|
57
59
|
playAudioStream(audioResult: AudioResult, bufferSize?: number): Promise<void>;
|
|
58
60
|
/**
|
|
59
61
|
* ストリーミング音声処理パイプライン
|
|
60
|
-
* 処理順序: 1) リサンプリング 2) ローパスフィルター 3) ノイズリダクション 4)
|
|
62
|
+
* 処理順序: 1) リサンプリング 2) ローパスフィルター 3) ノイズリダクション 4) 出力
|
|
61
63
|
*/
|
|
62
64
|
private processAudioStreamPipeline;
|
|
63
65
|
/**
|
|
@@ -77,16 +79,23 @@ export declare class AudioPlayer {
|
|
|
77
79
|
*/
|
|
78
80
|
playStreamingAudio(audioStream: AsyncGenerator<AudioResult>, bufferSize?: number): Promise<void>;
|
|
79
81
|
/**
|
|
80
|
-
*
|
|
82
|
+
* キューが空になるまで待機(@echogarden/audio-io用)
|
|
81
83
|
*/
|
|
82
|
-
|
|
84
|
+
private waitForCompletion;
|
|
83
85
|
/**
|
|
84
|
-
*
|
|
86
|
+
* @echogarden/audio-io用のaudioOutputを遅延作成
|
|
85
87
|
*/
|
|
86
|
-
private
|
|
88
|
+
private ensureAudioOutput;
|
|
87
89
|
/**
|
|
88
|
-
*
|
|
89
|
-
|
|
90
|
+
* @echogarden/audio-io用のコールバックハンドラ
|
|
91
|
+
*/
|
|
92
|
+
private audioOutputHandler;
|
|
93
|
+
/**
|
|
94
|
+
* Uint8ArrayからInt16Arrayに変換(リトルエンディアン)
|
|
95
|
+
*/
|
|
96
|
+
private convertToInt16Array;
|
|
97
|
+
/**
|
|
98
|
+
* PCMデータを音声出力キューに追加
|
|
90
99
|
*/
|
|
91
100
|
private playPCMData;
|
|
92
101
|
/**
|
|
@@ -120,11 +129,23 @@ export declare class AudioPlayer {
|
|
|
120
129
|
* @returns 無音のPCMデータ
|
|
121
130
|
*/
|
|
122
131
|
generateSilentPCM(durationMs?: number, sampleRate?: number): Uint8Array;
|
|
132
|
+
/**
|
|
133
|
+
* 無音WAVデータを生成(句読点ポーズ用)
|
|
134
|
+
* @param durationMs 無音の長さ(ミリ秒)
|
|
135
|
+
* @param sampleRate サンプルレート(デフォルト:24000Hz)
|
|
136
|
+
* @returns WAVフォーマットの無音データ
|
|
137
|
+
*/
|
|
138
|
+
generateSilenceWAV(durationMs: number, sampleRate?: number): ArrayBuffer;
|
|
123
139
|
/**
|
|
124
140
|
* ドライバーウォームアップ用の無音再生
|
|
125
141
|
* 短い無音を再生してSpeakerドライバーを起動・安定化
|
|
126
142
|
*/
|
|
127
143
|
warmupAudioDriver(): Promise<void>;
|
|
144
|
+
/**
|
|
145
|
+
* 音声再生の停止(チャンク境界で停止)
|
|
146
|
+
* 現在再生中のチャンクは最後まで再生され、次のチャンクから停止します
|
|
147
|
+
*/
|
|
148
|
+
stopPlayback(): Promise<void>;
|
|
128
149
|
/**
|
|
129
150
|
* AudioPlayerのクリーンアップ(リソース解放)
|
|
130
151
|
* 長時間運用やシャットダウン時に呼び出し
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audio-player.d.ts","sourceRoot":"","sources":["../src/audio-player.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"audio-player.d.ts","sourceRoot":"","sources":["../src/audio-player.ts"],"names":[],"mappings":"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"}
|