详情页标题前

腾讯云对象存储图文点读

详情页1

概述

在处理一些文本类信息时,例如图片中的英文,我们可以使用OCR识别技术来快速识别,并结合语音合成技术来朗读照片中的英文。本文将介绍如何使用 腾讯云数据万象(CI) 的OCR技术识别图片中的文本内容,并通过语音合成技术将文本转换成语音播放。

应用场景

语言学习

将语言教材和词典中的英文转化为语音播放,可以为学习者提供标准的发音示范,帮助他们更好地学习语音。这种技术适用于语音学习软件、外语学习应用等场景。

书籍阅读

借助图文点读技术,儿童绘本、漫画、地图导览等可迅速将图片中的内容转化为语音,从而提升信息获取的趣味性和互动性,让用户更便捷地阅读和获取信息。

准备工作

创建数据万象存储桶,详情请参见 存储桶操作在存储桶详情 – 智能语音页面,开启智能语音功能。

腾讯云对象存储图文点读


上传待处理的图片 到存储桶中。

操作步骤

步骤一 初始化 COS SDK 并配置相关信息

// 密钥请在访问管理控制台获取。https://console.cloud.tencent.com/cam/capiconst cos = new COS({  SecretId: 'AKID*******',  SecretKey: '**********',});
// 存储桶配置请在cos控制台获取。https://console.cloud.tencent.com/cos/bucket// 格式参考:Bucket: 'abc-1250000000', Region: 'ap-guangzhou'const bucketConf = { Bucket: 'test-1250000000', Region: 'ap-guangzhou'};

说明注意:该初始化方式仅供联调测试使用,为了安全起见,请勿在生产环境直接暴露密钥。生产环境请参考各语言 SDK 签名实现,详情请参见 SDK 签名实现

步骤二 使用 OCR 技术识别图片内容

数据万象通用文字识别功能(OCR)基于行业前沿的深度学习技术,将图片上的文字内容,智能识别为可编辑的文本。通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。对于存储在 test-1250000000 存储桶中的图片 test.png,OCR 识别如下:

// 使用 OCR 功能提取图片中的文字,接口可参考 https://cloud.tencent.com/document/product/460/63227cos.request({    ...bucketConf,    Key: 'test.png',    // 待识别的图片    Query: {        'ci-process': 'OCR',      }}, (ocrErr, ocrData) => {    if (ocrErr) {        console.log(JSON.stringify(ocrErr));        return alert('识别图片失败');    }    const list = ocrData?.Response?.TextDetections?.map(text => text.DetectedText || "");    const ocrResult = list?.join('\n') || "";    console.log(ocrResult);})

说明OCR计费规则参见 内容识别费用 – 通用文字识别识别效果如下:

腾讯云对象存储图文点读



腾讯云对象存储图文点读



步骤三 创建语音合成任务

数据万象语音合成技术通过先进的深度学习技术,将文本转换成自然流畅的语音。支持多种音色,并提供调节语速、语调、音量等功能。如果识别的文本内容 ocrResult 长度不超过300字符,可以直接创建语音合成任务,同步获取合成的音频。如果识别的文本内容 ocrResult 长度超过300字符,需要先将识别的内容上传到COS中,再创建语音合成任务。通过子账号使用时,需要授予相关的权限,详情请参见 授权粒度详情 文档。
创建语音合成任务,参数详情参见
提交任务接口


// 上传ocrResult到cos存储桶,参考接口: https://cloud.tencent.com/document/product/436/7749// 注意:为了避免上传出现跨域错误,需要设置跨域访问规则,简单调试可将来源Origin设置为*,参考 https://cloud.tencent.com/document/product/436/13318cos.putObject({ ...bucketConf, Key: key, // 目标文件名 Body: file,}, (err, data) => { if (err) { return console.log(JSON.stringify(OcrUploadErr)); } const txtUrl = `https://${bucketConf.Bucket}.cos.${bucketConf.Region}.myqcloud.com/content.txt`;
// 创建语音合成任务,参考接口:https://cloud.tencent.com/document/product/460/84797 cos.request({ ...bucketConf, Method: 'POST', Url: `https://${bucketConf.Bucket}.ci.${bucketConf.Region}.myqcloud.com/jobs`, Key: '/jobs', /** 固定值,必须 */ ContentType: 'application/xml', /** 固定值,必须 */ Body: COS.util.json2xml({ Request: { Tag: 'Tts', // 语音合成任务 Operation: { TtsConfig: { InputType: 'Url', // 支持输入文本文件 Url 或 utf8-字符,utf8-字符长度不超过300,Url文件大小不超过10000个字符 Input: txtUrl // 将步骤2中识别到的文本作为输入 }, TtsTpl: { Mode: "Asyc", // 支持同步和异步模式,如果文本内容长,建议选择异步模式 Codec: "mp3", // 生成mp3音频,支持wav、mp3和pcm格式 VoiceType: "ruxue" // 支持多种音色选择 }, Output: { Bucket: bucketConf.Bucket, Region: bucketConf.Region, Object: 'result.mp3' // 输出音频的地址 } } } }) }, (err, data) => { if (err || !data?.Response?.JobsDetail?.JobId) { return console.log(JSON.stringify(err)); }
// 如果任务提交成功,记录当前的任务id const jobId = data?.Response?.JobsDetail?.JobId || ""; })
})

说明语音合成计费规则参见 智能语音费用 – 语音合成接口返回参数参考响应参数,JobsDetail 节点下为任务接口响应信息。其中 JobId 为关键信息,步骤四中查询语音合成任务结果时会用到。

步骤四 获取合成的音频

通过 JobId 查询任务执行结果,详情请参见 查询任务接口
可定时查询任务的状态,当返回的 State 为 Success 时代表音频合成了,音频地址为:
https://${Operation.Output.Bucket}.cos.${Operation.Output.Region}.myqcloud.com/${Operation.Output.Object}

let TaskInterval = null;
/*** 轮询查询任务的执行情况,参考接口: https://cloud.tencent.com/document/product/460/84765* 也可以通过回调的方式获取任务执行结果:https://cloud.tencent.com/document/product/460/84958**/function queryTask(jobId, callback) { TaskInterval && clearInterval(TaskInterval); TaskInterval = setInterval(() => { cos.request({ ...bucketConf, Method: 'GET', Url: `https://${bucketConf.Bucket}.ci.${bucketConf.Region}.myqcloud.com/jobs/${jobId}`, Key: `/jobs/${jobId}` }, (err, data) => { if(err) { console.log(JSON.stringify(err)); return callback && callback(err); } if (data?.Response?.JobsDetail?.State === 'Success') { clearInterval(TaskInterval); callback && callback(data); } }) }, 3000)}

说明推荐使用 API Explorer调试合成的音频效果如下:

费用相关

OCR识别费用语音合成费用对象存储相关费用

Demo体验

具体代码可参考 cos-demo,您也可使用腾讯云对象存储控制台,在 智能工具箱 栏目中体验语音合成实际效果。
对象存储官网1折活动,限时活动,即将结束,速速收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/144443.html

(0)
上一篇 2023年12月9日 上午1:46
下一篇 2023年12月9日 上午1:46
详情页2

相关推荐

  • 在云效不传到制品库,比如传到oss之类的能实现吗?只要是能区分权限的地方就可以-云小二-阿里云

    在云效不传到制品库,比如传到oss之类的能实现吗?只要是能区分权限的地方就可以 以下为热心网友提供的参考意见 确实,你可以在云效中构建物不传到制品库,而选择上传到OSS等其他存储空间。首先,你需要有一个阿里云账号和一个创建好的OSS的bucket。然后,你可以在流水线中配置需要的构建步骤,例如前端静态资源构建,并使用OSS上传步骤。此外,你也可以参考相关的模…

    阿里云 2023年12月6日
  • 腾讯云负载均衡跨域绑定费用

    公网负载均衡启用 跨地域绑定1.0 后会收取跨域费用,不启用则不收取,内网负载均衡不支持该功能。若使用 跨地域绑定2.0 功能,跨域费用计算在云联网上,CLB 上不收取,如不配置,则无需关注。本文介绍跨地域绑定1.0的计费详情。说明:如果您需要使用跨地域绑定功能,请 在线咨询。 计费方式 CLB 绑定同地域 CVM:免费。CLB 绑定不同地域 CVM 1.0…

    腾讯云 2023年12月9日
  • 腾讯云云函数(SCF)部署方法-云淘科技

    部署方法 腾讯云云函数提供以下几种方式部署函数,您可以按需选择使用。创建、更新函数操作详情可参见 创建及更新函数。通过 ZIP 打包上传部署,详情可参见 依赖安装和部署。通过控制台编辑和部署,详情可参见 通过控制台部署函数。使用命令行部署,详情可参见 通过 Serverless Cloud Framework 部署函数。 依赖安装和部署 当前的函数标准 PH…

    腾讯云 2023年12月9日
  • 腾讯云内容分发网络CDN步骤一:创建 COS 存储桶

    在创建 COS 存储桶之前,想必您已经开通了 COS 服务,若未开通,详情请参见 如何开通腾讯云 COS。1. 根据需求,基础信息配置如下: 2. 单击下一步,若有高级配置需求,按需开启即可,若无,直接单击下一步,返回如下确认配置界面。核对配置无误,单击创建,存储桶即创建完成。  内容分发网络CDN官网1折活动,限时活动,即将结束,速速收藏同尘…

    2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云负载均衡【2023年07月03日】负载均衡部分接口鉴权升级公告

    尊敬的腾讯云用户,您好!感谢您长期以来对腾讯云的关注和支持!为了给您提供更完善的鉴权功能,从2023年07月03日至2023年07月07日,腾讯云负载均衡(CLB)产品会新增29个接口鉴权。如果您的子账号仍需访问对应接口,可参考 通过策略生成器创建自定义策略 方式为您的子账号授权,否则接口新增鉴权后您的子账号将无法访问该接口。如果您的子账号不需要访问对应接口…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。