概述
在处理一些文本类信息时,例如图片中的英文,我们可以使用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