@mingxy/ocosay 1.0.19 → 1.0.21
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/dist/core/backends/howler-backend.d.ts +31 -0
- package/dist/core/backends/howler-backend.d.ts.map +1 -0
- package/dist/core/backends/howler-backend.js +183 -0
- package/dist/core/backends/howler-backend.js.map +1 -0
- package/dist/core/backends/index.d.ts +1 -0
- package/dist/core/backends/index.d.ts.map +1 -1
- package/dist/core/backends/index.js +1 -0
- package/dist/core/backends/index.js.map +1 -1
- package/dist/core/player.d.ts +2 -12
- package/dist/core/player.d.ts.map +1 -1
- package/dist/core/player.js +43 -85
- package/dist/core/player.js.map +1 -1
- package/dist/core/stream-player.d.ts +10 -23
- package/dist/core/stream-player.d.ts.map +1 -1
- package/dist/core/stream-player.js +66 -154
- package/dist/core/stream-player.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +3011 -271
- package/dist/plugin.js.map +4 -4
- package/dist/tools/tts.d.ts +0 -4
- package/dist/tools/tts.d.ts.map +1 -1
- package/dist/tools/tts.js +28 -11
- package/dist/tools/tts.js.map +1 -1
- package/package.json +3 -1
package/dist/tools/tts.d.ts
CHANGED
package/dist/tools/tts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../src/tools/tts.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../src/tools/tts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAyHpB,CAAA;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACzB,OAAO,CAAC,GAAG,CAAC,CAsId"}
|
package/dist/tools/tts.js
CHANGED
|
@@ -5,10 +5,20 @@
|
|
|
5
5
|
import { speak, stop, pause, resume, listVoices, getDefaultSpeaker } from '../core/speaker';
|
|
6
6
|
import { TTSError, TTSErrorCode } from '../core/types';
|
|
7
7
|
import { isStreamEnabled, isAutoReadEnabled, getStreamStatus, getStreamReader, getStreamingSynthesizer, getStreamPlayer } from '../index';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
function extractTextArg(args) {
|
|
9
|
+
if (!args || typeof args !== 'object') {
|
|
10
|
+
return undefined;
|
|
11
|
+
}
|
|
12
|
+
const argObj = args;
|
|
13
|
+
const text = argObj.text;
|
|
14
|
+
if (typeof text === 'string' && text.trim().length > 0) {
|
|
15
|
+
return text;
|
|
16
|
+
}
|
|
17
|
+
if (text !== undefined) {
|
|
18
|
+
console.warn('[tts] text arg is not a valid string, type:', typeof text, 'value:', String(text).substring(0, 100));
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
12
22
|
export const ttsTools = [
|
|
13
23
|
{
|
|
14
24
|
name: 'tts_speak',
|
|
@@ -156,21 +166,24 @@ export async function handleToolCall(toolName, args) {
|
|
|
156
166
|
case 'tts_resume':
|
|
157
167
|
resume();
|
|
158
168
|
return { success: true, message: 'Resumed' };
|
|
159
|
-
case 'tts_list_voices':
|
|
169
|
+
case 'tts_list_voices': {
|
|
160
170
|
const voices = await listVoices(args?.provider);
|
|
161
171
|
return { success: true, voices };
|
|
162
|
-
|
|
172
|
+
}
|
|
173
|
+
case 'tts_list_providers': {
|
|
163
174
|
const speaker = getDefaultSpeaker();
|
|
164
175
|
const providers = speaker.getProviders();
|
|
165
176
|
return { success: true, providers };
|
|
166
|
-
|
|
177
|
+
}
|
|
178
|
+
case 'tts_status': {
|
|
167
179
|
const s = getDefaultSpeaker();
|
|
168
180
|
return {
|
|
169
181
|
success: true,
|
|
170
182
|
isPlaying: s.isPlaying(),
|
|
171
183
|
isPaused: s.isPausedState()
|
|
172
184
|
};
|
|
173
|
-
|
|
185
|
+
}
|
|
186
|
+
case 'tts_stream_speak': {
|
|
174
187
|
if (!isAutoReadEnabled()) {
|
|
175
188
|
throw new TTSError('Stream mode is not enabled. autoRead must be enabled in configuration to use tts_stream_speak.', TTSErrorCode.UNKNOWN, 'tts_stream');
|
|
176
189
|
}
|
|
@@ -181,13 +194,16 @@ export async function handleToolCall(toolName, args) {
|
|
|
181
194
|
const synthesizer = getStreamingSynthesizer();
|
|
182
195
|
if (streamReader && synthesizer) {
|
|
183
196
|
streamReader.start();
|
|
184
|
-
|
|
185
|
-
|
|
197
|
+
const textArg = extractTextArg(args);
|
|
198
|
+
if (textArg && typeof textArg === 'string' && textArg.trim().length > 0) {
|
|
199
|
+
console.log('[tts_stream_speak] synthesizing text:', textArg.substring(0, 50) + '...');
|
|
200
|
+
synthesizer.synthesize(textArg);
|
|
186
201
|
}
|
|
187
202
|
return { success: true, message: 'Stream speak started' };
|
|
188
203
|
}
|
|
189
204
|
throw new TTSError('Stream components not available', TTSErrorCode.UNKNOWN, 'tts_stream');
|
|
190
|
-
|
|
205
|
+
}
|
|
206
|
+
case 'tts_stream_stop': {
|
|
191
207
|
if (!isStreamEnabled()) {
|
|
192
208
|
throw new TTSError('Stream mode is not enabled. Please enable autoRead in configuration.', TTSErrorCode.UNKNOWN, 'tts_stream');
|
|
193
209
|
}
|
|
@@ -197,6 +213,7 @@ export async function handleToolCall(toolName, args) {
|
|
|
197
213
|
return { success: true, message: 'Stream stopped' };
|
|
198
214
|
}
|
|
199
215
|
throw new TTSError('Stream player not available', TTSErrorCode.UNKNOWN, 'tts_stream');
|
|
216
|
+
}
|
|
200
217
|
case 'tts_stream_status':
|
|
201
218
|
if (!isStreamEnabled()) {
|
|
202
219
|
return {
|
package/dist/tools/tts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tts.js","sourceRoot":"","sources":["../../src/tools/tts.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAC3F,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,eAAe,EAChB,MAAM,UAAU,CAAA;AAEjB
|
|
1
|
+
{"version":3,"file":"tts.js","sourceRoot":"","sources":["../../src/tools/tts.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mingxy/ocosay",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.21",
|
|
4
4
|
"description": "OpenCode TTS 播放插件 - 支持豆包模式边接收边朗读",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/plugin.js",
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@opencode-ai/plugin": "^1.3.15",
|
|
44
44
|
"axios": "^1.6.0",
|
|
45
|
+
"howler": "^2.2.4",
|
|
45
46
|
"ws": "^8.14.0",
|
|
46
47
|
"zod": "^4.3.6"
|
|
47
48
|
},
|
|
@@ -49,6 +50,7 @@
|
|
|
49
50
|
"naudiodon": "^2.3.1"
|
|
50
51
|
},
|
|
51
52
|
"devDependencies": {
|
|
53
|
+
"@types/howler": "^2.2.12",
|
|
52
54
|
"@types/jest": "^29.5.14",
|
|
53
55
|
"@types/node": "^20.0.0",
|
|
54
56
|
"@types/ws": "^8.5.0",
|