@dofe/infra-clients 0.1.17 → 0.1.18

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 (80) hide show
  1. package/dist/index.d.ts +0 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +0 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/internal/sms/sms-aliyun.client.d.ts +2 -1
  6. package/dist/internal/sms/sms-aliyun.client.d.ts.map +1 -1
  7. package/dist/internal/sms/sms-volcengine.client.d.ts +2 -2
  8. package/package.json +72 -7
  9. package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts +0 -78
  10. package/dist/internal/file-cdn/dto/file-cdn.dto.d.ts.map +0 -1
  11. package/dist/internal/file-cdn/dto/file-cdn.dto.js +0 -70
  12. package/dist/internal/file-cdn/dto/file-cdn.dto.js.map +0 -1
  13. package/dist/internal/file-cdn/file-cdn.client.d.ts +0 -283
  14. package/dist/internal/file-cdn/file-cdn.client.d.ts.map +0 -1
  15. package/dist/internal/file-cdn/file-cdn.client.js +0 -526
  16. package/dist/internal/file-cdn/file-cdn.client.js.map +0 -1
  17. package/dist/internal/file-cdn/file-cdn.module.d.ts +0 -3
  18. package/dist/internal/file-cdn/file-cdn.module.d.ts.map +0 -1
  19. package/dist/internal/file-cdn/file-cdn.module.js +0 -32
  20. package/dist/internal/file-cdn/file-cdn.module.js.map +0 -1
  21. package/dist/internal/file-cdn/index.d.ts +0 -35
  22. package/dist/internal/file-cdn/index.d.ts.map +0 -1
  23. package/dist/internal/file-cdn/index.js +0 -54
  24. package/dist/internal/file-cdn/index.js.map +0 -1
  25. package/dist/internal/openspeech/index.d.ts +0 -35
  26. package/dist/internal/openspeech/index.d.ts.map +0 -1
  27. package/dist/internal/openspeech/index.js +0 -56
  28. package/dist/internal/openspeech/index.js.map +0 -1
  29. package/dist/internal/openspeech/openspeech.client.d.ts +0 -304
  30. package/dist/internal/openspeech/openspeech.client.d.ts.map +0 -1
  31. package/dist/internal/openspeech/openspeech.client.js +0 -405
  32. package/dist/internal/openspeech/openspeech.client.js.map +0 -1
  33. package/dist/internal/openspeech/openspeech.factory.d.ts +0 -247
  34. package/dist/internal/openspeech/openspeech.factory.d.ts.map +0 -1
  35. package/dist/internal/openspeech/openspeech.factory.js +0 -406
  36. package/dist/internal/openspeech/openspeech.factory.js.map +0 -1
  37. package/dist/internal/openspeech/openspeech.module.d.ts +0 -45
  38. package/dist/internal/openspeech/openspeech.module.d.ts.map +0 -1
  39. package/dist/internal/openspeech/openspeech.module.js +0 -68
  40. package/dist/internal/openspeech/openspeech.module.js.map +0 -1
  41. package/dist/internal/openspeech/providers/aliyun.provider.d.ts +0 -125
  42. package/dist/internal/openspeech/providers/aliyun.provider.d.ts.map +0 -1
  43. package/dist/internal/openspeech/providers/aliyun.provider.js +0 -274
  44. package/dist/internal/openspeech/providers/aliyun.provider.js.map +0 -1
  45. package/dist/internal/openspeech/providers/base.provider.d.ts +0 -98
  46. package/dist/internal/openspeech/providers/base.provider.d.ts.map +0 -1
  47. package/dist/internal/openspeech/providers/base.provider.js +0 -87
  48. package/dist/internal/openspeech/providers/base.provider.js.map +0 -1
  49. package/dist/internal/openspeech/providers/index.d.ts +0 -10
  50. package/dist/internal/openspeech/providers/index.d.ts.map +0 -1
  51. package/dist/internal/openspeech/providers/index.js +0 -26
  52. package/dist/internal/openspeech/providers/index.js.map +0 -1
  53. package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts +0 -291
  54. package/dist/internal/openspeech/providers/volcengine-streaming.provider.d.ts.map +0 -1
  55. package/dist/internal/openspeech/providers/volcengine-streaming.provider.js +0 -1358
  56. package/dist/internal/openspeech/providers/volcengine-streaming.provider.js.map +0 -1
  57. package/dist/internal/openspeech/providers/volcengine.provider.d.ts +0 -144
  58. package/dist/internal/openspeech/providers/volcengine.provider.d.ts.map +0 -1
  59. package/dist/internal/openspeech/providers/volcengine.provider.js +0 -337
  60. package/dist/internal/openspeech/providers/volcengine.provider.js.map +0 -1
  61. package/dist/internal/openspeech/types.d.ts +0 -408
  62. package/dist/internal/openspeech/types.d.ts.map +0 -1
  63. package/dist/internal/openspeech/types.js +0 -11
  64. package/dist/internal/openspeech/types.js.map +0 -1
  65. package/dist/internal/volcengine-tts/dto/tts.dto.d.ts +0 -52
  66. package/dist/internal/volcengine-tts/dto/tts.dto.d.ts.map +0 -1
  67. package/dist/internal/volcengine-tts/dto/tts.dto.js +0 -59
  68. package/dist/internal/volcengine-tts/dto/tts.dto.js.map +0 -1
  69. package/dist/internal/volcengine-tts/index.d.ts +0 -4
  70. package/dist/internal/volcengine-tts/index.d.ts.map +0 -1
  71. package/dist/internal/volcengine-tts/index.js +0 -20
  72. package/dist/internal/volcengine-tts/index.js.map +0 -1
  73. package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts +0 -104
  74. package/dist/internal/volcengine-tts/volcengine-tts.client.d.ts.map +0 -1
  75. package/dist/internal/volcengine-tts/volcengine-tts.client.js +0 -690
  76. package/dist/internal/volcengine-tts/volcengine-tts.client.js.map +0 -1
  77. package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts +0 -3
  78. package/dist/internal/volcengine-tts/volcengine-tts.module.d.ts.map +0 -1
  79. package/dist/internal/volcengine-tts/volcengine-tts.module.js +0 -34
  80. package/dist/internal/volcengine-tts/volcengine-tts.module.js.map +0 -1
@@ -1,406 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview OpenSpeech 服务提供商工厂
4
- *
5
- * 本文件实现了语音识别服务提供商的工厂模式,负责:
6
- * - 根据云服务商类型创建对应的提供商实例
7
- * - 管理提供商实例的生命周期(单例模式)
8
- * - 提供统一的提供商获取接口
9
- * - 支持录音文件识别(AUC)和流式识别(SAUC)两种模式
10
- *
11
- * @module openspeech/factory
12
- */
13
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
- return c > 3 && r && Object.defineProperty(target, key, r), r;
18
- };
19
- var __metadata = (this && this.__metadata) || function (k, v) {
20
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
21
- };
22
- var __param = (this && this.__param) || function (paramIndex, decorator) {
23
- return function (target, key) { decorator(target, key, paramIndex); }
24
- };
25
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.OpenspeechProviderFactory = void 0;
27
- const common_1 = require("@nestjs/common");
28
- const axios_1 = require("@nestjs/axios");
29
- const nest_winston_1 = require("nest-winston");
30
- const winston_1 = require("winston");
31
- const infra_common_1 = require("@dofe/infra-common");
32
- const aliyun_provider_1 = require("./providers/aliyun.provider");
33
- const volcengine_provider_1 = require("./providers/volcengine.provider");
34
- const volcengine_streaming_provider_1 = require("./providers/volcengine-streaming.provider");
35
- /**
36
- * OpenSpeech 服务提供商工厂
37
- *
38
- * @description 使用工厂模式管理不同云服务商的语音识别服务提供商。
39
- * 主要职责:
40
- * - 根据 vendor 类型创建对应的提供商实例
41
- * - 使用单例模式缓存提供商实例,避免重复创建
42
- * - 提供统一的提供商获取接口
43
- * - 支持录音文件识别和流式识别两种模式
44
- *
45
- * 支持的云服务商:
46
- * - 'oss': 阿里云 NLS 语音识别
47
- * - 'tos': 火山引擎大模型语音识别(支持 AUC 录音识别和 SAUC 流式识别)
48
- *
49
- * @class OpenspeechProviderFactory
50
- *
51
- * @example
52
- * ```typescript
53
- * @Injectable()
54
- * class MyService {
55
- * constructor(private readonly factory: OpenspeechProviderFactory) {}
56
- *
57
- * // 录音文件识别
58
- * async transcribe(vendor: FileBucketVendor, audioUrl: string) {
59
- * const provider = this.factory.getProvider(vendor);
60
- * const taskId = await provider.submitTask({ audioUrl });
61
- * // ...
62
- * }
63
- *
64
- * // 流式语音识别
65
- * async streamingTranscribe(sessionId: string) {
66
- * const provider = this.factory.getStreamingProvider('tos');
67
- * const connectionId = await provider.connect(
68
- * { sessionId, audioFormat: 'pcm' },
69
- * { onResult: (result) => console.log(result.text) }
70
- * );
71
- * // ...
72
- * }
73
- * }
74
- * ```
75
- */
76
- let OpenspeechProviderFactory = class OpenspeechProviderFactory {
77
- httpService;
78
- logger;
79
- /**
80
- * 录音文件识别提供商实例缓存
81
- * @private
82
- */
83
- providers = new Map();
84
- /**
85
- * 流式识别提供商实例缓存
86
- * @private
87
- */
88
- streamingProviders = new Map();
89
- /**
90
- * OpenSpeech 配置
91
- * @private
92
- */
93
- openspeechConfig;
94
- /**
95
- * 构造函数
96
- *
97
- * @param {HttpService} httpService - NestJS HTTP 服务(用于火山引擎)
98
- * @param {Logger} logger - Winston 日志记录器
99
- */
100
- constructor(httpService, logger) {
101
- this.httpService = httpService;
102
- this.logger = logger;
103
- this.openspeechConfig = (0, infra_common_1.getKeysConfig)()?.openspeech;
104
- }
105
- /**
106
- * 获取指定云服务商的录音文件识别提供商实例
107
- *
108
- * @description 根据 vendor 类型返回对应的提供商实例。
109
- * 使用单例模式,同一 vendor 只会创建一个实例。
110
- *
111
- * @param {FileBucketVendor} vendor - 云服务商类型
112
- * @returns {IOpenspeechProvider} 提供商实例
113
- * @throws {Error} 不支持的 vendor 类型或配置缺失时抛出异常
114
- *
115
- * @example
116
- * ```typescript
117
- * // 获取阿里云提供商
118
- * const aliyunProvider = factory.getProvider('oss');
119
- *
120
- * // 获取火山引擎提供商
121
- * const volcengineProvider = factory.getProvider('tos');
122
- * ```
123
- */
124
- getProvider(vendor) {
125
- // 检查缓存
126
- if (this.providers.has(vendor)) {
127
- return this.providers.get(vendor);
128
- }
129
- // 创建新实例
130
- const provider = this.createProvider(vendor);
131
- this.providers.set(vendor, provider);
132
- return provider;
133
- }
134
- /**
135
- * 获取指定云服务商的流式识别提供商实例
136
- *
137
- * @description 根据 vendor 类型返回对应的流式识别提供商实例。
138
- * 目前仅支持火山引擎 (tos)。
139
- *
140
- * @param {FileBucketVendor} vendor - 云服务商类型(目前仅支持 'tos')
141
- * @returns {IStreamingAsrProvider} 流式识别提供商实例
142
- * @throws {Error} 不支持的 vendor 类型或配置缺失时抛出异常
143
- *
144
- * @example
145
- * ```typescript
146
- * const streamingProvider = factory.getStreamingProvider('tos');
147
- * const connectionId = await streamingProvider.connect(
148
- * { sessionId: 'session-123', audioFormat: 'pcm' },
149
- * { onResult: (result) => console.log(result.text) }
150
- * );
151
- * ```
152
- */
153
- getStreamingProvider(vendor) {
154
- // 检查缓存
155
- if (this.streamingProviders.has(vendor)) {
156
- return this.streamingProviders.get(vendor);
157
- }
158
- // 创建新实例
159
- const provider = this.createStreamingProvider(vendor);
160
- this.streamingProviders.set(vendor, provider);
161
- return provider;
162
- }
163
- /**
164
- * 创建录音文件识别提供商实例
165
- *
166
- * @private
167
- * @param {FileBucketVendor} vendor - 云服务商类型
168
- * @returns {IOpenspeechProvider} 新创建的提供商实例
169
- * @throws {Error} 不支持的 vendor 类型或配置缺失时抛出异常
170
- */
171
- createProvider(vendor) {
172
- switch (vendor) {
173
- case 'oss':
174
- return this.createAliyunProvider();
175
- case 'tos':
176
- return this.createVolcengineAucProvider();
177
- default:
178
- throw new Error(`Unsupported vendor for openspeech: ${vendor}`);
179
- }
180
- }
181
- /**
182
- * 创建流式识别提供商实例
183
- *
184
- * @private
185
- * @param {FileBucketVendor} vendor - 云服务商类型
186
- * @returns {IStreamingAsrProvider} 新创建的流式识别提供商实例
187
- * @throws {Error} 不支持的 vendor 类型或配置缺失时抛出异常
188
- */
189
- createStreamingProvider(vendor) {
190
- switch (vendor) {
191
- case 'tos':
192
- return this.createVolcengineSaucProvider();
193
- default:
194
- throw new Error(`Unsupported vendor for streaming ASR: ${vendor}`);
195
- }
196
- }
197
- /**
198
- * 将阿里云配置转换为 Provider 配置
199
- *
200
- * @private
201
- * @param {NonNullable<OpenSpeechConfig['oss']>} config - 阿里云原始配置
202
- * @returns {AliyunOpenspeechConfig} 阿里云 Provider 配置
203
- */
204
- toAliyunConfig(config) {
205
- return {
206
- endpoint: config.endpoint,
207
- accessKeyId: config.accessKeyId,
208
- accessKeySecret: config.accessKeySecret,
209
- nslAppKey: config.nslAppKey,
210
- nslAppId: config.nslAppId,
211
- apiVersion: config.apiVersion,
212
- tokenEndpoint: config.tokenEndpoint,
213
- accessKey: config.accessKey,
214
- secretKey: config.secretKey,
215
- };
216
- }
217
- /**
218
- * 将火山引擎配置转换为录音文件识别(AUC)Provider 配置
219
- *
220
- * @private
221
- * @param {NonNullable<OpenSpeechConfig['tos']>} config - 火山引擎原始配置
222
- * @returns {VolcengineAucConfig} 火山引擎 AUC Provider 配置
223
- * @throws {Error} AUC 配置缺失时抛出异常
224
- */
225
- toVolcengineAucConfig(config) {
226
- if (!config.auc) {
227
- throw new Error('Volcengine OpenSpeech AUC config not found in configuration');
228
- }
229
- return {
230
- appId: config.appId,
231
- appAccessToken: config.appAccessToken,
232
- uid: config.uid,
233
- endpoint: config.auc.endpoint,
234
- resourceId: config.auc.resourceId,
235
- appAccessSecret: config.appAccessSecret,
236
- accessKey: config.accessKey,
237
- secretKey: config.secretKey,
238
- };
239
- }
240
- /**
241
- * 将火山引擎配置转换为流式识别(SAUC)Provider 配置
242
- *
243
- * @private
244
- * @param {NonNullable<OpenSpeechConfig['tos']>} config - 火山引擎原始配置
245
- * @returns {VolcengineSaucConfig} 火山引擎 SAUC Provider 配置
246
- * @throws {Error} SAUC 配置缺失时抛出异常
247
- */
248
- toVolcengineSaucConfig(config) {
249
- if (!config.sauc) {
250
- throw new Error('Volcengine OpenSpeech SAUC config not found in configuration');
251
- }
252
- return {
253
- appId: config.appId,
254
- appAccessToken: config.appAccessToken,
255
- uid: config.uid,
256
- endpoint: config.sauc.endpoint,
257
- resourceId: config.sauc.resourceId,
258
- appAccessSecret: config.appAccessSecret,
259
- accessKey: config.accessKey,
260
- secretKey: config.secretKey,
261
- };
262
- }
263
- /**
264
- * 创建阿里云提供商实例
265
- *
266
- * @private
267
- * @returns {AliyunOpenspeechProvider} 阿里云提供商实例
268
- * @throws {Error} 配置缺失时抛出异常
269
- */
270
- createAliyunProvider() {
271
- const rawConfig = this.openspeechConfig?.oss;
272
- if (!rawConfig) {
273
- throw new Error('Aliyun OpenSpeech config (oss) not found in configuration');
274
- }
275
- const config = this.toAliyunConfig(rawConfig);
276
- this.logger.info('Creating Aliyun OpenSpeech provider');
277
- return new aliyun_provider_1.AliyunOpenspeechProvider(this.logger, config);
278
- }
279
- /**
280
- * 创建火山引擎录音文件识别提供商实例
281
- *
282
- * @private
283
- * @returns {VolcengineOpenspeechProvider} 火山引擎 AUC 提供商实例
284
- * @throws {Error} 配置缺失时抛出异常
285
- */
286
- createVolcengineAucProvider() {
287
- const rawConfig = this.openspeechConfig?.tos;
288
- if (!rawConfig) {
289
- throw new Error('Volcengine OpenSpeech config (tos) not found in configuration');
290
- }
291
- const config = this.toVolcengineAucConfig(rawConfig);
292
- this.logger.info('Creating Volcengine OpenSpeech AUC provider');
293
- return new volcengine_provider_1.VolcengineOpenspeechProvider(this.logger, this.httpService, config);
294
- }
295
- /**
296
- * 创建火山引擎流式识别提供商实例
297
- *
298
- * @private
299
- * @returns {VolcengineStreamingAsrProvider} 火山引擎 SAUC 提供商实例
300
- * @throws {Error} 配置缺失时抛出异常
301
- */
302
- createVolcengineSaucProvider() {
303
- const rawConfig = this.openspeechConfig?.tos;
304
- if (!rawConfig) {
305
- throw new Error('Volcengine OpenSpeech config (tos) not found in configuration');
306
- }
307
- const config = this.toVolcengineSaucConfig(rawConfig);
308
- this.logger.info('Creating Volcengine OpenSpeech SAUC provider');
309
- return new volcengine_streaming_provider_1.VolcengineStreamingAsrProvider(this.logger, config);
310
- }
311
- /**
312
- * 检查指定云服务商的录音文件识别是否可用
313
- *
314
- * @param {FileBucketVendor} vendor - 云服务商类型
315
- * @returns {boolean} 是否可用(配置存在)
316
- *
317
- * @example
318
- * ```typescript
319
- * if (factory.isVendorAvailable('oss')) {
320
- * const provider = factory.getProvider('oss');
321
- * // ...
322
- * }
323
- * ```
324
- */
325
- isVendorAvailable(vendor) {
326
- switch (vendor) {
327
- case 'oss':
328
- return !!this.openspeechConfig?.oss;
329
- case 'tos':
330
- return !!this.openspeechConfig?.tos?.auc;
331
- default:
332
- return false;
333
- }
334
- }
335
- /**
336
- * 检查指定云服务商的流式识别是否可用
337
- *
338
- * @param {FileBucketVendor} vendor - 云服务商类型
339
- * @returns {boolean} 是否可用(配置存在)
340
- *
341
- * @example
342
- * ```typescript
343
- * if (factory.isStreamingAvailable('tos')) {
344
- * const provider = factory.getStreamingProvider('tos');
345
- * // ...
346
- * }
347
- * ```
348
- */
349
- isStreamingAvailable(vendor) {
350
- switch (vendor) {
351
- case 'tos':
352
- return !!this.openspeechConfig?.tos?.sauc;
353
- default:
354
- return false;
355
- }
356
- }
357
- /**
358
- * 获取所有可用的云服务商列表(录音文件识别)
359
- *
360
- * @returns {FileBucketVendor[]} 可用的云服务商列表
361
- *
362
- * @example
363
- * ```typescript
364
- * const vendors = factory.getAvailableVendors();
365
- * console.log('Available vendors:', vendors);
366
- * // 输出: ['oss', 'tos']
367
- * ```
368
- */
369
- getAvailableVendors() {
370
- const vendors = [];
371
- if (this.openspeechConfig?.oss) {
372
- vendors.push('oss');
373
- }
374
- if (this.openspeechConfig?.tos?.auc) {
375
- vendors.push('tos');
376
- }
377
- return vendors;
378
- }
379
- /**
380
- * 获取所有支持流式识别的云服务商列表
381
- *
382
- * @returns {FileBucketVendor[]} 支持流式识别的云服务商列表
383
- *
384
- * @example
385
- * ```typescript
386
- * const vendors = factory.getStreamingAvailableVendors();
387
- * console.log('Streaming available vendors:', vendors);
388
- * // 输出: ['tos']
389
- * ```
390
- */
391
- getStreamingAvailableVendors() {
392
- const vendors = [];
393
- if (this.openspeechConfig?.tos?.sauc) {
394
- vendors.push('tos');
395
- }
396
- return vendors;
397
- }
398
- };
399
- exports.OpenspeechProviderFactory = OpenspeechProviderFactory;
400
- exports.OpenspeechProviderFactory = OpenspeechProviderFactory = __decorate([
401
- (0, common_1.Injectable)(),
402
- __param(1, (0, common_1.Inject)(nest_winston_1.WINSTON_MODULE_PROVIDER)),
403
- __metadata("design:paramtypes", [axios_1.HttpService,
404
- winston_1.Logger])
405
- ], OpenspeechProviderFactory);
406
- //# sourceMappingURL=openspeech.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openspeech.factory.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/openspeech.factory.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * @fileoverview OpenSpeech 语音识别服务模块
3
- *
4
- * 本模块提供语音识别服务的 NestJS 模块配置,整合了:
5
- * - OpenspeechClient: 语音识别服务门面
6
- * - OpenspeechProviderFactory: 云服务商工厂
7
- *
8
- * @module openspeech/module
9
- */
10
- /**
11
- * OpenSpeech 语音识别服务模块
12
- *
13
- * @description 提供语音识别服务的依赖注入配置。
14
- *
15
- * 导出服务:
16
- * - `OpenspeechClient`: 语音识别服务统一入口
17
- * - `OpenspeechProviderFactory`: 云服务商工厂(可选,用于高级场景)
18
- *
19
- * 依赖模块:
20
- * - `ConfigModule`: 配置服务
21
- * - `HttpModule`: HTTP 客户端(用于火山引擎 API)
22
- * - `FileStorageServiceModule`: 文件存储服务
23
- *
24
- * @example
25
- * ```typescript
26
- * // 在其他模块中导入
27
- * @Module({
28
- * imports: [OpenspeechModule],
29
- * })
30
- * export class VideoModule {}
31
- *
32
- * // 在服务中使用
33
- * @Injectable()
34
- * class VideoService {
35
- * constructor(private readonly openspeech: OpenspeechClient) {}
36
- *
37
- * async transcribe(fileKey: FileKey) {
38
- * return await this.openspeech.submitTranscribeTask(fileKey);
39
- * }
40
- * }
41
- * ```
42
- */
43
- export declare class OpenspeechModule {
44
- }
45
- //# sourceMappingURL=openspeech.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openspeech.module.d.ts","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/openspeech.module.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,qBAKa,gBAAgB;CAAG"}
@@ -1,68 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview OpenSpeech 语音识别服务模块
4
- *
5
- * 本模块提供语音识别服务的 NestJS 模块配置,整合了:
6
- * - OpenspeechClient: 语音识别服务门面
7
- * - OpenspeechProviderFactory: 云服务商工厂
8
- *
9
- * @module openspeech/module
10
- */
11
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
12
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
13
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
14
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
15
- return c > 3 && r && Object.defineProperty(target, key, r), r;
16
- };
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.OpenspeechModule = void 0;
19
- const common_1 = require("@nestjs/common");
20
- const config_1 = require("@nestjs/config");
21
- const axios_1 = require("@nestjs/axios");
22
- const infra_shared_services_1 = require("@dofe/infra-shared-services");
23
- const openspeech_client_1 = require("./openspeech.client");
24
- const openspeech_factory_1 = require("./openspeech.factory");
25
- /**
26
- * OpenSpeech 语音识别服务模块
27
- *
28
- * @description 提供语音识别服务的依赖注入配置。
29
- *
30
- * 导出服务:
31
- * - `OpenspeechClient`: 语音识别服务统一入口
32
- * - `OpenspeechProviderFactory`: 云服务商工厂(可选,用于高级场景)
33
- *
34
- * 依赖模块:
35
- * - `ConfigModule`: 配置服务
36
- * - `HttpModule`: HTTP 客户端(用于火山引擎 API)
37
- * - `FileStorageServiceModule`: 文件存储服务
38
- *
39
- * @example
40
- * ```typescript
41
- * // 在其他模块中导入
42
- * @Module({
43
- * imports: [OpenspeechModule],
44
- * })
45
- * export class VideoModule {}
46
- *
47
- * // 在服务中使用
48
- * @Injectable()
49
- * class VideoService {
50
- * constructor(private readonly openspeech: OpenspeechClient) {}
51
- *
52
- * async transcribe(fileKey: FileKey) {
53
- * return await this.openspeech.submitTranscribeTask(fileKey);
54
- * }
55
- * }
56
- * ```
57
- */
58
- let OpenspeechModule = class OpenspeechModule {
59
- };
60
- exports.OpenspeechModule = OpenspeechModule;
61
- exports.OpenspeechModule = OpenspeechModule = __decorate([
62
- (0, common_1.Module)({
63
- imports: [config_1.ConfigModule, axios_1.HttpModule, infra_shared_services_1.FileStorageServiceModule],
64
- providers: [openspeech_factory_1.OpenspeechProviderFactory, openspeech_client_1.OpenspeechClient],
65
- exports: [openspeech_client_1.OpenspeechClient, openspeech_factory_1.OpenspeechProviderFactory],
66
- })
67
- ], OpenspeechModule);
68
- //# sourceMappingURL=openspeech.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"openspeech.module.js","sourceRoot":"","sources":["../../../../../packages/clients/src/internal/openspeech/openspeech.module.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;AAEH,2CAAwC;AACxC,2CAA8C;AAC9C,yCAA2C;AAC3C,uEAAuE;AACvE,2DAAuD;AACvD,6DAAiE;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAMI,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,EAAE,kBAAU,EAAE,gDAAwB,CAAC;QAC7D,SAAS,EAAE,CAAC,8CAAyB,EAAE,oCAAgB,CAAC;QACxD,OAAO,EAAE,CAAC,oCAAgB,EAAE,8CAAyB,CAAC;KACvD,CAAC;GACW,gBAAgB,CAAG"}
@@ -1,125 +0,0 @@
1
- /**
2
- * @fileoverview 阿里云 OpenSpeech 语音识别服务提供商
3
- *
4
- * 本文件实现了阿里云 NLS(自然语言服务)的录音文件识别功能。
5
- * 阿里云语音识别服务文档:https://help.aliyun.com/document_detail/90727.html
6
- *
7
- * @module openspeech/providers/aliyun
8
- */
9
- import { Logger } from 'winston';
10
- import { FileBucketVendor } from '@prisma/client';
11
- import { BaseOpenspeechProvider } from './base.provider';
12
- import { SubmitTaskParams, TaskStatusResult, AliyunOpenspeechConfig } from '../types';
13
- /**
14
- * 阿里云语音识别服务提供商
15
- *
16
- * @description 封装了阿里云 NLS 录音文件识别的核心功能:
17
- * - 任务提交:将音频文件提交到阿里云进行语音识别
18
- * - 状态查询:查询识别任务的处理状态和结果
19
- *
20
- * 主要特性:
21
- * - 支持智能分轨(双声道对话场景)
22
- * - 支持语义句子检测
23
- * - 支持时间戳对齐
24
- * - 支持回调通知
25
- *
26
- * @class AliyunOpenspeechProvider
27
- * @extends {BaseOpenspeechProvider}
28
- *
29
- * @example
30
- * ```typescript
31
- * const provider = new AliyunOpenspeechProvider(logger, {
32
- * accessKeyId: 'your-access-key-id',
33
- * accessKeySecret: 'your-access-key-secret',
34
- * endpoint: 'https://nls-meta.cn-shanghai.aliyuncs.com',
35
- * nslAppKey: 'your-app-key',
36
- * });
37
- *
38
- * // 提交任务
39
- * const taskId = await provider.submitTask({
40
- * audioUrl: 'https://example.com/audio.mp3',
41
- * });
42
- *
43
- * // 查询状态
44
- * const result = await provider.queryTaskStatus(taskId);
45
- * if (result.status === 'success') {
46
- * console.log('识别结果:', result.text);
47
- * }
48
- * ```
49
- */
50
- export declare class AliyunOpenspeechProvider extends BaseOpenspeechProvider {
51
- private readonly config;
52
- /**
53
- * 云服务商标识:阿里云 OSS
54
- * @readonly
55
- */
56
- readonly vendor: FileBucketVendor;
57
- /**
58
- * 构造函数
59
- *
60
- * @param {Logger} logger - Winston 日志记录器
61
- * @param {AliyunOpenspeechConfig} config - 阿里云配置
62
- * @throws {Error} 配置缺失时抛出异常
63
- */
64
- constructor(logger: Logger, config: AliyunOpenspeechConfig);
65
- /**
66
- * 提交语音识别任务到阿里云
67
- *
68
- * @description 调用阿里云 NLS API 提交录音文件识别任务。
69
- * 任务提交后,阿里云会异步处理,可通过回调或轮询获取结果。
70
- *
71
- * 任务配置说明:
72
- * - auto_split: 开启智能分轨,适用于双方对话场景
73
- * - enable_semantic_sentence_detection: 开启语义句子检测
74
- * - enable_timestamp_alignment: 开启时间戳对齐
75
- * - enable_callback: 开启回调通知
76
- *
77
- * @param {SubmitTaskParams} params - 任务提交参数
78
- * @param {string} params.audioUrl - 音频文件 URL
79
- * @param {string} [params.callbackUrl] - 回调 URL(可选,默认使用系统配置)
80
- * @returns {Promise<string>} 阿里云返回的任务 ID (TaskId)
81
- * @throws {Error} 配置缺失或 API 调用失败时抛出异常
82
- *
83
- * @example
84
- * ```typescript
85
- * const taskId = await provider.submitTask({
86
- * audioUrl: 'https://bucket.oss-cn-hangzhou.aliyuncs.com/audio.mp3',
87
- * });
88
- * console.log('Task ID:', taskId);
89
- * ```
90
- */
91
- submitTask(params: SubmitTaskParams): Promise<string>;
92
- /**
93
- * 查询阿里云语音识别任务状态
94
- *
95
- * @description 调用阿里云 NLS API 查询任务状态。
96
- * 任务状态包括:
97
- * - SUCCESS: 识别成功,返回识别文本
98
- * - RUNNING: 正在处理中
99
- * - QUEUEING: 排队等待中
100
- * - FAIL: 识别失败
101
- * - EXPIRED: 任务过期
102
- *
103
- * @param {string} vendorTaskId - 阿里云任务 ID
104
- * @returns {Promise<TaskStatusResult>} 任务状态和结果
105
- *
106
- * @example
107
- * ```typescript
108
- * const result = await provider.queryTaskStatus('task-123456');
109
- *
110
- * switch (result.status) {
111
- * case 'success':
112
- * console.log('识别文本:', result.text);
113
- * break;
114
- * case 'processing':
115
- * console.log('处理中,请稍后重试');
116
- * break;
117
- * case 'error':
118
- * console.error('识别失败:', result.error);
119
- * break;
120
- * }
121
- * ```
122
- */
123
- queryTaskStatus(vendorTaskId: string): Promise<TaskStatusResult>;
124
- }
125
- //# sourceMappingURL=aliyun.provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aliyun.provider.d.ts","sourceRoot":"","sources":["../../../../../../packages/clients/src/internal/openspeech/providers/aliyun.provider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAGlB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,qBAAa,wBAAyB,SAAQ,sBAAsB;IAgBhE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAfzB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAS;IAE1C;;;;;;OAMG;gBAED,MAAM,EAAE,MAAM,EACG,MAAM,EAAE,sBAAsB;IASjD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkG3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAuEvE"}