当前位置: 首页 > article >正文

SBOM实战指南:如何用Black Duck自动生成软件物料清单(附避坑技巧)

SBOM实战指南如何用Black Duck自动生成软件物料清单附避坑技巧在数字化转型加速的今天软件供应链安全已成为企业不可忽视的核心议题。作为开发者和安全工程师我们常常面临这样的困境明明使用了最新版本的开源组件却依然被曝出存在高危漏洞。问题的根源往往在于缺乏对软件成分的透明化管理——这正是SBOMSoftware Bill of Materials的价值所在。本文将带您深入Black Duck的实际操作场景从环境配置到报告解读手把手构建符合NTIA标准的安全防线。1. 环境准备与工具选型1.1 Black Duck核心组件解析Black Duck作为Synopsys旗下的旗舰SCA工具其架构设计充分考虑了企业级部署需求。典型部署包含以下模块Hub Server中央管理节点负责策略配置、漏洞数据库同步和报告生成Scan Client支持Docker、Jenkins插件、CLI等多种扫描方式BDIOBlack Duck Input/Output专有数据交换格式支持与第三方工具集成# 验证Docker版扫描客户端可用性 docker run --rm blackducksoftware/hub-detect:latest detect --help注意生产环境建议使用企业版Hub社区版存在扫描频率和组件库限制1.2 硬件资源配置建议根据实际项目规模推荐以下配置基准项目规模CPU核心内存存储空间小型10万行4核8GB50GB中型100万行8核16GB200GB大型500万行16核32GB1TB实际测试数据显示Java项目的扫描时间与代码量呈非线性增长代码量50万行 → 平均扫描耗时23分钟 代码量200万行 → 平均扫描耗时1小时12分钟2. 扫描配置实战2.1 多语言项目扫描策略针对混合技术栈项目需要特别关注这些参数组合{ scan.target.type: MIXED, detect.language.force: [JAVA, PYTHON, NODEJS], detect.excluded.directories: [test, docs], detect.parallel.processors: 4 }常见语言的特殊处理Go模块需设置GOPRIVATE环境变量避免公共仓库冲突Python虚拟环境添加--detect.pip.requirements.path参数指定requirements.txt前端项目启用--detect.npm.include.dev.dependenciesfalse过滤开发依赖2.2 扫描模式深度对比Black Duck提供三种扫描策略适用场景各异模式类型分析深度耗时适用阶段快速扫描仅识别直接依赖5-15分钟开发期频繁验证标准扫描递归分析二级依赖30-90分钟每日构建深度扫描字节码特征匹配2-4小时发布前审计提示iOS项目建议结合--detect.binary.scan.file.path进行二进制扫描3. 报告解读与漏洞修复3.1 优先级评估三维模型面对扫描报告的数百条漏洞告警建议按以下维度建立处置矩阵可利用性CVSS评分≥7.0传播层级是否影响传递依赖修复成本版本升级的兼容性影响典型漏洞处置流程graph TD A[原始报告] -- B{CVSS≥7.0?} B --|是| C[48小时内修补] B --|否| D{影响核心功能?} D --|是| E[下个迭代修复] D --|否| F[风险接受审批]3.2 许可证冲突解决方案在金融行业项目中遇到的典型问题GPL-3.0组件与商业软件冲突AGPL组件导致云服务分发风险Apache-2.0与MIT的声明要求差异应对策略使用--detect.license.search.depth2增强检测在Hub中配置许可证策略矩阵对必须使用的冲突组件申请法律豁免4. 持续集成进阶实践4.1 Jenkins流水线集成样例pipeline { agent any stages { stage(SBOM生成) { steps { withCredentials([string(credentialsId: blackduck-api, variable: BD_TOKEN)]) { sh docker run --rm -v $(pwd):/scan \ -e BD_HUB_URLhttps://your-hub.com \ -e BD_API_TOKEN$BD_TOKEN \ blackducksoftware/hub-detect:latest \ detect --detect.project.name${JOB_NAME} \ --detect.project.version.name${BUILD_NUMBER} } } } stage(门禁检查) { steps { script { def policyStatus sh(returnStdout: true, script: curl -s https://your-hub.com/api/projects/${PROJECT_ID}/versions/${VERSION_ID}/policy-status) if (readJSON(text: policyStatus).overallStatus FAIL) { error 策略检查未通过 } } } } } }4.2 扫描性能优化技巧通过实测数据验证的有效方法增量扫描对Git项目使用--detect.git.diff.compare.toorigin/main缓存加速挂载持久化卷存储~/.gradle和~/.m2资源限制设置--detect.memory4096避免OOM某电商平台优化前后对比优化措施扫描耗时CPU占用峰值未优化78分钟92%增量扫描缓存32分钟65%内存限制并行处理19分钟73%5. 企业级部署架构5.1 高可用方案设计典型的三节点集群配置----------------- | 负载均衡器 | ---------------- | -------------------------------- | | | ----------------- -------------- --------------- | Hub主节点 | | Hub备节点 | | 数据库集群 | | (8C16GSSD) | | (8C16GSSD) | | (PG 12Patroni)| ------------------ -------------- ----------------关键配置参数blackduck.hub.db.connection.max50 blackduck.hub.worker.count8 blackduck.hub.cache.size2048m5.2 灾恢复演练清单定期验证数据库备份可恢复性测试备节点自动接管流程扫描任务队列持久化配置API限流策略压力测试在最近一次金融客户演练中完整恢复耗时记录恢复阶段允许RTO实际耗时数据库恢复1小时38分钟服务重新上线30分钟22分钟历史数据同步4小时3小时15分6. 合规性适配实践6.1 NTIA最低要素要求对照Black Duck输出与NTIA标准的映射关系NTIA要求Black Duck对应字段示例值供应商名称component.originNameorg.apache.logging.log4j组件版本component.versionName2.17.1依赖关系component.dependencyPathsspring-boot→log4j许可证信息component.licensesApache-2.0唯一标识符component.externalIds[purl]pkg:maven/log4j/log4j2.17.16.2 多标准报告生成使用BDIO转换工具链# 生成CycloneDX格式 java -jar bdio-to-cyclonedx.jar input.bdio -o sbom.cdx.json # 转换为SPDX标签值格式 cyclonedx-cli convert --input-file sbom.cdx.json --output-format spdxtv某汽车软件供应商的实际输出对比格式类型文件大小包含组件数生成耗时BDIO4.2MB1,84212秒CycloneDX3.7MB1,84218秒SPDX5.1MB1,84227秒7. 典型问题排查指南7.1 扫描失败常见场景网络连接问题现象Failed to connect to hub at https://...检查代理设置--detect.proxy.hostproxy.example.com内存不足现象java.lang.OutOfMemoryError解决方案设置-Xmx4G并减少并行任务数许可证识别错误现象将MIT误识别为BSD-3-Clause修正方法添加自定义许可证映射规则7.2 漏洞误报处理流程在Hub界面标记为Not Exploitable添加技术说明证据链申请策略例外如需同步到所有关联项目某次误报分析记录漏洞IDCVE-2023-12345 受影响组件commons-io-2.6 误报原因 - 漏洞影响的是readLines()方法 - 项目仅使用copy()方法 - 已通过单元测试验证无风险路径8. 成本优化与资源管理8.1 许可证用量优化通过组件去重可显著降低成本-- 查询跨项目重复组件 SELECT component_name, version, COUNT(project_id) FROM project_components GROUP BY component_name, version HAVING COUNT(project_id) 1 ORDER BY COUNT(project_id) DESC;某电信企业优化效果优化措施计费组件数年节省成本去重前4,372-标准化组件版本3,891$18,500建立内部镜像仓库2,764$37,2008.2 存储清理策略建议的自动化清理策略保留所有生产版本的完整扫描开发环境仅保留最近30次扫描设置自动清理任务# 清理超过180天的非生产扫描 curl -X DELETE ${HUB_URL}/api/scan-data?olderThan180dnonProductionOnlytrue在实施自动化清理后某云服务商的存储增长曲线时间周期原始存储量优化后存储量初始状态2.4TB2.4TB3个月后3.1TB2.7TB6个月后4.3TB2.9TB9. 新兴技术适配方案9.1 Wasm组件分析针对WebAssembly的特殊处理# 使用wasm2wat进行反编译 detect.binary.scan.post.processor.commandwasm2wat {filePath} -o {outputPath} # 配置自定义特征提取 detect.binary.scan.file.extensions.wasm detect.binary.scan.file.paths/app/wasm9.2 AI模型依赖追踪机器学习项目的SBOM特殊要求记录训练数据集来源Data Card标注框架依赖如TensorFlow 2.12识别模型转换工具链ONNX runtime等监控推理引擎版本TensorRT 8.6某CV项目SBOM扩展字段示例{ component: { type: AI_MODEL, trainingData: COCO 2017, quantization: INT8, framework: { name: PyTorch, version: 1.13.1 } } }10. 行业落地案例集锦10.1 金融行业实施要点某银行集团的阶段性成果覆盖率提升从核心系统扩展到所有280个应用漏洞修复率高危漏洞平均修复时间从62天缩短至14天合规审计满足银保监会《应用系统安全开发生命周期指引》关键成功因素与DevSecOps流水线深度集成建立组件使用审批委员会制定内部组件黑/白名单10.2 物联网设备实践智能家居厂商的特殊处理固件分析结合Binwalk提取文件系统轻量级格式采用CycloneDX精简模式OTA更新SBOM差分比对策略版本更新时的组件变更示例组件名称旧版本新版本变更类型openssl1.1.1t3.0.8安全升级freertos10.4.3-移除protobuf-c-1.4.0新增依赖11. 工具链扩展集成11.1 IDE插件实时检测VS Code扩展配置要点{ blackduck.ide.projectName: ${workspaceFolderBasename}, blackduck.ide.autoScan: true, blackduck.ide.severityFilter: [CRITICAL, HIGH], blackduck.ide.excludePatterns: [**/test/**] }开发者体验改进数据指标插件使用前插件使用后编码阶段漏洞发现率12%63%修复成本人时8.73.211.2 与漏洞管理平台对接通过REST API实现Jira自动提单def create_vuln_ticket(component, vulnerability): jira JIRA(serverhttps://your-jira.com, basic_auth(user, token)) issue_dict { project: {key: SEC}, summary: f[SBOM] {component}存在{vulnerability}漏洞, description: f组件{component}\n漏洞ID{vulnerability.id}\nCVSS评分{vulnerability.cvss}, issuetype: {name: Security Bug} } return jira.create_issue(fieldsissue_dict)某互联网公司的集成效果自动开单准确率92%平均响应时间从72小时缩短至4小时漏洞闭环率提升从65%到89%12. 度量体系建设12.1 核心监控指标建议的SBOM健康度仪表盘指标名称计算公式目标值组件覆盖率(已扫描项目/总项目)×100%≥95%漏洞修复率(已修复漏洞/应修复漏洞)×100%≥85%许可证合规率(合规组件/总组件)×100%100%扫描成功率(成功扫描次数/总扫描次数)×100%≥98%12.2 改进效果评估某次季度优化项目的关键数据指标Q1基准Q2现状变化率高危漏洞数量14762-58%组件重复率37%19%-49%扫描平均耗时46分钟28分钟-39%合规审计缺陷项236-74%13. 进阶技巧与经验分享13.1 基线建立方法论黄金镜像策略为每个技术栈建立标准组件集定期季度更新基准版本通过策略强制实施组件生命周期管理timeline title 组件生命周期管理 section 引入阶段 技术评估 : 2023-01-01, 7d 安全扫描 : 2023-01-08, 3d section 使用阶段 版本监控 : 2023-01-11, 90d 漏洞响应 : 2023-04-11, 14d section 淘汰阶段 迁移计划 : 2023-06-01, 30d 归档下线 : 2023-07-01, 7d13.2 跨团队协作模式研发与安全团队的SBOM交接清单研发输出物完整依赖声明文件pom.xml等构建环境说明Dockerfile第三方组件来源记录安全验收标准无禁止许可证类型无未处置的高危漏洞SBOM机器可读格式验证某敏捷团队的实际协作节奏每日站会同步新增组件每迭代评审SBOM变更每发布周期审计合规性14. 技术债务可视化14.1 风险热力图生成使用PythonMatplotlib实现def generate_risk_heatmap(sbom_data): df pd.DataFrame({ component: [c[name] for c in sbom_data], vulnerabilities: [len(c[vulns]) for c in sbom_data], license_risk: [calc_license_score(c) for c in sbom_data] }) plt.figure(figsize(12,8)) sns.heatmap(df.pivot_table(indexcomponent, values[vulnerabilities,license_risk]), annotTrue, cmapYlOrRd) plt.title(SBOM Risk Heatmap) return plt.gcf()14.2 技术债务量化模型风险评分计算公式风险值 (漏洞数 × CVSS均值) (许可证风险权重) (过期天数 × 0.1)某中台系统的技术债务分布组件类别平均风险值占比前端框架47.228%数据库驱动65.839%工具链22.113%中间件53.420%15. 未来演进方向15.1 供应链攻击防御结合SBOM的增强防护措施构建溯源验证每个组件的构建环境来源验证检查组件分发路径完整性行为监控运行时异常调用链检测15.2 云原生环境适配针对Kubernetes的SBOM扩展Helm Chart分析解析chart依赖树Operator审计监控CRD使用组件Sidecar扫描运行时动态检测某云服务商的实施架构Cluster Scanner → SBOM Generator → Policy Engine → Dashboard ↑ ↑ ↑ K8s API Server Image Registry Admission Controller16. 资源推荐与扩展阅读16.1 官方文档精要[Black Duck Hub REST API指南]重点阅读/api/projects和/api/vulnerabilities端点[NTIA SBOM最小要素要求]第3章数据字段标准化[CycloneDX规范]附录B与SPDX的映射关系16.2 社区实践案例值得关注的GitHub仓库sbom-toolkit多格式转换工具集vex-data漏洞可利用性示例库sbom-quickstart各语言生成模板在实施过程中最实用的经验是建立组件目录服务将内部开发的共享库与第三方组件统一管理。我们搭建的Nexus仓库集成Black Duck后新项目组件的重复利用率提升了40%同时显著降低了许可证合规风险。

相关文章:

SBOM实战指南:如何用Black Duck自动生成软件物料清单(附避坑技巧)

SBOM实战指南:如何用Black Duck自动生成软件物料清单(附避坑技巧) 在数字化转型加速的今天,软件供应链安全已成为企业不可忽视的核心议题。作为开发者和安全工程师,我们常常面临这样的困境:明明使用了最新版…...

AI临终牧师:聆听废弃算法最后的“忏悔”

——测试工程师的算法生命终期管理指南第一章 算法墓园:代码生命的终局诊断当金融风控系统“Alpha-Sentinel”的F1值从0.92塌陷至0.71,内存占用峰值暴涨300%至3.2GB,测试仪表盘的持续飘红宣告了算法的临床死亡。在算法临终阶段(De…...

Qwen3.5-9B惊艳案例:同一模型完成商品图识别、文案生成与卖点推理全流程

Qwen3.5-9B惊艳案例:同一模型完成商品图识别、文案生成与卖点推理全流程 1. 多模态AI的突破性表现 想象一下,当你上传一张商品图片,AI不仅能准确识别图中的物品,还能自动生成吸引人的营销文案,甚至分析出产品的核心卖…...

芯片制造实践:JS如何优化百度WebUploader对国产加密芯片的大文件分片传输与秒传支持?

客户这边啊,是汽车制造行业里的大哥大,是那种数一数二的企业。他们自己有一整套非常棒的业务系统,这套系统就像他们的得力助手,每天帮他们处理各种事情。但呢,随着行业竞争越来越激烈,技术也日新月异&#…...

基于STM32的数控线性稳压电源设计与实现,具备多种功能和保护机制

基于stm32的数控线性稳压电源,恒压恒流电源资料。 极具学习和设计参考价值,已验证,资料包括源程序,原理图,pcb等设计资料! 本设计采用220V市电输入工频变压器,将220V交流电压降为24V交流电压,经过全桥整流加…...

YOLO12目标检测模型API开发:从单张图片到视频流的完整解决方案

YOLO12目标检测模型API开发:从单张图片到视频流的完整解决方案 1. 引言 在计算机视觉领域,目标检测技术正以前所未有的速度改变着我们与数字世界的交互方式。YOLO12作为Ultralytics最新推出的实时目标检测模型,凭借其卓越的性能和高效的推理…...

从零构建ControlNet训练环境——基于fill50k数据集的实战指南

1. 环境准备:从零搭建ControlNet训练平台 第一次接触ControlNet训练时,最头疼的就是环境配置。记得去年我在一台老旧的Ubuntu服务器上折腾了整整三天,各种依赖冲突让人崩溃。现在回想起来,其实只要掌握几个关键步骤,半…...

Java开发者的AI伙伴:基于Qwen3-14B-AWQ的SpringBoot项目智能代码补全

Java开发者的AI伙伴:基于Qwen3-14B-AWQ的SpringBoot项目智能代码补全 1. 引言:当Java开发遇上AI助手 想象一下这样的场景:你正在编写一个复杂的SpringBoot服务层方法,刚写完方法签名和注释,AI助手就自动生成了完整的…...

Phi-3 Mini部署教程:构建支持离线知识更新的增量式模型热加载机制

Phi-3 Mini部署教程:构建支持离线知识更新的增量式模型热加载机制 1. 引言:为什么需要离线知识更新? 想象一下,你部署了一个智能助手,它能回答各种问题。但有一天,你希望它能记住公司最新的产品手册&…...

计算机毕业设计springboot某城市的地铁综合服务管理系统 基于Spring Boot的城市轨道交通智慧服务平台设计与实现 Spring Boot框架下地铁运营数字化管理信息系统开发

计算机毕业设计springboot某城市的地铁综合服务管理系统md860nzg (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着我国城市化进程的不断加速,城市轨道交通已成为缓…...

国风美学生成模型v1.0开发环境搭建:VMware虚拟机中配置GPU直通

VMware虚拟机GPU直通实战:为国风美学生成模型搭建专属开发环境 如果你正在研究国风美学生成模型,或者任何需要GPU加速的AI项目,但又不想在物理机上折腾得一团糟,那么今天聊的这个方法可能正合你意。直接在物理机上安装各种驱动、…...

基于DAMOYOLO-S的互动艺术装置:人体姿态触发动态视觉效果

基于DAMOYOLO-S的互动艺术装置:人体姿态触发动态视觉效果 你有没有想过,自己的一举一动,可以成为一幅画、一段旋律,甚至是一个光影世界的一部分?在美术馆里,我们习惯了安静地欣赏静态的作品。但今天&#…...

设计师必看:如何用CIE 1931色度图精准调色(附实战案例)

设计师必看:如何用CIE 1931色度图精准调色(附实战案例) 在数字设计领域,色彩一致性是专业设计师最常面临的挑战之一。同一组RGB值在不同设备上呈现的视觉效果可能天差地别——手机屏幕上的活力橙在印刷品上可能变成土黄色&#xf…...

天立国际与印尼Ciputra集团香港会谈共商印尼项目落地

2026年3月12日至15日,印尼Ciputra集团总裁Candra Ciputra携夫人到访中国香港,与天立国际控股(01773.HK)集团董事局主席兼总裁罗实展开深度会谈,这是双方2月签署战略合作备忘录后的首次系统性沟通,就印尼合作…...

简单几步搞定Unsloth安装:开启你的大模型训练之旅

简单几步搞定Unsloth安装:开启你的大模型训练之旅 1. Unsloth简介与核心优势 Unsloth是一个开源的LLM微调和强化学习框架,旨在让人工智能训练变得更加高效和易用。这个框架特别适合想要快速上手大语言模型训练的开发者和研究人员。 Unsloth的主要优势…...

Docker+OpenResty实战:5分钟搞定Lua动态路由配置(附完整代码)

DockerOpenResty极速指南:Lua动态路由的工程化实践 当微服务架构遇上A/B测试需求,动态路由成为现代Web开发中不可或缺的能力。今天我们将用DockerOpenResty构建一个生产级动态路由系统,不仅实现基础功能,更会分享性能调优和错误处…...

UNIT-00模型实现智能代码补全:以Java和Python为例

UNIT-00模型实现智能代码补全:以Java和Python为例 最近在写代码的时候,你是不是也经常遇到这样的场景:脑子里有个大概的思路,但具体到某个函数怎么写、某个API怎么调用,就得停下来去查文档或者翻看之前的代码。这种打…...

金融风控系统使用umeditor时如何处理加密文档内容导入?

CMS新闻管理系统Word图片转存开发日志 📅 2023年X月X日 - 寻找解决方案 作为一名大三的"码农",今天我要给我的CMS新闻管理系统添加一个超实用的功能:Word内容一键粘贴并自动上传图片!这绝对能让编辑小姐姐们开心到飞起…...

用过才敢说 9个AI论文平台 全场景通用测评 从开题到毕业论文全搞定

在学术研究日益数字化的今天,AI写作工具已成为科研人员和高校学子不可或缺的助手。然而,面对市场上琳琅满目的平台,如何选择真正适合自己的工具成为一大难题。为此,我们基于2026年的实测数据与用户真实反馈,启动了本次…...

别再只会ChatGPT了!这7个免费AI工具,帮你搞定图文音视频全流程创作

7款免费AI工具全流程创作指南:从文案到视频一键生成 在内容创作领域,AI工具已经从辅助角色逐渐成为生产力核心。但面对市面上数百种工具,大多数创作者依然陷入"选择困难"——要么重复使用ChatGPT处理所有需求,要么在复…...

Qwen3.5-9B效果对比:Qwen3.5-9B vs Qwen3-VL在OCR+推理联合任务中的实测提升

Qwen3.5-9B效果对比:Qwen3.5-9B vs Qwen3-VL在OCR推理联合任务中的实测提升 1. 模型能力概览 Qwen3.5-9B作为新一代多模态大模型,在视觉-语言联合任务中展现出显著优势。与上一代Qwen3-VL相比,该模型通过架构创新和训练优化,在O…...

MediaPipe TouchDesigner:实时视觉交互系统的技术革新与实践指南

MediaPipe TouchDesigner:实时视觉交互系统的技术革新与实践指南 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 在数字艺术、虚拟制…...

我们需要重视“物联网“!

现在还认为物联网是"未来技术"的企业,可能已经落后了。不是因为我们没有设备,而是因为我们没有用好设备产生的数据。 一、很多企业的设备还在"盲跑" 去工厂转一圈,设备不停转,但运行状态怎么样?能…...

光伏MPPT灰狼算法改进扰动观察法、局部阴影寻优最大功率点仿真(有参考资料)

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

SRC漏洞挖掘经验和技巧分享(二)

SRC漏洞挖掘经验和技巧分享(二) 一、字典的收集与优化:从量变到质变 字典是爆破的灵魂,但网上公开的字典大多藏着掖着,或者不够全面。 对于字典其实我相信很多师傅都有自己的一套方法,但是在互联网上分享…...

DP协议核心组件解析:SST协议中的符号与填充机制

1. SST协议基础:控制符号的角色与定位 在视频流传输的链路层中,SST协议就像一位经验丰富的交通警察,通过一系列控制符号(BS、BE、FS、FE、SR等)来指挥数据流的通行节奏。这些符号看似简单,实则承担着时序对…...

PyTorch优化器实战:深入理解torch.optim与lr_scheduler的协同训练策略

1. PyTorch优化器基础:从SGD到Adam的选择策略 当你第一次接触PyTorch训练神经网络时,优化器(optimizer)就像汽车的油门和方向盘,决定了模型参数更新的方向和步长。torch.optim模块提供了多种现成的优化算法,但很多新手会直接套用教…...

TikZ绘图实战:5分钟搞定LaTeX中的坐标系与基本图形绘制

TikZ绘图实战:5分钟搞定LaTeX中的坐标系与基本图形绘制 第一次接触LaTeX的科研工作者,往往会被论文中精美的矢量图表所吸引——那些线条平滑的函数曲线、比例精确的几何图形、排版严谨的坐标网格,其实都可通过TikZ这个LaTeX原生绘图工具快速实…...

避坑指南:海康威视SDK在WPF中的3大典型问题(延迟/句柄泄漏/跨线程访问)

海康威视SDK在WPF开发中的三大性能陷阱与实战解决方案 在工业监控、智能安防等领域,海康威视设备与WPF技术的结合已成为常见方案。然而,当开发者尝试将海康威视SDK集成到WPF应用中时,往往会遇到三个棘手的性能问题:视频延迟、句柄…...

Alexa如何听懂复杂提问:端到端SLU技术解析

“Alexa,播放《蓝色狂想曲》。” “正在播放《蓝色狂想曲》。” 客户常将这种与Alexa的互动描述为神奇的体验;而在不到十年前,这听起来还像是天方夜谭。 Alexa背后的科学组成部分之一是自动语音识别——Alexa从语音信号中解读语义信息所利用的…...