@dofe/infra-shared-services 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.
- package/dist/agentx/agentx-client.module.d.ts.map +1 -1
- package/dist/agentx/agentx-client.module.js.map +1 -1
- package/dist/agentx/agentx-client.service.d.ts.map +1 -1
- package/dist/agentx/agentx-client.service.js.map +1 -1
- package/dist/agentx/agentx-file-client.service.d.ts.map +1 -1
- package/dist/agentx/agentx-file-client.service.js.map +1 -1
- package/dist/agentx/index.d.ts.map +1 -1
- package/dist/agentx/index.js.map +1 -1
- package/dist/agentx/interfaces/file.interface.d.ts.map +1 -1
- package/dist/agentx/interfaces/file.interface.js.map +1 -1
- package/dist/agentx/interfaces/task.interface.d.ts.map +1 -1
- package/dist/agentx/interfaces/task.interface.js.map +1 -1
- package/dist/email/dto/email.dto.d.ts +70 -0
- package/dist/email/dto/email.dto.d.ts.map +1 -0
- package/dist/email/dto/email.dto.js +58 -0
- package/dist/email/dto/email.dto.js.map +1 -0
- package/dist/email/email.module.d.ts.map +1 -1
- package/dist/email/email.module.js.map +1 -1
- package/dist/email/email.service.d.ts.map +1 -1
- package/dist/email/email.service.js.map +1 -1
- package/dist/email/index.d.ts +5 -0
- package/dist/email/index.d.ts.map +1 -0
- package/dist/email/index.js +26 -0
- package/dist/email/index.js.map +1 -0
- package/dist/file-cdn/dto/file-cdn.dto.d.ts.map +1 -1
- package/dist/file-cdn/dto/file-cdn.dto.js.map +1 -1
- package/dist/file-cdn/file-cdn.client.d.ts +1 -1
- package/dist/file-cdn/file-cdn.client.d.ts.map +1 -1
- package/dist/file-cdn/file-cdn.client.js +2 -2
- package/dist/file-cdn/file-cdn.client.js.map +1 -1
- package/dist/file-cdn/file-cdn.module.d.ts.map +1 -1
- package/dist/file-cdn/file-cdn.module.js +2 -2
- package/dist/file-cdn/file-cdn.module.js.map +1 -1
- package/dist/file-cdn/index.d.ts.map +1 -1
- package/dist/file-cdn/index.js.map +1 -1
- package/dist/file-storage/bucket-resolver.d.ts +1 -1
- package/dist/file-storage/bucket-resolver.d.ts.map +1 -1
- package/dist/file-storage/bucket-resolver.js.map +1 -1
- package/dist/file-storage/file-storage.factory.d.ts +1 -1
- package/dist/file-storage/file-storage.factory.d.ts.map +1 -1
- package/dist/file-storage/file-storage.factory.js +7 -7
- package/dist/file-storage/file-storage.factory.js.map +1 -1
- package/dist/file-storage/file-storage.module.d.ts.map +1 -1
- package/dist/file-storage/file-storage.module.js.map +1 -1
- package/dist/file-storage/file-storage.service.d.ts +1 -1
- package/dist/file-storage/file-storage.service.d.ts.map +1 -1
- package/dist/file-storage/file-storage.service.js.map +1 -1
- package/dist/file-storage/index.d.ts +1 -1
- package/dist/file-storage/index.d.ts.map +1 -1
- package/dist/file-storage/index.js.map +1 -1
- package/dist/file-storage/types.d.ts +1 -1
- package/dist/file-storage/types.d.ts.map +1 -1
- package/dist/file-storage/types.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/ip-geo/continent-mapping.d.ts.map +1 -1
- package/dist/ip-geo/continent-mapping.js.map +1 -1
- package/dist/ip-geo/index.d.ts +33 -0
- package/dist/ip-geo/index.d.ts.map +1 -0
- package/dist/ip-geo/index.js +41 -0
- package/dist/ip-geo/index.js.map +1 -0
- package/dist/ip-geo/ip-geo.module.d.ts.map +1 -1
- package/dist/ip-geo/ip-geo.module.js.map +1 -1
- package/dist/ip-geo/ip-geo.service.d.ts.map +1 -1
- package/dist/ip-geo/ip-geo.service.js.map +1 -1
- package/dist/ip-info/index.d.ts +7 -0
- package/dist/ip-info/index.d.ts.map +1 -0
- package/dist/ip-info/index.js +13 -0
- package/dist/ip-info/index.js.map +1 -0
- package/dist/ip-info/ip-info.client.d.ts.map +1 -1
- package/dist/ip-info/ip-info.client.js.map +1 -1
- package/dist/ip-info/ip-info.module.d.ts.map +1 -1
- package/dist/ip-info/ip-info.module.js.map +1 -1
- package/dist/ip-info/ip-info.service.d.ts.map +1 -1
- package/dist/ip-info/ip-info.service.js +2 -3
- package/dist/ip-info/ip-info.service.js.map +1 -1
- package/dist/ip-info-client/dto/ip-info.dto.d.ts.map +1 -1
- package/dist/ip-info-client/dto/ip-info.dto.js.map +1 -1
- package/dist/ip-info-client/index.d.ts.map +1 -1
- package/dist/ip-info-client/index.js.map +1 -1
- package/dist/ip-info-client/ip-info.client.d.ts.map +1 -1
- package/dist/ip-info-client/ip-info.client.js.map +1 -1
- package/dist/ip-info-client/ip-info.module.d.ts.map +1 -1
- package/dist/ip-info-client/ip-info.module.js.map +1 -1
- package/dist/notification/index.d.ts.map +1 -1
- package/dist/notification/index.js.map +1 -1
- package/dist/notification/notification.module.d.ts.map +1 -1
- package/dist/notification/notification.module.js.map +1 -1
- package/dist/notification/notification.service.d.ts.map +1 -1
- package/dist/notification/notification.service.js.map +1 -1
- package/dist/notification/notification.types.d.ts.map +1 -1
- package/dist/notification/notification.types.js.map +1 -1
- package/dist/ocr/index.d.ts +33 -0
- package/dist/ocr/index.d.ts.map +1 -0
- package/dist/ocr/index.js +53 -0
- package/dist/ocr/index.js.map +1 -0
- package/dist/ocr/ocr.module.d.ts.map +1 -1
- package/dist/ocr/ocr.module.js.map +1 -1
- package/dist/ocr/ocr.service.d.ts.map +1 -1
- package/dist/ocr/ocr.service.js.map +1 -1
- package/dist/openspeech/index.d.ts +35 -0
- package/dist/openspeech/index.d.ts.map +1 -0
- package/dist/openspeech/index.js +56 -0
- package/dist/openspeech/index.js.map +1 -0
- package/dist/openspeech/openspeech.client.d.ts +304 -0
- package/dist/openspeech/openspeech.client.d.ts.map +1 -0
- package/dist/openspeech/openspeech.client.js +405 -0
- package/dist/openspeech/openspeech.client.js.map +1 -0
- package/dist/openspeech/openspeech.factory.d.ts +247 -0
- package/dist/openspeech/openspeech.factory.d.ts.map +1 -0
- package/dist/openspeech/openspeech.factory.js +406 -0
- package/dist/openspeech/openspeech.factory.js.map +1 -0
- package/dist/openspeech/openspeech.module.d.ts +45 -0
- package/dist/openspeech/openspeech.module.d.ts.map +1 -0
- package/dist/openspeech/openspeech.module.js +68 -0
- package/dist/openspeech/openspeech.module.js.map +1 -0
- package/dist/openspeech/providers/aliyun.provider.d.ts +125 -0
- package/dist/openspeech/providers/aliyun.provider.d.ts.map +1 -0
- package/dist/openspeech/providers/aliyun.provider.js +274 -0
- package/dist/openspeech/providers/aliyun.provider.js.map +1 -0
- package/dist/openspeech/providers/base.provider.d.ts +98 -0
- package/dist/openspeech/providers/base.provider.d.ts.map +1 -0
- package/dist/openspeech/providers/base.provider.js +87 -0
- package/dist/openspeech/providers/base.provider.js.map +1 -0
- package/dist/openspeech/providers/index.d.ts +10 -0
- package/dist/openspeech/providers/index.d.ts.map +1 -0
- package/dist/openspeech/providers/index.js +26 -0
- package/dist/openspeech/providers/index.js.map +1 -0
- package/dist/openspeech/providers/volcengine-streaming.provider.d.ts +291 -0
- package/dist/openspeech/providers/volcengine-streaming.provider.d.ts.map +1 -0
- package/dist/openspeech/providers/volcengine-streaming.provider.js +1358 -0
- package/dist/openspeech/providers/volcengine-streaming.provider.js.map +1 -0
- package/dist/openspeech/providers/volcengine.provider.d.ts +144 -0
- package/dist/openspeech/providers/volcengine.provider.d.ts.map +1 -0
- package/dist/openspeech/providers/volcengine.provider.js +337 -0
- package/dist/openspeech/providers/volcengine.provider.js.map +1 -0
- package/dist/openspeech/types.d.ts +408 -0
- package/dist/openspeech/types.d.ts.map +1 -0
- package/dist/openspeech/types.js +11 -0
- package/dist/openspeech/types.js.map +1 -0
- package/dist/sms/index.d.ts +5 -0
- package/dist/sms/index.d.ts.map +1 -0
- package/dist/sms/index.js +29 -0
- package/dist/sms/index.js.map +1 -0
- package/dist/sms/sms.factory.d.ts.map +1 -1
- package/dist/sms/sms.factory.js +6 -6
- package/dist/sms/sms.factory.js.map +1 -1
- package/dist/sms/sms.module.d.ts.map +1 -1
- package/dist/sms/sms.module.js.map +1 -1
- package/dist/sms/sms.service.d.ts.map +1 -1
- package/dist/sms/sms.service.js.map +1 -1
- package/dist/sms/types.d.ts.map +1 -1
- package/dist/sms/types.js.map +1 -1
- package/dist/streaming-asr/index.d.ts +45 -0
- package/dist/streaming-asr/index.d.ts.map +1 -0
- package/dist/streaming-asr/index.js +66 -0
- package/dist/streaming-asr/index.js.map +1 -0
- package/dist/streaming-asr/streaming-asr.module.d.ts.map +1 -1
- package/dist/streaming-asr/streaming-asr.module.js.map +1 -1
- package/dist/streaming-asr/streaming-asr.service.d.ts.map +1 -1
- package/dist/streaming-asr/streaming-asr.service.js.map +1 -1
- package/dist/streaming-asr/types.d.ts.map +1 -1
- package/dist/streaming-asr/types.js.map +1 -1
- package/dist/system-health/index.d.ts +7 -0
- package/dist/system-health/index.d.ts.map +1 -0
- package/dist/system-health/index.js +25 -0
- package/dist/system-health/index.js.map +1 -0
- package/dist/system-health/system-health.controller.d.ts.map +1 -1
- package/dist/system-health/system-health.controller.js.map +1 -1
- package/dist/system-health/system-health.module.d.ts.map +1 -1
- package/dist/system-health/system-health.module.js.map +1 -1
- package/dist/system-health/system-health.service.d.ts.map +1 -1
- package/dist/system-health/system-health.service.js.map +1 -1
- package/dist/transcode/config/aliyun-oss.config.d.ts +14 -0
- package/dist/transcode/config/aliyun-oss.config.d.ts.map +1 -0
- package/dist/transcode/config/aliyun-oss.config.js +3 -0
- package/dist/transcode/config/aliyun-oss.config.js.map +1 -0
- package/dist/transcode/config/transcode.config.d.ts +55 -0
- package/dist/transcode/config/transcode.config.d.ts.map +1 -0
- package/dist/transcode/config/transcode.config.js +97 -0
- package/dist/transcode/config/transcode.config.js.map +1 -0
- package/dist/transcode/index.d.ts +27 -0
- package/dist/transcode/index.d.ts.map +1 -0
- package/dist/transcode/index.js +55 -0
- package/dist/transcode/index.js.map +1 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.client.d.ts +157 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.client.d.ts.map +1 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.client.js +879 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.client.js.map +1 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.module.d.ts +3 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.module.d.ts.map +1 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.module.js +23 -0
- package/dist/transcode/modules/aliyun-imm/aliyun-imm.module.js.map +1 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.client.d.ts +252 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.client.d.ts.map +1 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.client.js +1368 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.client.js.map +1 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.module.d.ts +3 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.module.d.ts.map +1 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.module.js +25 -0
- package/dist/transcode/modules/aliyun-oss/aliyun-oss-transcode.module.js.map +1 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.client.d.ts +118 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.client.d.ts.map +1 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.client.js +565 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.client.js.map +1 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.module.d.ts +3 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.module.d.ts.map +1 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.module.js +33 -0
- package/dist/transcode/modules/transcode-strategy/transcode-strategy.module.js.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.client.d.ts +93 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.client.d.ts.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.client.js +487 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.client.js.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.dto.d.ts +505 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.dto.d.ts.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.dto.js +10 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.dto.js.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.module.d.ts +3 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.module.d.ts.map +1 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.module.js +31 -0
- package/dist/transcode/modules/volcengine-tos/volcengine-tos-transcode.module.js.map +1 -0
- package/dist/transcode/types/transcode.types.d.ts +93 -0
- package/dist/transcode/types/transcode.types.d.ts.map +1 -0
- package/dist/transcode/types/transcode.types.js +3 -0
- package/dist/transcode/types/transcode.types.js.map +1 -0
- package/dist/transcode/utils/file.validator.d.ts +43 -0
- package/dist/transcode/utils/file.validator.d.ts.map +1 -0
- package/dist/transcode/utils/file.validator.js +126 -0
- package/dist/transcode/utils/file.validator.js.map +1 -0
- package/dist/transcode/utils/transcode.helper.d.ts +42 -0
- package/dist/transcode/utils/transcode.helper.d.ts.map +1 -0
- package/dist/transcode/utils/transcode.helper.js +221 -0
- package/dist/transcode/utils/transcode.helper.js.map +1 -0
- package/dist/uploader/index.d.ts +3 -0
- package/dist/uploader/index.d.ts.map +1 -0
- package/dist/uploader/index.js +8 -0
- package/dist/uploader/index.js.map +1 -0
- package/dist/uploader/uploader.module.d.ts.map +1 -1
- package/dist/uploader/uploader.module.js.map +1 -1
- package/dist/uploader/uploader.service.d.ts +1 -1
- package/dist/uploader/uploader.service.d.ts.map +1 -1
- package/dist/uploader/uploader.service.js.map +1 -1
- package/dist/verify/index.d.ts.map +1 -1
- package/dist/verify/index.js.map +1 -1
- package/dist/verify/verify.client.d.ts.map +1 -1
- package/dist/verify/verify.client.js.map +1 -1
- package/dist/verify/verify.module.d.ts.map +1 -1
- package/dist/verify/verify.module.js.map +1 -1
- package/dist/volcengine-tts/dto/tts.dto.d.ts +52 -0
- package/dist/volcengine-tts/dto/tts.dto.d.ts.map +1 -0
- package/dist/volcengine-tts/dto/tts.dto.js +59 -0
- package/dist/volcengine-tts/dto/tts.dto.js.map +1 -0
- package/dist/volcengine-tts/index.d.ts +4 -0
- package/dist/volcengine-tts/index.d.ts.map +1 -0
- package/dist/volcengine-tts/index.js +20 -0
- package/dist/volcengine-tts/index.js.map +1 -0
- package/dist/volcengine-tts/volcengine-tts.client.d.ts +104 -0
- package/dist/volcengine-tts/volcengine-tts.client.d.ts.map +1 -0
- package/dist/volcengine-tts/volcengine-tts.client.js +690 -0
- package/dist/volcengine-tts/volcengine-tts.client.js.map +1 -0
- package/dist/volcengine-tts/volcengine-tts.module.d.ts +3 -0
- package/dist/volcengine-tts/volcengine-tts.module.d.ts.map +1 -0
- package/dist/volcengine-tts/volcengine-tts.module.js +34 -0
- package/dist/volcengine-tts/volcengine-tts.module.js.map +1 -0
- package/package.json +83 -9
|
@@ -0,0 +1,304 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview OpenSpeech 语音识别服务客户端
|
|
3
|
+
*
|
|
4
|
+
* 本文件是语音识别服务的统一入口(Facade 模式),提供了简洁的 API 接口,
|
|
5
|
+
* 内部通过工厂模式委托给具体的云服务商实现。
|
|
6
|
+
*
|
|
7
|
+
* 架构说明:
|
|
8
|
+
* ```
|
|
9
|
+
* ┌─────────────────────────────────────────────────────────────┐
|
|
10
|
+
* │ OpenspeechClient │
|
|
11
|
+
* │ (Facade 门面) │
|
|
12
|
+
* └─────────────────────────────┬───────────────────────────────┘
|
|
13
|
+
* │
|
|
14
|
+
* ▼
|
|
15
|
+
* ┌─────────────────────────────────────────────────────────────┐
|
|
16
|
+
* │ OpenspeechProviderFactory │
|
|
17
|
+
* │ (工厂模式) │
|
|
18
|
+
* └──────────────┬──────────────────────────────┬───────────────┘
|
|
19
|
+
* │ │
|
|
20
|
+
* ▼ ▼
|
|
21
|
+
* ┌──────────────────────────┐ ┌──────────────────────────────┐
|
|
22
|
+
* │ AliyunOpenspeechProvider │ │ VolcengineOpenspeechProvider │
|
|
23
|
+
* │ (阿里云实现) │ │ (火山引擎实现) │
|
|
24
|
+
* └──────────────────────────┘ └──────────────────────────────┘
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @module openspeech/client
|
|
28
|
+
*/
|
|
29
|
+
import { Logger } from 'winston';
|
|
30
|
+
import { FileBucketVendor, FileSource } from '@prisma/client';
|
|
31
|
+
import { FileStorageService } from '../file-storage/file-storage.service';
|
|
32
|
+
import { OpenspeechProviderFactory } from './openspeech.factory';
|
|
33
|
+
import { SubmitTaskResult, TaskStatusResult, StreamingConnectParams, StreamingAsrCallbacks, StreamingAsrStatus, IStreamingAsrProvider } from './types';
|
|
34
|
+
/**
|
|
35
|
+
* OpenSpeech 语音识别服务客户端
|
|
36
|
+
*
|
|
37
|
+
* @description 作为语音识别服务的统一门面,提供以下核心功能:
|
|
38
|
+
*
|
|
39
|
+
* 1. **任务提交** - `submitTranscribeTask`
|
|
40
|
+
* 根据 FileKey 自动选择云服务商,提交语音识别任务
|
|
41
|
+
*
|
|
42
|
+
* 2. **状态查询** - `queryTranscribeTaskStatus`
|
|
43
|
+
* 查询指定任务的处理状态和结果
|
|
44
|
+
*
|
|
45
|
+
* 3. **同步识别** - `transcribeFromFileKey`
|
|
46
|
+
* 提交任务并轮询等待结果(阻塞式,向后兼容)
|
|
47
|
+
*
|
|
48
|
+
* 云服务商选择逻辑:
|
|
49
|
+
* - 优先使用 `preferVendor` 参数指定的云服务商
|
|
50
|
+
* - 默认根据 FileKey 的 vendor 字段选择
|
|
51
|
+
* - oss -> 阿里云, tos -> 火山引擎
|
|
52
|
+
*
|
|
53
|
+
* @class OpenspeechClient
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```typescript
|
|
57
|
+
* // 注入客户端
|
|
58
|
+
* @Injectable()
|
|
59
|
+
* class VideoService {
|
|
60
|
+
* constructor(private readonly openspeech: OpenspeechClient) {}
|
|
61
|
+
*
|
|
62
|
+
* // 异步任务模式(推荐)
|
|
63
|
+
* async startTranscription(fileKey: FileKey) {
|
|
64
|
+
* const { vendor, vendorTaskId } = await this.openspeech.submitTranscribeTask(fileKey);
|
|
65
|
+
* // 保存 vendorTaskId,通过回调或轮询获取结果
|
|
66
|
+
* return { vendor, vendorTaskId };
|
|
67
|
+
* }
|
|
68
|
+
*
|
|
69
|
+
* // 查询任务状态
|
|
70
|
+
* async checkStatus(vendor: FileBucketVendor, taskId: string) {
|
|
71
|
+
* return await this.openspeech.queryTranscribeTaskStatus(vendor, taskId);
|
|
72
|
+
* }
|
|
73
|
+
*
|
|
74
|
+
* // 同步模式(阻塞等待,适用于简单场景)
|
|
75
|
+
* async transcribeSync(fileKey: FileKey) {
|
|
76
|
+
* return await this.openspeech.transcribeFromFileKey(fileKey);
|
|
77
|
+
* }
|
|
78
|
+
* }
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare class OpenspeechClient {
|
|
82
|
+
private readonly fileApi;
|
|
83
|
+
private readonly providerFactory;
|
|
84
|
+
private readonly logger;
|
|
85
|
+
/**
|
|
86
|
+
* 构造函数
|
|
87
|
+
*
|
|
88
|
+
* @param {FileStorageService} fileApi - 文件存储服务
|
|
89
|
+
* @param {OpenspeechProviderFactory} providerFactory - 提供商工厂
|
|
90
|
+
* @param {Logger} logger - Winston 日志记录器
|
|
91
|
+
*/
|
|
92
|
+
constructor(fileApi: FileStorageService, providerFactory: OpenspeechProviderFactory, logger: Logger);
|
|
93
|
+
/**
|
|
94
|
+
* 根据 FileKey 提交语音识别任务
|
|
95
|
+
*
|
|
96
|
+
* @description 根据文件信息自动选择云服务商并提交识别任务。
|
|
97
|
+
*
|
|
98
|
+
* 处理流程:
|
|
99
|
+
* 1. 验证 FileKey 的必要字段
|
|
100
|
+
* 2. 根据视频 key 推导音频 key
|
|
101
|
+
* 3. 获取存储桶配置,拼接音频 HTTP URL
|
|
102
|
+
* 4. 选择云服务商(优先级:preferVendor > vendor)
|
|
103
|
+
* 5. 调用对应提供商提交任务
|
|
104
|
+
*
|
|
105
|
+
* @param {Partial<FileKey>} fileKey - 文件信息
|
|
106
|
+
* @param {FileBucketVendor} [fileKey.vendor] - 存储服务商(必填)
|
|
107
|
+
* @param {string} [fileKey.bucket] - 存储桶名称(必填)
|
|
108
|
+
* @param {string} [fileKey.key] - 文件路径(必填)
|
|
109
|
+
* @param {FileBucketVendor} [(fileKey as any).preferVendor] - 优先使用的云服务商
|
|
110
|
+
* @returns {Promise<SubmitTaskResult>} 任务提交结果
|
|
111
|
+
* @throws {Error} FileKey 无效或提交失败时抛出异常
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* // 基本用法
|
|
116
|
+
* const result = await client.submitTranscribeTask({
|
|
117
|
+
* vendor: 'oss',
|
|
118
|
+
* bucket: 'my-bucket',
|
|
119
|
+
* key: 'videos/example.mp4',
|
|
120
|
+
* });
|
|
121
|
+
* console.log('Task ID:', result.vendorTaskId);
|
|
122
|
+
*
|
|
123
|
+
* // 指定使用火山引擎
|
|
124
|
+
* const result = await client.submitTranscribeTask({
|
|
125
|
+
* vendor: 'oss',
|
|
126
|
+
* bucket: 'my-bucket',
|
|
127
|
+
* key: 'videos/example.mp4',
|
|
128
|
+
* preferVendor: 'tos',
|
|
129
|
+
* } as any);
|
|
130
|
+
* ```
|
|
131
|
+
*/
|
|
132
|
+
submitTranscribeTask(fileKey: Partial<FileSource>): Promise<SubmitTaskResult>;
|
|
133
|
+
/**
|
|
134
|
+
* 查询语音识别任务状态
|
|
135
|
+
*
|
|
136
|
+
* @description 根据云服务商和任务 ID 查询识别任务的状态和结果。
|
|
137
|
+
*
|
|
138
|
+
* 返回状态说明:
|
|
139
|
+
* - `processing`: 任务正在处理中,需要继续轮询
|
|
140
|
+
* - `success`: 识别成功,text 字段包含识别结果
|
|
141
|
+
* - `error`: 识别失败,error 字段包含错误信息
|
|
142
|
+
*
|
|
143
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
144
|
+
* @param {string} vendorTaskId - 云服务商返回的任务 ID
|
|
145
|
+
* @returns {Promise<TaskStatusResult>} 任务状态和结果
|
|
146
|
+
* @throws {Error} 不支持的 vendor 类型时抛出异常
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const result = await client.queryTranscribeTaskStatus('oss', 'task-123');
|
|
151
|
+
*
|
|
152
|
+
* if (result.status === 'success') {
|
|
153
|
+
* console.log('识别文本:', result.text);
|
|
154
|
+
* } else if (result.status === 'processing') {
|
|
155
|
+
* // 稍后重试
|
|
156
|
+
* setTimeout(() => this.checkStatus(), 3000);
|
|
157
|
+
* } else {
|
|
158
|
+
* console.error('识别失败:', result.error);
|
|
159
|
+
* }
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
queryTranscribeTaskStatus(vendor: FileBucketVendor, vendorTaskId: string): Promise<TaskStatusResult>;
|
|
163
|
+
/**
|
|
164
|
+
* 根据 FileKey 进行语音识别(同步阻塞模式)
|
|
165
|
+
*
|
|
166
|
+
* @description 提交任务并轮询等待结果,直到识别完成或失败。
|
|
167
|
+
* 此方法会阻塞直到获得最终结果,适用于简单场景。
|
|
168
|
+
*
|
|
169
|
+
* **注意**:对于生产环境,建议使用异步模式:
|
|
170
|
+
* 1. 调用 `submitTranscribeTask` 提交任务
|
|
171
|
+
* 2. 配置回调 URL 接收结果,或定时调用 `queryTranscribeTaskStatus` 查询
|
|
172
|
+
*
|
|
173
|
+
* @deprecated 建议使用异步模式(submitTranscribeTask + queryTranscribeTaskStatus)
|
|
174
|
+
* @param {Partial<FileKey>} fileKey - 文件信息
|
|
175
|
+
* @returns {Promise<string>} 识别出的文本内容
|
|
176
|
+
* @throws {Error} 识别失败时抛出异常
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* ```typescript
|
|
180
|
+
* try {
|
|
181
|
+
* const text = await client.transcribeFromFileKey({
|
|
182
|
+
* vendor: 'oss',
|
|
183
|
+
* bucket: 'my-bucket',
|
|
184
|
+
* key: 'videos/example.mp4',
|
|
185
|
+
* });
|
|
186
|
+
* console.log('识别结果:', text);
|
|
187
|
+
* } catch (error) {
|
|
188
|
+
* console.error('识别失败:', error.message);
|
|
189
|
+
* }
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
transcribeFromFileKey(fileKey: Partial<FileSource>): Promise<string>;
|
|
193
|
+
/**
|
|
194
|
+
* 建立流式语音识别连接
|
|
195
|
+
*
|
|
196
|
+
* @description 建立 WebSocket 连接用于实时语音识别。
|
|
197
|
+
* 目前仅支持火山引擎 (tos) 流式识别。
|
|
198
|
+
*
|
|
199
|
+
* @param {FileBucketVendor} vendor - 云服务商类型(目前仅支持 'tos')
|
|
200
|
+
* @param {StreamingConnectParams} params - 连接参数
|
|
201
|
+
* @param {StreamingAsrCallbacks} callbacks - 事件回调
|
|
202
|
+
* @returns {Promise<string>} 连接 ID
|
|
203
|
+
* @throws {Error} 不支持的 vendor 类型或连接失败时抛出异常
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* const connectionId = await client.connectStreaming(
|
|
208
|
+
* 'tos',
|
|
209
|
+
* { sessionId: 'session-123', audioFormat: 'pcm' },
|
|
210
|
+
* {
|
|
211
|
+
* onResult: (result) => console.log('识别结果:', result.text),
|
|
212
|
+
* onConnected: () => console.log('已连接'),
|
|
213
|
+
* onError: (error) => console.error('错误:', error),
|
|
214
|
+
* }
|
|
215
|
+
* );
|
|
216
|
+
* ```
|
|
217
|
+
*/
|
|
218
|
+
connectStreaming(vendor: FileBucketVendor, params: StreamingConnectParams, callbacks: StreamingAsrCallbacks): Promise<string>;
|
|
219
|
+
/**
|
|
220
|
+
* 发送音频数据到流式识别连接
|
|
221
|
+
*
|
|
222
|
+
* @description 将音频数据发送到已建立的流式识别连接。
|
|
223
|
+
*
|
|
224
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
225
|
+
* @param {string} connectionId - 连接 ID
|
|
226
|
+
* @param {Buffer} audioData - 音频数据
|
|
227
|
+
* @param {boolean} [isLast=false] - 是否为最后一帧
|
|
228
|
+
* @throws {Error} 连接不存在或发送失败时抛出异常
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* // 发送音频数据
|
|
233
|
+
* await client.sendStreamingAudio('tos', connectionId, audioBuffer);
|
|
234
|
+
*
|
|
235
|
+
* // 发送最后一帧
|
|
236
|
+
* await client.sendStreamingAudio('tos', connectionId, lastBuffer, true);
|
|
237
|
+
* ```
|
|
238
|
+
*/
|
|
239
|
+
sendStreamingAudio(vendor: FileBucketVendor, connectionId: string, audioData: Buffer, isLast?: boolean): Promise<void>;
|
|
240
|
+
/**
|
|
241
|
+
* 关闭流式识别连接
|
|
242
|
+
*
|
|
243
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
244
|
+
* @param {string} connectionId - 连接 ID
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* await client.disconnectStreaming('tos', connectionId);
|
|
249
|
+
* ```
|
|
250
|
+
*/
|
|
251
|
+
disconnectStreaming(vendor: FileBucketVendor, connectionId: string): Promise<void>;
|
|
252
|
+
/**
|
|
253
|
+
* 获取流式识别连接状态
|
|
254
|
+
*
|
|
255
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
256
|
+
* @param {string} connectionId - 连接 ID
|
|
257
|
+
* @returns {StreamingAsrStatus} 连接状态
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```typescript
|
|
261
|
+
* const status = client.getStreamingStatus('tos', connectionId);
|
|
262
|
+
* if (status === 'streaming') {
|
|
263
|
+
* // 正在识别中
|
|
264
|
+
* }
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
getStreamingStatus(vendor: FileBucketVendor, connectionId: string): StreamingAsrStatus;
|
|
268
|
+
/**
|
|
269
|
+
* 获取流式识别提供商实例
|
|
270
|
+
*
|
|
271
|
+
* @description 直接获取流式识别提供商,用于高级操作。
|
|
272
|
+
*
|
|
273
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
274
|
+
* @returns {IStreamingAsrProvider} 流式识别提供商实例
|
|
275
|
+
*
|
|
276
|
+
* @example
|
|
277
|
+
* ```typescript
|
|
278
|
+
* const provider = client.getStreamingProvider('tos');
|
|
279
|
+
* const transcript = provider.getTranscript(connectionId);
|
|
280
|
+
* ```
|
|
281
|
+
*/
|
|
282
|
+
getStreamingProvider(vendor: FileBucketVendor): IStreamingAsrProvider;
|
|
283
|
+
/**
|
|
284
|
+
* 检查指定云服务商是否支持流式识别
|
|
285
|
+
*
|
|
286
|
+
* @param {FileBucketVendor} vendor - 云服务商类型
|
|
287
|
+
* @returns {boolean} 是否支持流式识别
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* ```typescript
|
|
291
|
+
* if (client.isStreamingAvailable('tos')) {
|
|
292
|
+
* // 使用流式识别
|
|
293
|
+
* }
|
|
294
|
+
* ```
|
|
295
|
+
*/
|
|
296
|
+
isStreamingAvailable(vendor: FileBucketVendor): boolean;
|
|
297
|
+
/**
|
|
298
|
+
* 获取所有支持流式识别的云服务商列表
|
|
299
|
+
*
|
|
300
|
+
* @returns {FileBucketVendor[]} 支持流式识别的云服务商列表
|
|
301
|
+
*/
|
|
302
|
+
getStreamingAvailableVendors(): FileBucketVendor[];
|
|
303
|
+
}
|
|
304
|
+
//# sourceMappingURL=openspeech.client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openspeech.client.d.ts","sourceRoot":"","sources":["../../src/openspeech/openspeech.client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,qBACa,gBAAgB;IASzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,eAAe;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAV1D;;;;;;OAMG;gBAEgB,OAAO,EAAE,kBAAkB,EAC3B,eAAe,EAAE,yBAAyB,EACT,MAAM,EAAE,MAAM;IAGlE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACG,oBAAoB,CACxB,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAuC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,yBAAyB,CAC7B,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,gBAAgB,CAAC;IAK5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,qBAAqB,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IA0B1E;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,gBAAgB,CACpB,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,sBAAsB,EAC9B,SAAS,EAAE,qBAAqB,GAC/B,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,kBAAkB,CACtB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,IAAI,CAAC;IAKhB;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAUhB;;;;;;;;;;;;;;OAcG;IACH,kBAAkB,CAChB,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,MAAM,GACnB,kBAAkB;IAKrB;;;;;;;;;;;;;OAaG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB;IAIrE;;;;;;;;;;;;OAYG;IACH,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO;IAIvD;;;;OAIG;IACH,4BAA4B,IAAI,gBAAgB,EAAE;CAGnD"}
|