@nahisaho/katashiro-generator 0.2.2 → 0.2.4

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 (93) hide show
  1. package/dist/audio/AudioGenerator.d.ts +82 -0
  2. package/dist/audio/AudioGenerator.d.ts.map +1 -0
  3. package/dist/audio/AudioGenerator.js +561 -0
  4. package/dist/audio/AudioGenerator.js.map +1 -0
  5. package/dist/audio/SSMLBuilder.d.ts +114 -0
  6. package/dist/audio/SSMLBuilder.d.ts.map +1 -0
  7. package/dist/audio/SSMLBuilder.js +269 -0
  8. package/dist/audio/SSMLBuilder.js.map +1 -0
  9. package/dist/audio/index.d.ts +10 -0
  10. package/dist/audio/index.d.ts.map +1 -0
  11. package/dist/audio/index.js +12 -0
  12. package/dist/audio/index.js.map +1 -0
  13. package/dist/audio/types.d.ts +322 -0
  14. package/dist/audio/types.d.ts.map +1 -0
  15. package/dist/audio/types.js +102 -0
  16. package/dist/audio/types.js.map +1 -0
  17. package/dist/chart/ChartGenerator.d.ts +120 -0
  18. package/dist/chart/ChartGenerator.d.ts.map +1 -0
  19. package/dist/chart/ChartGenerator.js +328 -0
  20. package/dist/chart/ChartGenerator.js.map +1 -0
  21. package/dist/chart/DiagramGenerator.d.ts +141 -0
  22. package/dist/chart/DiagramGenerator.d.ts.map +1 -0
  23. package/dist/chart/DiagramGenerator.js +350 -0
  24. package/dist/chart/DiagramGenerator.js.map +1 -0
  25. package/dist/chart/MermaidBuilder.d.ts +291 -0
  26. package/dist/chart/MermaidBuilder.d.ts.map +1 -0
  27. package/dist/chart/MermaidBuilder.js +429 -0
  28. package/dist/chart/MermaidBuilder.js.map +1 -0
  29. package/dist/chart/SvgBuilder.d.ts +103 -0
  30. package/dist/chart/SvgBuilder.d.ts.map +1 -0
  31. package/dist/chart/SvgBuilder.js +503 -0
  32. package/dist/chart/SvgBuilder.js.map +1 -0
  33. package/dist/chart/index.d.ts +12 -0
  34. package/dist/chart/index.d.ts.map +1 -0
  35. package/dist/chart/index.js +13 -0
  36. package/dist/chart/index.js.map +1 -0
  37. package/dist/chart/types.d.ts +244 -0
  38. package/dist/chart/types.d.ts.map +1 -0
  39. package/dist/chart/types.js +107 -0
  40. package/dist/chart/types.js.map +1 -0
  41. package/dist/image/ImageGenerator.d.ts +145 -0
  42. package/dist/image/ImageGenerator.d.ts.map +1 -0
  43. package/dist/image/ImageGenerator.js +402 -0
  44. package/dist/image/ImageGenerator.js.map +1 -0
  45. package/dist/image/PromptOptimizer.d.ts +73 -0
  46. package/dist/image/PromptOptimizer.d.ts.map +1 -0
  47. package/dist/image/PromptOptimizer.js +295 -0
  48. package/dist/image/PromptOptimizer.js.map +1 -0
  49. package/dist/image/index.d.ts +10 -0
  50. package/dist/image/index.d.ts.map +1 -0
  51. package/dist/image/index.js +12 -0
  52. package/dist/image/index.js.map +1 -0
  53. package/dist/image/types.d.ts +237 -0
  54. package/dist/image/types.d.ts.map +1 -0
  55. package/dist/image/types.js +97 -0
  56. package/dist/image/types.js.map +1 -0
  57. package/dist/index.d.ts +5 -0
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +40 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/ogp/OGPGenerator.d.ts +97 -0
  62. package/dist/ogp/OGPGenerator.d.ts.map +1 -0
  63. package/dist/ogp/OGPGenerator.js +245 -0
  64. package/dist/ogp/OGPGenerator.js.map +1 -0
  65. package/dist/ogp/OGPSvgBuilder.d.ts +95 -0
  66. package/dist/ogp/OGPSvgBuilder.d.ts.map +1 -0
  67. package/dist/ogp/OGPSvgBuilder.js +383 -0
  68. package/dist/ogp/OGPSvgBuilder.js.map +1 -0
  69. package/dist/ogp/index.d.ts +10 -0
  70. package/dist/ogp/index.d.ts.map +1 -0
  71. package/dist/ogp/index.js +12 -0
  72. package/dist/ogp/index.js.map +1 -0
  73. package/dist/ogp/types.d.ts +183 -0
  74. package/dist/ogp/types.d.ts.map +1 -0
  75. package/dist/ogp/types.js +204 -0
  76. package/dist/ogp/types.js.map +1 -0
  77. package/dist/video/FrameComposer.d.ts +95 -0
  78. package/dist/video/FrameComposer.d.ts.map +1 -0
  79. package/dist/video/FrameComposer.js +325 -0
  80. package/dist/video/FrameComposer.js.map +1 -0
  81. package/dist/video/VideoGenerator.d.ts +82 -0
  82. package/dist/video/VideoGenerator.d.ts.map +1 -0
  83. package/dist/video/VideoGenerator.js +325 -0
  84. package/dist/video/VideoGenerator.js.map +1 -0
  85. package/dist/video/index.d.ts +10 -0
  86. package/dist/video/index.d.ts.map +1 -0
  87. package/dist/video/index.js +12 -0
  88. package/dist/video/index.js.map +1 -0
  89. package/dist/video/types.d.ts +366 -0
  90. package/dist/video/types.d.ts.map +1 -0
  91. package/dist/video/types.js +111 -0
  92. package/dist/video/types.js.map +1 -0
  93. package/package.json +1 -1
@@ -0,0 +1,114 @@
1
+ /**
2
+ * SSML Builder
3
+ * SSML(Speech Synthesis Markup Language)構築ユーティリティ
4
+ * REQ-MEDIA-005-001: テキスト音声変換
5
+ */
6
+ import type { VoiceConfig, SpeakingStyle, TextSegment } from './types.js';
7
+ /**
8
+ * SSMLビルダークラス
9
+ */
10
+ export declare class SSMLBuilder {
11
+ private elements;
12
+ private readonly lang;
13
+ constructor(language?: string);
14
+ /**
15
+ * SSMLドキュメントを開始
16
+ */
17
+ start(): this;
18
+ /**
19
+ * テキストを追加
20
+ */
21
+ text(content: string): this;
22
+ /**
23
+ * ポーズを追加
24
+ * @param duration ミリ秒またはstrength ('none', 'x-weak', 'weak', 'medium', 'strong', 'x-strong')
25
+ */
26
+ pause(duration: number | string): this;
27
+ /**
28
+ * 強調を追加
29
+ * @param content テキスト
30
+ * @param level 強調レベル ('strong', 'moderate', 'reduced')
31
+ */
32
+ emphasis(content: string, level?: 'strong' | 'moderate' | 'reduced'): this;
33
+ /**
34
+ * 韻律(話速、ピッチ、音量)を設定
35
+ */
36
+ prosody(content: string, options: {
37
+ rate?: string | number;
38
+ pitch?: string | number;
39
+ volume?: string | number;
40
+ }): this;
41
+ /**
42
+ * 読み方を指定
43
+ * @param content テキスト
44
+ * @param interpretAs 読み方タイプ ('cardinal', 'ordinal', 'characters', 'spell-out', 'date', 'time', 'telephone')
45
+ * @param format フォーマット(日付の場合: 'mdy', 'dmy', 'ymd' など)
46
+ */
47
+ sayAs(content: string, interpretAs: 'cardinal' | 'ordinal' | 'characters' | 'spell-out' | 'date' | 'time' | 'telephone', format?: string): this;
48
+ /**
49
+ * 発音を指定
50
+ * @param content 表示テキスト
51
+ * @param ph 発音(IPA)
52
+ */
53
+ phoneme(content: string, ph: string, alphabet?: 'ipa' | 'x-sampa'): this;
54
+ /**
55
+ * 読み替えを指定
56
+ * @param content 表示テキスト
57
+ * @param alias 読み上げテキスト
58
+ */
59
+ sub(content: string, alias: string): this;
60
+ /**
61
+ * 音声を指定(プロバイダー依存)
62
+ */
63
+ voice(content: string, config: Partial<VoiceConfig>): this;
64
+ /**
65
+ * 段落を追加
66
+ */
67
+ paragraph(content: string): this;
68
+ /**
69
+ * 文を追加
70
+ */
71
+ sentence(content: string): this;
72
+ /**
73
+ * 話し方スタイルを指定(Azureなど一部プロバイダー)
74
+ */
75
+ style(content: string, styleName: SpeakingStyle, degree?: number): this;
76
+ /**
77
+ * セグメントからSSMLを構築
78
+ */
79
+ fromSegments(segments: TextSegment[]): this;
80
+ /**
81
+ * SSMLを終了
82
+ */
83
+ end(): this;
84
+ /**
85
+ * SSMLを構築
86
+ */
87
+ build(): string;
88
+ /**
89
+ * プレーンテキストに変換
90
+ */
91
+ toPlainText(): string;
92
+ /**
93
+ * XMLをエスケープ
94
+ */
95
+ private escapeXml;
96
+ }
97
+ /**
98
+ * シンプルなSSML構築関数
99
+ */
100
+ export declare function buildSSML(text: string, options?: {
101
+ language?: string;
102
+ rate?: number;
103
+ pitch?: number;
104
+ volume?: number;
105
+ pauses?: boolean;
106
+ }): string;
107
+ /**
108
+ * テキストをSSMLセグメントに分割
109
+ */
110
+ export declare function segmentText(text: string, options?: {
111
+ maxLength?: number;
112
+ preserveSentences?: boolean;
113
+ }): string[];
114
+ //# sourceMappingURL=SSMLBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSMLBuilder.d.ts","sourceRoot":"","sources":["../../src/audio/SSMLBuilder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE1E;;GAEG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,QAAQ,SAAU;IAI9B;;OAEG;IACH,KAAK,IAAI,IAAI;IAMb;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B;;;OAGG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAStC;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,QAAQ,GAAG,UAAU,GAAG,SAAsB,GAAG,IAAI;IAKtF;;OAEG;IACH,OAAO,CACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;KAC1B,GACA,IAAI;IAiBP;;;;;OAKG;IACH,KAAK,CACH,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,EAChG,MAAM,CAAC,EAAE,MAAM,GACd,IAAI;IAMP;;;;OAIG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,GAAE,KAAK,GAAG,SAAiB,GAAG,IAAI;IAK/E;;;;OAIG;IACH,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAU1D;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMvE;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI;IA6B3C;;OAEG;IACH,GAAG,IAAI,IAAI;IAKX;;OAEG;IACH,KAAK,IAAI,MAAM;IAUf;;OAEG;IACH,WAAW,IAAI,MAAM;IAQrB;;OAEG;IACH,OAAO,CAAC,SAAS;CAQlB;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,MAAM,CA2BT;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,GAAG,MAAM,EAAE,CAgCX"}
@@ -0,0 +1,269 @@
1
+ /**
2
+ * SSML Builder
3
+ * SSML(Speech Synthesis Markup Language)構築ユーティリティ
4
+ * REQ-MEDIA-005-001: テキスト音声変換
5
+ */
6
+ /**
7
+ * SSMLビルダークラス
8
+ */
9
+ export class SSMLBuilder {
10
+ elements = [];
11
+ lang;
12
+ constructor(language = 'ja-JP') {
13
+ this.lang = language;
14
+ }
15
+ /**
16
+ * SSMLドキュメントを開始
17
+ */
18
+ start() {
19
+ this.elements = [];
20
+ this.elements.push(`<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xml:lang="${this.lang}">`);
21
+ return this;
22
+ }
23
+ /**
24
+ * テキストを追加
25
+ */
26
+ text(content) {
27
+ this.elements.push(this.escapeXml(content));
28
+ return this;
29
+ }
30
+ /**
31
+ * ポーズを追加
32
+ * @param duration ミリ秒またはstrength ('none', 'x-weak', 'weak', 'medium', 'strong', 'x-strong')
33
+ */
34
+ pause(duration) {
35
+ if (typeof duration === 'number') {
36
+ this.elements.push(`<break time="${duration}ms"/>`);
37
+ }
38
+ else {
39
+ this.elements.push(`<break strength="${duration}"/>`);
40
+ }
41
+ return this;
42
+ }
43
+ /**
44
+ * 強調を追加
45
+ * @param content テキスト
46
+ * @param level 強調レベル ('strong', 'moderate', 'reduced')
47
+ */
48
+ emphasis(content, level = 'moderate') {
49
+ this.elements.push(`<emphasis level="${level}">${this.escapeXml(content)}</emphasis>`);
50
+ return this;
51
+ }
52
+ /**
53
+ * 韻律(話速、ピッチ、音量)を設定
54
+ */
55
+ prosody(content, options) {
56
+ const attrs = [];
57
+ if (options.rate !== undefined) {
58
+ attrs.push(`rate="${typeof options.rate === 'number' ? options.rate + '%' : options.rate}"`);
59
+ }
60
+ if (options.pitch !== undefined) {
61
+ attrs.push(`pitch="${typeof options.pitch === 'number' ? options.pitch + 'Hz' : options.pitch}"`);
62
+ }
63
+ if (options.volume !== undefined) {
64
+ attrs.push(`volume="${typeof options.volume === 'number' ? options.volume + 'dB' : options.volume}"`);
65
+ }
66
+ this.elements.push(`<prosody ${attrs.join(' ')}>${this.escapeXml(content)}</prosody>`);
67
+ return this;
68
+ }
69
+ /**
70
+ * 読み方を指定
71
+ * @param content テキスト
72
+ * @param interpretAs 読み方タイプ ('cardinal', 'ordinal', 'characters', 'spell-out', 'date', 'time', 'telephone')
73
+ * @param format フォーマット(日付の場合: 'mdy', 'dmy', 'ymd' など)
74
+ */
75
+ sayAs(content, interpretAs, format) {
76
+ const formatAttr = format ? ` format="${format}"` : '';
77
+ this.elements.push(`<say-as interpret-as="${interpretAs}"${formatAttr}>${this.escapeXml(content)}</say-as>`);
78
+ return this;
79
+ }
80
+ /**
81
+ * 発音を指定
82
+ * @param content 表示テキスト
83
+ * @param ph 発音(IPA)
84
+ */
85
+ phoneme(content, ph, alphabet = 'ipa') {
86
+ this.elements.push(`<phoneme alphabet="${alphabet}" ph="${this.escapeXml(ph)}">${this.escapeXml(content)}</phoneme>`);
87
+ return this;
88
+ }
89
+ /**
90
+ * 読み替えを指定
91
+ * @param content 表示テキスト
92
+ * @param alias 読み上げテキスト
93
+ */
94
+ sub(content, alias) {
95
+ this.elements.push(`<sub alias="${this.escapeXml(alias)}">${this.escapeXml(content)}</sub>`);
96
+ return this;
97
+ }
98
+ /**
99
+ * 音声を指定(プロバイダー依存)
100
+ */
101
+ voice(content, config) {
102
+ const attrs = [];
103
+ if (config.voiceName)
104
+ attrs.push(`name="${config.voiceName}"`);
105
+ if (config.language)
106
+ attrs.push(`xml:lang="${config.language}"`);
107
+ if (config.gender)
108
+ attrs.push(`gender="${config.gender}"`);
109
+ this.elements.push(`<voice ${attrs.join(' ')}>${this.escapeXml(content)}</voice>`);
110
+ return this;
111
+ }
112
+ /**
113
+ * 段落を追加
114
+ */
115
+ paragraph(content) {
116
+ this.elements.push(`<p>${this.escapeXml(content)}</p>`);
117
+ return this;
118
+ }
119
+ /**
120
+ * 文を追加
121
+ */
122
+ sentence(content) {
123
+ this.elements.push(`<s>${this.escapeXml(content)}</s>`);
124
+ return this;
125
+ }
126
+ /**
127
+ * 話し方スタイルを指定(Azureなど一部プロバイダー)
128
+ */
129
+ style(content, styleName, degree) {
130
+ const degreeAttr = degree !== undefined ? ` styledegree="${degree}"` : '';
131
+ this.elements.push(`<mstts:express-as style="${styleName}"${degreeAttr}>${this.escapeXml(content)}</mstts:express-as>`);
132
+ return this;
133
+ }
134
+ /**
135
+ * セグメントからSSMLを構築
136
+ */
137
+ fromSegments(segments) {
138
+ this.start();
139
+ for (const segment of segments) {
140
+ // 前のポーズ
141
+ if (segment.pauseBefore) {
142
+ this.pause(segment.pauseBefore);
143
+ }
144
+ // 音声設定がある場合
145
+ if (segment.voice) {
146
+ this.prosody(segment.text, {
147
+ rate: segment.voice.speed,
148
+ pitch: segment.voice.pitch,
149
+ volume: segment.voice.volume,
150
+ });
151
+ }
152
+ else {
153
+ this.text(segment.text);
154
+ }
155
+ // 後のポーズ
156
+ if (segment.pauseAfter) {
157
+ this.pause(segment.pauseAfter);
158
+ }
159
+ }
160
+ return this;
161
+ }
162
+ /**
163
+ * SSMLを終了
164
+ */
165
+ end() {
166
+ this.elements.push('</speak>');
167
+ return this;
168
+ }
169
+ /**
170
+ * SSMLを構築
171
+ */
172
+ build() {
173
+ if (!this.elements[0]?.startsWith('<speak')) {
174
+ this.start();
175
+ }
176
+ if (!this.elements[this.elements.length - 1]?.includes('</speak>')) {
177
+ this.end();
178
+ }
179
+ return this.elements.join('');
180
+ }
181
+ /**
182
+ * プレーンテキストに変換
183
+ */
184
+ toPlainText() {
185
+ const ssml = this.build();
186
+ return ssml
187
+ .replace(/<[^>]+>/g, '')
188
+ .replace(/\s+/g, ' ')
189
+ .trim();
190
+ }
191
+ /**
192
+ * XMLをエスケープ
193
+ */
194
+ escapeXml(text) {
195
+ return text
196
+ .replace(/&/g, '&amp;')
197
+ .replace(/</g, '&lt;')
198
+ .replace(/>/g, '&gt;')
199
+ .replace(/"/g, '&quot;')
200
+ .replace(/'/g, '&apos;');
201
+ }
202
+ }
203
+ /**
204
+ * シンプルなSSML構築関数
205
+ */
206
+ export function buildSSML(text, options) {
207
+ const builder = new SSMLBuilder(options?.language ?? 'ja-JP');
208
+ builder.start();
209
+ // 韻律設定がある場合
210
+ if (options?.rate || options?.pitch || options?.volume) {
211
+ builder.prosody(text, {
212
+ rate: options.rate,
213
+ pitch: options.pitch,
214
+ volume: options.volume,
215
+ });
216
+ }
217
+ else if (options?.pauses) {
218
+ // 句読点でポーズを入れる
219
+ const sentences = text.split(/([。.!?\.\!\?])/);
220
+ sentences.forEach((part) => {
221
+ if (part.match(/[。.!?\.\!\?]/)) {
222
+ builder.text(part);
223
+ builder.pause(500);
224
+ }
225
+ else if (part.trim()) {
226
+ builder.text(part);
227
+ }
228
+ });
229
+ }
230
+ else {
231
+ builder.text(text);
232
+ }
233
+ return builder.build();
234
+ }
235
+ /**
236
+ * テキストをSSMLセグメントに分割
237
+ */
238
+ export function segmentText(text, options) {
239
+ const maxLength = options?.maxLength ?? 5000;
240
+ if (text.length <= maxLength) {
241
+ return [text];
242
+ }
243
+ const segments = [];
244
+ if (options?.preserveSentences) {
245
+ // 文単位で分割
246
+ const sentences = text.split(/(?<=[。.!?\.\!\?])\s*/);
247
+ let current = '';
248
+ for (const sentence of sentences) {
249
+ if ((current + sentence).length > maxLength) {
250
+ if (current)
251
+ segments.push(current);
252
+ current = sentence;
253
+ }
254
+ else {
255
+ current += sentence;
256
+ }
257
+ }
258
+ if (current)
259
+ segments.push(current);
260
+ }
261
+ else {
262
+ // 単純に長さで分割
263
+ for (let i = 0; i < text.length; i += maxLength) {
264
+ segments.push(text.slice(i, i + maxLength));
265
+ }
266
+ }
267
+ return segments;
268
+ }
269
+ //# sourceMappingURL=SSMLBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SSMLBuilder.js","sourceRoot":"","sources":["../../src/audio/SSMLBuilder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Audio Module - 音声生成モジュール
3
+ * REQ-MEDIA-005: 音声/ポッドキャスト生成
4
+ */
5
+ export type { AudioProvider, AudioFormat, AudioQuality, VoiceGender, SpeakingStyle, LanguageCode, VoiceConfig, TTSOptions, SSMLElement, TextSegment, PodcastSpeaker, PodcastSegment, PodcastScript, AudioBuffer, GeneratedAudio, AudioMetadata, AvailableVoice, AudioGeneratorOptions, } from './types.js';
6
+ export { PRESET_VOICES, QUALITY_PRESETS, DEFAULT_TTS_OPTIONS, AUDIO_ERROR_CODES, AudioGeneratorError, } from './types.js';
7
+ export { SSMLBuilder, buildSSML, segmentText } from './SSMLBuilder.js';
8
+ export { AudioGenerator } from './AudioGenerator.js';
9
+ export { default } from './AudioGenerator.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/audio/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,YAAY,EACV,aAAa,EACb,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,cAAc,EACd,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Audio Module - 音声生成モジュール
3
+ * REQ-MEDIA-005: 音声/ポッドキャスト生成
4
+ */
5
+ // 定数
6
+ export { PRESET_VOICES, QUALITY_PRESETS, DEFAULT_TTS_OPTIONS, AUDIO_ERROR_CODES, AudioGeneratorError, } from './types.js';
7
+ // SSMLビルダー
8
+ export { SSMLBuilder, buildSSML, segmentText } from './SSMLBuilder.js';
9
+ // メインクラス
10
+ export { AudioGenerator } from './AudioGenerator.js';
11
+ export { default } from './AudioGenerator.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/audio/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAwBH,KAAK;AACL,OAAO,EACL,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEvE,SAAS;AACT,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}