@kajidog/voicevox-client 0.0.3-pre.4 → 0.3.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/LICENSE +15 -0
- package/README.md +174 -10
- package/dist/api.d.ts +8 -3
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +42 -20
- package/dist/api.js.map +1 -1
- package/dist/client.d.ts +73 -120
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +301 -178
- package/dist/client.js.map +1 -1
- package/dist/error.d.ts +29 -31
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +54 -48
- package/dist/error.js.map +1 -1
- package/dist/index.d.ts +11 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -4
- package/dist/index.js.map +1 -1
- package/dist/playback/index.d.ts +4 -0
- package/dist/playback/index.d.ts.map +1 -0
- package/dist/playback/index.js +10 -0
- package/dist/playback/index.js.map +1 -0
- package/dist/playback/playback-service.d.ts +56 -0
- package/dist/playback/playback-service.d.ts.map +1 -0
- package/dist/playback/playback-service.js +128 -0
- package/dist/playback/playback-service.js.map +1 -0
- package/dist/playback/playback-strategy.d.ts +33 -0
- package/dist/playback/playback-strategy.d.ts.map +1 -0
- package/dist/playback/playback-strategy.js +382 -0
- package/dist/playback/playback-strategy.js.map +1 -0
- package/dist/playback/types.d.ts +49 -0
- package/dist/playback/types.d.ts.map +1 -0
- package/dist/playback/types.js +3 -0
- package/dist/playback/types.js.map +1 -0
- package/dist/queue/audio-generator.d.ts +32 -4
- package/dist/queue/audio-generator.d.ts.map +1 -1
- package/dist/queue/audio-generator.js +53 -3
- package/dist/queue/audio-generator.js.map +1 -1
- package/dist/queue/event-manager.d.ts +1 -1
- package/dist/queue/event-manager.d.ts.map +1 -1
- package/dist/queue/event-manager.js +5 -5
- package/dist/queue/event-manager.js.map +1 -1
- package/dist/queue/file-manager.d.ts +1 -0
- package/dist/queue/file-manager.d.ts.map +1 -1
- package/dist/queue/file-manager.js +52 -58
- package/dist/queue/file-manager.js.map +1 -1
- package/dist/queue/index.d.ts +6 -6
- package/dist/queue/index.d.ts.map +1 -1
- package/dist/queue/index.js +2 -2
- package/dist/queue/index.js.map +1 -1
- package/dist/queue/prefetch-manager.d.ts +48 -0
- package/dist/queue/prefetch-manager.d.ts.map +1 -0
- package/dist/queue/prefetch-manager.js +84 -0
- package/dist/queue/prefetch-manager.js.map +1 -0
- package/dist/queue/queue-service.d.ts +129 -0
- package/dist/queue/queue-service.d.ts.map +1 -0
- package/dist/queue/queue-service.js +391 -0
- package/dist/queue/queue-service.js.map +1 -0
- package/dist/queue/types.d.ts +12 -12
- package/dist/queue/types.d.ts.map +1 -1
- package/dist/queue/types.js.map +1 -1
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +11 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/item-state-machine.d.ts +48 -0
- package/dist/state/item-state-machine.d.ts.map +1 -0
- package/dist/state/item-state-machine.js +101 -0
- package/dist/state/item-state-machine.js.map +1 -0
- package/dist/state/queue-state-machine.d.ts +71 -0
- package/dist/state/queue-state-machine.d.ts.map +1 -0
- package/dist/state/queue-state-machine.js +250 -0
- package/dist/state/queue-state-machine.js.map +1 -0
- package/dist/state/types.d.ts +87 -0
- package/dist/state/types.d.ts.map +1 -0
- package/dist/state/types.js +27 -0
- package/dist/state/types.js.map +1 -0
- package/dist/types.d.ts +34 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -13
- package/dist/utils.js.map +1 -1
- package/package.json +82 -84
- package/dist/player.d.ts +0 -97
- package/dist/player.d.ts.map +0 -1
- package/dist/player.js +0 -177
- package/dist/player.js.map +0 -1
- package/dist/queue/audio-player.d.ts +0 -31
- package/dist/queue/audio-player.d.ts.map +0 -1
- package/dist/queue/audio-player.js +0 -256
- package/dist/queue/audio-player.js.map +0 -1
- package/dist/queue/manager.d.ts +0 -136
- package/dist/queue/manager.d.ts.map +0 -1
- package/dist/queue/manager.js +0 -474
- package/dist/queue/manager.js.map +0 -1
package/LICENSE
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 kajidog
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
+
purpose with or without fee is hereby granted, provided that the above
|
|
7
|
+
copyright notice and this permission notice appear in all copies.
|
|
8
|
+
|
|
9
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
10
|
+
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
11
|
+
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
12
|
+
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
13
|
+
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
14
|
+
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
15
|
+
PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
CHANGED
|
@@ -21,10 +21,17 @@ const client = new VoicevoxClient({
|
|
|
21
21
|
});
|
|
22
22
|
|
|
23
23
|
// Simple text-to-speech
|
|
24
|
-
await client.speak('
|
|
24
|
+
await client.speak('Hello, world!');
|
|
25
|
+
|
|
26
|
+
// With options
|
|
27
|
+
await client.speak('Hello, world!', {
|
|
28
|
+
speaker: 3,
|
|
29
|
+
speedScale: 1.2,
|
|
30
|
+
waitForEnd: true // Wait for playback to complete
|
|
31
|
+
});
|
|
25
32
|
|
|
26
33
|
// Generate audio file
|
|
27
|
-
const filePath = await client.generateAudioFile('
|
|
34
|
+
const filePath = await client.generateAudioFile('Test message', './output.wav');
|
|
28
35
|
|
|
29
36
|
// Get available speakers
|
|
30
37
|
const speakers = await client.getSpeakers();
|
|
@@ -34,6 +41,7 @@ const speakers = await client.getSpeakers();
|
|
|
34
41
|
|
|
35
42
|
- **Text-to-Speech Synthesis**: Convert text to speech with multiple speaker voices
|
|
36
43
|
- **Audio Queue Management**: Efficient queue-based audio processing and playback
|
|
44
|
+
- **Streaming Playback**: Direct buffer playback via ffplay (no temp files)
|
|
37
45
|
- **Cross-platform Audio Playback**: Native audio playback support without external dependencies
|
|
38
46
|
- **macOS**: Uses built-in `afplay` command
|
|
39
47
|
- **Windows**: Uses PowerShell MediaPlayer with optimized timing
|
|
@@ -41,6 +49,7 @@ const speakers = await client.getSpeakers();
|
|
|
41
49
|
- **File Generation**: Generate WAV audio files from text
|
|
42
50
|
- **Speaker Management**: Get information about available speakers and voices
|
|
43
51
|
- **Flexible Input**: Support for single text, text arrays, and speech segments
|
|
52
|
+
- **Advanced Playback Control**: Immediate playback, synchronous/asynchronous control
|
|
44
53
|
- **Lightweight**: No external audio dependencies - uses platform-native tools
|
|
45
54
|
|
|
46
55
|
## API Reference
|
|
@@ -50,18 +59,160 @@ const speakers = await client.getSpeakers();
|
|
|
50
59
|
Main client class for interacting with VOICEVOX engine.
|
|
51
60
|
|
|
52
61
|
#### Constructor
|
|
62
|
+
|
|
53
63
|
```typescript
|
|
54
64
|
new VoicevoxClient(config: VoicevoxConfig)
|
|
55
65
|
```
|
|
56
66
|
|
|
67
|
+
**VoicevoxConfig:**
|
|
68
|
+
|
|
69
|
+
```typescript
|
|
70
|
+
interface VoicevoxConfig {
|
|
71
|
+
url: string; // VOICEVOX engine URL
|
|
72
|
+
defaultSpeaker?: number; // Default speaker ID (default: 1)
|
|
73
|
+
defaultSpeedScale?: number; // Default playback speed (default: 1.0)
|
|
74
|
+
defaultPlaybackOptions?: PlaybackOptions; // Default playback options
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
57
78
|
#### Methods
|
|
58
79
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
80
|
+
##### speak
|
|
81
|
+
|
|
82
|
+
Convert text to speech and play it.
|
|
83
|
+
|
|
84
|
+
```typescript
|
|
85
|
+
speak(
|
|
86
|
+
input: string | string[] | SpeechSegment[],
|
|
87
|
+
options?: SpeakOptions
|
|
88
|
+
): Promise<string>
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**SpeakOptions:**
|
|
92
|
+
|
|
93
|
+
```typescript
|
|
94
|
+
interface SpeakOptions {
|
|
95
|
+
speaker?: number; // Speaker ID
|
|
96
|
+
speedScale?: number; // Playback speed
|
|
97
|
+
immediate?: boolean; // Start playback immediately (default: true)
|
|
98
|
+
waitForStart?: boolean; // Wait for playback to start (default: false)
|
|
99
|
+
waitForEnd?: boolean; // Wait for playback to end (default: false)
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
**Examples:**
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// Simple text
|
|
107
|
+
await client.speak('Hello');
|
|
108
|
+
|
|
109
|
+
// Multiple texts as array
|
|
110
|
+
await client.speak(['Hello', 'How are you?']);
|
|
111
|
+
|
|
112
|
+
// Speech segments with different speakers
|
|
113
|
+
await client.speak([
|
|
114
|
+
{ text: 'Hello', speaker: 1 },
|
|
115
|
+
{ text: 'Nice to meet you', speaker: 3 }
|
|
116
|
+
]);
|
|
117
|
+
|
|
118
|
+
// With options
|
|
119
|
+
await client.speak('Important message', {
|
|
120
|
+
speaker: 2,
|
|
121
|
+
speedScale: 1.5,
|
|
122
|
+
immediate: true,
|
|
123
|
+
waitForEnd: true
|
|
124
|
+
});
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
##### generateQuery
|
|
128
|
+
|
|
129
|
+
Generate an AudioQuery for voice synthesis.
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
generateQuery(
|
|
133
|
+
text: string,
|
|
134
|
+
speaker?: number,
|
|
135
|
+
speedScale?: number
|
|
136
|
+
): Promise<AudioQuery>
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
##### generateAudioFile
|
|
140
|
+
|
|
141
|
+
Generate an audio file from text or AudioQuery.
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
generateAudioFile(
|
|
145
|
+
textOrQuery: string | AudioQuery,
|
|
146
|
+
outputPath?: string,
|
|
147
|
+
speaker?: number,
|
|
148
|
+
speedScale?: number
|
|
149
|
+
): Promise<string>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
##### enqueueAudioGeneration
|
|
153
|
+
|
|
154
|
+
Add text or query to the audio generation queue.
|
|
155
|
+
|
|
156
|
+
```typescript
|
|
157
|
+
enqueueAudioGeneration(
|
|
158
|
+
input: string | string[] | SpeechSegment[] | AudioQuery,
|
|
159
|
+
options?: SpeakOptions
|
|
160
|
+
): Promise<string>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
##### Other Methods
|
|
164
|
+
|
|
165
|
+
- `getSpeakers(): Promise<Speaker[]>` - Get list of available speakers
|
|
166
|
+
- `getSpeakerInfo(uuid: string): Promise<SpeakerInfo>` - Get speaker details
|
|
167
|
+
- `clearQueue(): Promise<void>` - Clear the playback queue
|
|
168
|
+
- `startPlayback(): void` - Start queue playback
|
|
169
|
+
- `pausePlayback(): void` - Pause queue playback
|
|
170
|
+
- `resumePlayback(): void` - Resume queue playback
|
|
171
|
+
- `getQueueLength(): number` - Get number of items in queue
|
|
172
|
+
- `isQueueEmpty(): boolean` - Check if queue is empty
|
|
173
|
+
- `isPlaying(): boolean` - Check if currently playing
|
|
174
|
+
|
|
175
|
+
## Playback Options
|
|
176
|
+
|
|
177
|
+
### Immediate Playback (`immediate: true`)
|
|
178
|
+
|
|
179
|
+
Clear existing queue and play audio immediately:
|
|
180
|
+
|
|
181
|
+
```typescript
|
|
182
|
+
// Stops current playback, clears queue, and plays new audio
|
|
183
|
+
await client.speak('Urgent notification', {
|
|
184
|
+
immediate: true,
|
|
185
|
+
waitForEnd: true
|
|
186
|
+
});
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
### Synchronous Playback (`waitForEnd: true`)
|
|
190
|
+
|
|
191
|
+
Wait for playback to complete before continuing:
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
// Step-by-step audio guide
|
|
195
|
+
await client.speak('Step 1: Open the file', { waitForEnd: true });
|
|
196
|
+
await client.speak('Step 2: Click the button', { waitForEnd: true });
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Queue-based Playback (`immediate: false`)
|
|
200
|
+
|
|
201
|
+
Add to queue without auto-starting:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
client.speak('First message', { immediate: false });
|
|
205
|
+
client.speak('Second message', { immediate: false });
|
|
206
|
+
client.startPlayback(); // Start playing queue
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## Streaming Playback
|
|
210
|
+
|
|
211
|
+
When `ffplay` is available, the library can play audio directly from memory without creating temporary files:
|
|
212
|
+
|
|
213
|
+
- Faster first audio playback (no disk I/O)
|
|
214
|
+
- Reduced disk usage
|
|
215
|
+
- Can be disabled via environment variable: `VOICEVOX_STREAMING_PLAYBACK=false`
|
|
65
216
|
|
|
66
217
|
## Audio Requirements
|
|
67
218
|
|
|
@@ -75,6 +226,19 @@ The package uses platform-native audio tools for playback:
|
|
|
75
226
|
- `play` (SoX)
|
|
76
227
|
- `ffplay` (FFmpeg)
|
|
77
228
|
|
|
229
|
+
For streaming playback (optional):
|
|
230
|
+
- Install `ffmpeg` which includes `ffplay`
|
|
231
|
+
|
|
232
|
+
## Environment Variables
|
|
233
|
+
|
|
234
|
+
- `VOICEVOX_URL`: VOICEVOX engine URL (default: `http://localhost:50021`)
|
|
235
|
+
- `VOICEVOX_DEFAULT_SPEAKER`: Default speaker ID (default: `1`)
|
|
236
|
+
- `VOICEVOX_DEFAULT_SPEED_SCALE`: Default playback speed (default: `1.0`)
|
|
237
|
+
- `VOICEVOX_DEFAULT_IMMEDIATE`: Start playback immediately (default: `true`)
|
|
238
|
+
- `VOICEVOX_DEFAULT_WAIT_FOR_START`: Wait for playback start (default: `false`)
|
|
239
|
+
- `VOICEVOX_DEFAULT_WAIT_FOR_END`: Wait for playback end (default: `false`)
|
|
240
|
+
- `VOICEVOX_STREAMING_PLAYBACK`: Enable streaming playback (default: `true`)
|
|
241
|
+
|
|
78
242
|
## Development
|
|
79
243
|
|
|
80
244
|
This package is part of the MCP VOICEVOX project. For development:
|
|
@@ -89,10 +253,10 @@ npm run build
|
|
|
89
253
|
# Run tests (includes audio playback mocking)
|
|
90
254
|
npm test
|
|
91
255
|
|
|
92
|
-
# Type checking
|
|
256
|
+
# Type checking and linting
|
|
93
257
|
npm run lint
|
|
94
258
|
```
|
|
95
259
|
|
|
96
260
|
## License
|
|
97
261
|
|
|
98
|
-
MIT License
|
|
262
|
+
MIT License
|
package/dist/api.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AudioQuery, Speaker } from
|
|
1
|
+
import type { AudioQuery, Speaker } from './types';
|
|
2
2
|
export declare class VoicevoxApi {
|
|
3
3
|
private readonly baseUrl;
|
|
4
4
|
constructor(baseUrl: string);
|
|
@@ -23,9 +23,14 @@ export declare class VoicevoxApi {
|
|
|
23
23
|
*/
|
|
24
24
|
getSpeakerInfo(uuid: string): Promise<Speaker>;
|
|
25
25
|
/**
|
|
26
|
-
*
|
|
27
|
-
* @
|
|
26
|
+
* VOICEVOX Engine の接続状態をチェック
|
|
27
|
+
* @returns 接続情報(connected, version, url)
|
|
28
28
|
*/
|
|
29
|
+
checkHealth(): Promise<{
|
|
30
|
+
connected: boolean;
|
|
31
|
+
version?: string;
|
|
32
|
+
url: string;
|
|
33
|
+
}>;
|
|
29
34
|
private makeRequest;
|
|
30
35
|
/**
|
|
31
36
|
* URLの正規化
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAElD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEhC,YAAY,OAAO,EAAE,MAAM,EAE1B;IAED;;OAEG;IACU,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAWzE;IAED;;OAEG;IACU,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,SAAI,GAAG,OAAO,CAAC,WAAW,CAAC,CAe5E;IAED;;OAEG;IACU,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkB9G;IAED;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAW7C;IAED;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAW1D;IAED;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAezF;YAMa,WAAW;IAoCzB;;;OAGG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
package/dist/api.js
CHANGED
|
@@ -7,6 +7,7 @@ exports.VoicevoxApi = void 0;
|
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
8
|
const error_1 = require("./error");
|
|
9
9
|
class VoicevoxApi {
|
|
10
|
+
baseUrl;
|
|
10
11
|
constructor(baseUrl) {
|
|
11
12
|
this.baseUrl = this.normalizeUrl(baseUrl);
|
|
12
13
|
}
|
|
@@ -16,13 +17,13 @@ class VoicevoxApi {
|
|
|
16
17
|
async generateQuery(text, speaker = 1) {
|
|
17
18
|
try {
|
|
18
19
|
const endpoint = `/audio_query?text=${encodeURIComponent(text)}&speaker=${encodeURIComponent(speaker.toString())}`;
|
|
19
|
-
const query = await this.makeRequest(
|
|
20
|
-
|
|
20
|
+
const query = await this.makeRequest('post', endpoint, null, {
|
|
21
|
+
'Content-Type': 'application/json',
|
|
21
22
|
});
|
|
22
23
|
return query;
|
|
23
24
|
}
|
|
24
25
|
catch (error) {
|
|
25
|
-
throw (0, error_1.handleError)(
|
|
26
|
+
throw (0, error_1.handleError)('音声クエリ生成中にエラーが発生しました', error);
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
/**
|
|
@@ -30,13 +31,13 @@ class VoicevoxApi {
|
|
|
30
31
|
*/
|
|
31
32
|
async synthesize(query, speaker = 1) {
|
|
32
33
|
try {
|
|
33
|
-
return await this.makeRequest(
|
|
34
|
-
|
|
35
|
-
Accept:
|
|
36
|
-
},
|
|
34
|
+
return await this.makeRequest('post', `/synthesis?speaker=${encodeURIComponent(speaker.toString())}`, query, {
|
|
35
|
+
'Content-Type': 'application/json',
|
|
36
|
+
Accept: 'audio/wav',
|
|
37
|
+
}, 'arraybuffer');
|
|
37
38
|
}
|
|
38
39
|
catch (error) {
|
|
39
|
-
throw (0, error_1.handleError)(
|
|
40
|
+
throw (0, error_1.handleError)('音声合成中にエラーが発生しました', error);
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
@@ -48,13 +49,13 @@ class VoicevoxApi {
|
|
|
48
49
|
if (coreVersion) {
|
|
49
50
|
endpoint += `&core_version=${encodeURIComponent(coreVersion)}`;
|
|
50
51
|
}
|
|
51
|
-
const query = await this.makeRequest(
|
|
52
|
-
|
|
52
|
+
const query = await this.makeRequest('post', endpoint, null, {
|
|
53
|
+
'Content-Type': 'application/json',
|
|
53
54
|
});
|
|
54
55
|
return query;
|
|
55
56
|
}
|
|
56
57
|
catch (error) {
|
|
57
|
-
throw (0, error_1.handleError)(
|
|
58
|
+
throw (0, error_1.handleError)('プリセットを使用した音声クエリ生成中にエラーが発生しました', error);
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
/**
|
|
@@ -62,14 +63,14 @@ class VoicevoxApi {
|
|
|
62
63
|
*/
|
|
63
64
|
async getSpeakers() {
|
|
64
65
|
try {
|
|
65
|
-
const endpoint =
|
|
66
|
-
const response = await this.makeRequest(
|
|
67
|
-
|
|
66
|
+
const endpoint = '/speakers';
|
|
67
|
+
const response = await this.makeRequest('get', endpoint, null, {
|
|
68
|
+
'Content-Type': 'application/json',
|
|
68
69
|
});
|
|
69
70
|
return response;
|
|
70
71
|
}
|
|
71
72
|
catch (error) {
|
|
72
|
-
throw (0, error_1.handleError)(
|
|
73
|
+
throw (0, error_1.handleError)('スピーカー一覧取得中にエラーが発生しました', error);
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
/**
|
|
@@ -78,20 +79,41 @@ class VoicevoxApi {
|
|
|
78
79
|
async getSpeakerInfo(uuid) {
|
|
79
80
|
try {
|
|
80
81
|
const endpoint = `/speaker_info?speaker_uuid=${encodeURIComponent(uuid)}`;
|
|
81
|
-
const response = await this.makeRequest(
|
|
82
|
-
|
|
82
|
+
const response = await this.makeRequest('get', endpoint, null, {
|
|
83
|
+
'Content-Type': 'application/json',
|
|
83
84
|
});
|
|
84
85
|
return response;
|
|
85
86
|
}
|
|
86
87
|
catch (error) {
|
|
87
|
-
throw (0, error_1.handleError)(
|
|
88
|
+
throw (0, error_1.handleError)('スピーカー情報取得中にエラーが発生しました', error);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* VOICEVOX Engine の接続状態をチェック
|
|
93
|
+
* @returns 接続情報(connected, version, url)
|
|
94
|
+
*/
|
|
95
|
+
async checkHealth() {
|
|
96
|
+
try {
|
|
97
|
+
// /version エンドポイントを使用(軽量)
|
|
98
|
+
const version = await this.makeRequest('get', '/version');
|
|
99
|
+
return {
|
|
100
|
+
connected: true,
|
|
101
|
+
version,
|
|
102
|
+
url: this.baseUrl,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return {
|
|
107
|
+
connected: false,
|
|
108
|
+
url: this.baseUrl,
|
|
109
|
+
};
|
|
88
110
|
}
|
|
89
111
|
}
|
|
90
112
|
/**
|
|
91
113
|
* APIリクエストを実行
|
|
92
114
|
* @private
|
|
93
115
|
*/
|
|
94
|
-
async makeRequest(method, endpoint, data = null, headers = {}, responseType =
|
|
116
|
+
async makeRequest(method, endpoint, data = null, headers = {}, responseType = 'json') {
|
|
95
117
|
try {
|
|
96
118
|
const url = `${this.baseUrl}${endpoint}`;
|
|
97
119
|
const config = {
|
|
@@ -120,7 +142,7 @@ class VoicevoxApi {
|
|
|
120
142
|
* @private
|
|
121
143
|
*/
|
|
122
144
|
normalizeUrl(url) {
|
|
123
|
-
return url.endsWith(
|
|
145
|
+
return url.endsWith('/') ? url.slice(0, -1) : url;
|
|
124
146
|
}
|
|
125
147
|
}
|
|
126
148
|
exports.VoicevoxApi = VoicevoxApi;
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAsD;AACtD,mCAAuE;AAGvE;IACmB,OAAO,CAAQ;IAEhC,YAAY,OAAe,EAAE;QAC3B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;IAAA,CAC1C;IAED;;OAEG;IACI,KAAK,CAAC,aAAa,CAAC,IAAY,EAAE,OAAO,GAAG,CAAC,EAAuB;QACzE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,YAAY,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAA;YAClH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAa,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvE,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,mBAAW,EAAC,2DAAqB,EAAE,KAAK,CAAC,CAAA;QACjD,CAAC;IAAA,CACF;IAED;;OAEG;IACI,KAAK,CAAC,UAAU,CAAC,KAAiB,EAAE,OAAO,GAAG,CAAC,EAAwB;QAC5E,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAC3B,MAAM,EACN,sBAAsB,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAC9D,KAAK,EACL;gBACE,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,WAAW;aACpB,EACD,aAAa,CACd,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,mBAAW,EAAC,kDAAkB,EAAE,KAAK,CAAC,CAAA;QAC9C,CAAC;IAAA,CACF;IAED;;OAEG;IACI,KAAK,CAAC,uBAAuB,CAAC,IAAY,EAAE,QAAgB,EAAE,WAAoB,EAAuB;QAC9G,IAAI,CAAC;YACH,IAAI,QAAQ,GAAG,iCAAiC,kBAAkB,CAChE,IAAI,CACL,cAAc,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAA;YAExD,IAAI,WAAW,EAAE,CAAC;gBAChB,QAAQ,IAAI,iBAAiB,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAA;YAChE,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAa,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACvE,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAA;YAEF,OAAO,KAAK,CAAA;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,mBAAW,EAAC,yFAA+B,EAAE,KAAK,CAAC,CAAA;QAC3D,CAAC;IAAA,CACF;IAED;;OAEG;IACI,KAAK,CAAC,WAAW,GAAuB;QAC7C,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,WAAW,CAAA;YAC5B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAY,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACxE,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,mBAAW,EAAC,iEAAuB,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;IAAA,CACF;IAED;;OAEG;IACI,KAAK,CAAC,cAAc,CAAC,IAAY,EAAoB;QAC1D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAA;YACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAU,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACtE,cAAc,EAAE,kBAAkB;aACnC,CAAC,CAAA;YAEF,OAAO,QAAQ,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,mBAAW,EAAC,iEAAuB,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC;IAAA,CACF;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW,GAAmE;QACzF,IAAI,CAAC;YACH,sDAA0B;YAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAS,KAAK,EAAE,UAAU,CAAC,CAAA;YACjE,OAAO;gBACL,SAAS,EAAE,IAAI;gBACf,OAAO;gBACP,GAAG,EAAE,IAAI,CAAC,OAAO;aAClB,CAAA;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,SAAS,EAAE,KAAK;gBAChB,GAAG,EAAE,IAAI,CAAC,OAAO;aAClB,CAAA;QACH,CAAC;IAAA,CACF;IAED;;;OAGG;IACK,KAAK,CAAC,WAAW,CACvB,MAAsB,EACtB,QAAgB,EAChB,IAAI,GAAQ,IAAI,EAChB,OAAO,GAA2B,EAAE,EACpC,YAAY,GAA2B,MAAM,EACjC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,EAAE,CAAA;YACxC,MAAM,MAAM,GAAuB;gBACjC,MAAM;gBACN,GAAG;gBACH,IAAI;gBACJ,OAAO;gBACP,YAAY;gBACZ,OAAO,EAAE,KAAK;aACf,CAAA;YAED,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC,MAAM,CAAC,CAAA;YAEpC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,IAAI,qBAAa,CACrB,4CAAoB,QAAQ,CAAC,MAAM,EAAE,EACrC,yBAAiB,CAAC,oBAAoB,CACvC,CAAA;YACH,CAAC;YAED,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,MAAM,IAAI,qBAAa,CAAC,4CAAoB,KAAK,CAAC,OAAO,EAAE,EAAE,yBAAiB,CAAC,oBAAoB,CAAC,CAAA;YACtG,CAAC;YACD,MAAM,KAAK,CAAA;QACb,CAAC;IAAA,CACF;IAED;;;OAGG;IACK,YAAY,CAAC,GAAW,EAAU;QACxC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAAA,CAClD;CACF"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,67 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { QueueService } from './queue/queue-service';
|
|
2
|
+
import type { AudioQuery, PlaybackOptions, SpeakResult, SpeechSegment, VoicevoxConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* 話者オプション(統一API用)
|
|
5
|
+
*/
|
|
6
|
+
export interface SpeakOptions extends PlaybackOptions {
|
|
7
|
+
/** 話者ID */
|
|
8
|
+
speaker?: number;
|
|
9
|
+
/** 再生速度 */
|
|
10
|
+
speedScale?: number;
|
|
11
|
+
}
|
|
2
12
|
export declare class VoicevoxClient {
|
|
3
|
-
private readonly
|
|
13
|
+
private readonly queueService;
|
|
4
14
|
private readonly api;
|
|
5
15
|
private readonly defaultSpeaker;
|
|
6
16
|
private readonly defaultSpeedScale;
|
|
17
|
+
private readonly defaultVolumeScale?;
|
|
18
|
+
private readonly defaultPitchScale?;
|
|
19
|
+
private readonly defaultPrePhonemeLength?;
|
|
20
|
+
private readonly defaultPostPhonemeLength?;
|
|
7
21
|
private readonly defaultPlaybackOptions;
|
|
8
22
|
private readonly maxSegmentLength;
|
|
9
23
|
constructor(config: VoicevoxConfig);
|
|
10
24
|
/**
|
|
11
|
-
*
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
* テキストを音声に変換して再生します
|
|
16
|
-
* @param text 変換するテキスト
|
|
17
|
-
* @param speaker 話者ID(オプション)
|
|
18
|
-
* @param speedScale 再生速度(オプション)
|
|
19
|
-
* @returns 処理結果のメッセージ
|
|
20
|
-
*/
|
|
21
|
-
speak(text: string, speaker?: number, speedScale?: number): Promise<string>;
|
|
22
|
-
/**
|
|
23
|
-
* テキスト配列を音声に変換して再生します
|
|
24
|
-
* @param texts 変換するテキストの配列
|
|
25
|
-
* @param speaker 話者ID(オプション、全体のデフォルト)
|
|
26
|
-
* @param speedScale 再生速度(オプション)
|
|
27
|
-
* @returns 処理結果のメッセージ
|
|
28
|
-
*/
|
|
29
|
-
speak(texts: string[], speaker?: number, speedScale?: number): Promise<string>;
|
|
30
|
-
/**
|
|
31
|
-
* テキストと話者のペア配列を音声に変換して再生します
|
|
32
|
-
* @param segments テキストと話者のペア配列
|
|
33
|
-
* @param defaultSpeaker デフォルト話者ID(オプション)
|
|
34
|
-
* @param speedScale 再生速度(オプション)
|
|
35
|
-
* @returns 処理結果のメッセージ
|
|
36
|
-
*/
|
|
37
|
-
speak(segments: SpeechSegment[], defaultSpeaker?: number, speedScale?: number): Promise<string>;
|
|
38
|
-
/**
|
|
39
|
-
* テキストを音声に変換して再生します(オプション付き)
|
|
40
|
-
* @param text 変換するテキスト
|
|
41
|
-
* @param speaker 話者ID(オプション)
|
|
42
|
-
* @param speedScale 再生速度(オプション)
|
|
43
|
-
* @param options 再生オプション
|
|
44
|
-
* @returns 処理結果のメッセージ
|
|
25
|
+
* テキストを音声に変換して再生します(統一API)
|
|
26
|
+
* @param input テキスト、テキスト配列、またはセグメント配列
|
|
27
|
+
* @param options 再生オプション(speaker, speedScale, immediate, waitForStart, waitForEnd)
|
|
28
|
+
* @returns 処理結果
|
|
45
29
|
*/
|
|
46
|
-
speak(
|
|
47
|
-
/**
|
|
48
|
-
* テキスト配列を音声に変換して再生します(オプション付き)
|
|
49
|
-
* @param texts 変換するテキストの配列
|
|
50
|
-
* @param speaker 話者ID(オプション、全体のデフォルト)
|
|
51
|
-
* @param speedScale 再生速度(オプション)
|
|
52
|
-
* @param options 再生オプション
|
|
53
|
-
* @returns 処理結果のメッセージ
|
|
54
|
-
*/
|
|
55
|
-
speak(texts: string[], speaker?: number, speedScale?: number, options?: PlaybackOptions): Promise<string>;
|
|
56
|
-
/**
|
|
57
|
-
* テキストと話者のペア配列を音声に変換して再生します(オプション付き)
|
|
58
|
-
* @param segments テキストと話者のペア配列
|
|
59
|
-
* @param defaultSpeaker デフォルト話者ID(オプション)
|
|
60
|
-
* @param speedScale 再生速度(オプション)
|
|
61
|
-
* @param options 再生オプション
|
|
62
|
-
* @returns 処理結果のメッセージ
|
|
63
|
-
*/
|
|
64
|
-
speak(segments: SpeechSegment[], defaultSpeaker?: number, speedScale?: number, options?: PlaybackOptions): Promise<string>;
|
|
30
|
+
speak(input: string | string[] | SpeechSegment[], options?: SpeakOptions): Promise<SpeakResult>;
|
|
65
31
|
/**
|
|
66
32
|
* 入力を統一フォーマット(SpeechSegment[])に変換
|
|
67
33
|
* @private
|
|
@@ -85,73 +51,12 @@ export declare class VoicevoxClient {
|
|
|
85
51
|
*/
|
|
86
52
|
generateAudioFile(textOrQuery: string | AudioQuery, outputPath?: string, speaker?: number, speedScale?: number): Promise<string>;
|
|
87
53
|
/**
|
|
88
|
-
*
|
|
89
|
-
* @param
|
|
90
|
-
* @param speaker 話者ID(オプション)
|
|
91
|
-
* @param speedScale 再生速度(オプション)
|
|
92
|
-
* @returns 処理結果のメッセージ
|
|
93
|
-
*/
|
|
94
|
-
enqueueAudioGeneration(text: string, speaker?: number, speedScale?: number): Promise<string>;
|
|
95
|
-
/**
|
|
96
|
-
* テキスト配列を音声ファイル生成キューに追加します
|
|
97
|
-
* @param texts テキスト配列
|
|
98
|
-
* @param speaker 話者ID(オプション、全体のデフォルト)
|
|
99
|
-
* @param speedScale 再生速度(オプション)
|
|
100
|
-
* @returns 処理結果のメッセージ
|
|
101
|
-
*/
|
|
102
|
-
enqueueAudioGeneration(texts: string[], speaker?: number, speedScale?: number): Promise<string>;
|
|
103
|
-
/**
|
|
104
|
-
* テキストと話者のペア配列を音声ファイル生成キューに追加します
|
|
105
|
-
* @param segments テキストと話者のペア配列
|
|
106
|
-
* @param defaultSpeaker デフォルト話者ID(オプション)
|
|
107
|
-
* @param speedScale 再生速度(オプション)
|
|
108
|
-
* @returns 処理結果のメッセージ
|
|
109
|
-
*/
|
|
110
|
-
enqueueAudioGeneration(segments: SpeechSegment[], defaultSpeaker?: number, speedScale?: number): Promise<string>;
|
|
111
|
-
/**
|
|
112
|
-
* 音声合成用クエリを音声ファイル生成キューに追加します
|
|
113
|
-
* @param query 音声合成用クエリ
|
|
114
|
-
* @param speaker 話者ID(オプション)
|
|
115
|
-
* @param speedScale 再生速度(オプション)
|
|
116
|
-
* @returns 処理結果のメッセージ
|
|
117
|
-
*/
|
|
118
|
-
enqueueAudioGeneration(query: AudioQuery, speaker?: number, speedScale?: number): Promise<string>;
|
|
119
|
-
/**
|
|
120
|
-
* テキストを音声ファイル生成キューに追加します(オプション付き)
|
|
121
|
-
* @param text テキスト
|
|
122
|
-
* @param speaker 話者ID(オプション)
|
|
123
|
-
* @param speedScale 再生速度(オプション)
|
|
124
|
-
* @param options 再生オプション
|
|
125
|
-
* @returns 処理結果のメッセージ
|
|
126
|
-
*/
|
|
127
|
-
enqueueAudioGeneration(text: string, speaker?: number, speedScale?: number, options?: PlaybackOptions): Promise<string>;
|
|
128
|
-
/**
|
|
129
|
-
* テキスト配列を音声ファイル生成キューに追加します(オプション付き)
|
|
130
|
-
* @param texts テキスト配列
|
|
131
|
-
* @param speaker 話者ID(オプション、全体のデフォルト)
|
|
132
|
-
* @param speedScale 再生速度(オプション)
|
|
54
|
+
* テキストを音声ファイル生成キューに追加します(統一API)
|
|
55
|
+
* @param input テキスト、テキスト配列、セグメント配列、またはAudioQuery
|
|
133
56
|
* @param options 再生オプション
|
|
134
|
-
* @returns
|
|
57
|
+
* @returns 処理結果
|
|
135
58
|
*/
|
|
136
|
-
enqueueAudioGeneration(
|
|
137
|
-
/**
|
|
138
|
-
* テキストと話者のペア配列を音声ファイル生成キューに追加します(オプション付き)
|
|
139
|
-
* @param segments テキストと話者のペア配列
|
|
140
|
-
* @param defaultSpeaker デフォルト話者ID(オプション)
|
|
141
|
-
* @param speedScale 再生速度(オプション)
|
|
142
|
-
* @param options 再生オプション
|
|
143
|
-
* @returns 処理結果のメッセージ
|
|
144
|
-
*/
|
|
145
|
-
enqueueAudioGeneration(segments: SpeechSegment[], defaultSpeaker?: number, speedScale?: number, options?: PlaybackOptions): Promise<string>;
|
|
146
|
-
/**
|
|
147
|
-
* 音声合成用クエリを音声ファイル生成キューに追加します(オプション付き)
|
|
148
|
-
* @param query 音声合成用クエリ
|
|
149
|
-
* @param speaker 話者ID(オプション)
|
|
150
|
-
* @param speedScale 再生速度(オプション)
|
|
151
|
-
* @param options 再生オプション
|
|
152
|
-
* @returns 処理結果のメッセージ
|
|
153
|
-
*/
|
|
154
|
-
enqueueAudioGeneration(query: AudioQuery, speaker?: number, speedScale?: number, options?: PlaybackOptions): Promise<string>;
|
|
59
|
+
enqueueAudioGeneration(input: string | string[] | SpeechSegment[] | AudioQuery, options?: SpeakOptions): Promise<SpeakResult>;
|
|
155
60
|
/**
|
|
156
61
|
* 話者IDを取得(指定がない場合はデフォルト値を使用)
|
|
157
62
|
* @private
|
|
@@ -162,6 +67,16 @@ export declare class VoicevoxClient {
|
|
|
162
67
|
* @private
|
|
163
68
|
*/
|
|
164
69
|
private getSpeedScale;
|
|
70
|
+
/**
|
|
71
|
+
* SpeakResultを生成
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
private createSpeakResult;
|
|
75
|
+
/**
|
|
76
|
+
* テキストプレビューを生成
|
|
77
|
+
* @private
|
|
78
|
+
*/
|
|
79
|
+
private createTextPreview;
|
|
165
80
|
private validateConfig;
|
|
166
81
|
/**
|
|
167
82
|
* キューをクリア
|
|
@@ -178,5 +93,43 @@ export declare class VoicevoxClient {
|
|
|
178
93
|
* @returns スピーカー情報
|
|
179
94
|
*/
|
|
180
95
|
getSpeakerInfo(uuid: string): Promise<import("./types").Speaker>;
|
|
96
|
+
/**
|
|
97
|
+
* VOICEVOX Engine の接続状態をチェック
|
|
98
|
+
* @returns 接続情報(connected, version, url)
|
|
99
|
+
*/
|
|
100
|
+
checkHealth(): Promise<{
|
|
101
|
+
connected: boolean;
|
|
102
|
+
version?: string;
|
|
103
|
+
url: string;
|
|
104
|
+
}>;
|
|
105
|
+
/**
|
|
106
|
+
* QueueServiceインスタンスを取得
|
|
107
|
+
* 高度な操作のため公開
|
|
108
|
+
*/
|
|
109
|
+
getQueueService(): QueueService;
|
|
110
|
+
/**
|
|
111
|
+
* 再生を開始
|
|
112
|
+
*/
|
|
113
|
+
startPlayback(): void;
|
|
114
|
+
/**
|
|
115
|
+
* 再生を一時停止
|
|
116
|
+
*/
|
|
117
|
+
pausePlayback(): void;
|
|
118
|
+
/**
|
|
119
|
+
* 再生を再開
|
|
120
|
+
*/
|
|
121
|
+
resumePlayback(): void;
|
|
122
|
+
/**
|
|
123
|
+
* キュー内のアイテム数を取得
|
|
124
|
+
*/
|
|
125
|
+
getQueueLength(): number;
|
|
126
|
+
/**
|
|
127
|
+
* キューが空かどうかを確認
|
|
128
|
+
*/
|
|
129
|
+
isQueueEmpty(): boolean;
|
|
130
|
+
/**
|
|
131
|
+
* キューが再生中かどうかを確認
|
|
132
|
+
*/
|
|
133
|
+
isPlaying(): boolean;
|
|
181
134
|
}
|
|
182
135
|
//# sourceMappingURL=client.d.ts.map
|