复制Google Cloud Video Intelligence示例代码遇TypeScript错误求助
解决Google Cloud Video Intelligence语音转写示例的TypeScript错误
以下是针对你遇到的TypeScript错误的修正方案,结合常见类型不匹配问题调整代码:
常见错误原因及修正点
- Feature枚举类型不匹配:直接用字符串
"SPEECH_TRANSCRIPTION"不符合TypeScript类型定义,需使用官方提供的枚举值。 - 操作结果解构错误:部分版本中
operation.promise()返回单个对象而非数组,无需解构。 - 可选属性空值检查:TypeScript会严格校验可能为
undefined的属性,需添加空值判断避免报错。 - 时间属性的可选性处理:
startTime和endTime可能不存在,需先判断再访问。
修正后的代码
import { VideoIntelligenceServiceClient, Feature } from '@google-cloud/video-intelligence'; const client = new VideoIntelligenceServiceClient(); const gcsUri = '你的GCS存储路径'; // 替换为实际路径 const videoContext = { speechTranscriptionConfig: { languageCode: 'en-US', enableAutomaticPunctuation: true, }, }; const req = { inputUri: gcsUri, features: [Feature.SPEECH_TRANSCRIPTION], // 使用枚举值而非字符串 videoContext: videoContext, }; // 执行标注请求 const [operation] = await client.annotateVideo(req); console.log('等待操作完成...'); // 修正:直接获取操作结果,无需解构数组 const operationResult = await operation.promise(); // 空值检查:确保annotationResults存在 const annotationResults = operationResult.annotationResults?.[0]; if (!annotationResults) { console.log('未获取到标注结果'); return; } for (const speechTranscription of annotationResults.speechTranscriptions || []) { for (const alternative of speechTranscription.alternatives || []) { console.log('备选转录信息:'); console.log(`转录文本:${alternative.transcript}`); console.log(`置信度:${alternative.confidence}`); console.log('单词级信息:'); // 空值检查:确保words数组存在 for (const wordInfo of alternative.words || []) { const word = wordInfo.word; // 处理时间属性的可选性 const startSeconds = wordInfo.startTime?.seconds || 0; const startNanos = wordInfo.startTime?.nanos || 0; const endSeconds = wordInfo.endTime?.seconds || 0; const endNanos = wordInfo.endTime?.nanos || 0; const start_time = startSeconds + startNanos * 1e-9; const end_time = endSeconds + endNanos * 1e-9; console.log(`\t${start_time}s - ${end_time}s: ${word}`); } } }
额外说明
- 确保已安装最新版本的依赖包:
npm install @google-cloud/video-intelligence@latest - 若仍有类型报错,可临时用类型断言(如
as any)绕过,但建议优先遵循类型定义保证代码健壮性。
内容的提问来源于stack exchange,提问作者Gumrai Aung
相关产品推荐
相关产品推荐

