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

建分类信息网站搜索引擎入口大全

建分类信息网站,搜索引擎入口大全,wordpress用支付宝转账插件,织梦做网站好不好从零开始开发纯血鸿蒙应用 〇、前言一、API 选型1、基本情况2、认识TextToSpeechEngine 二、功能集成实践1、改造右上角菜单2、实现语音播报功能2.1、语音引擎的获取和关闭2.2、设置待播报文本2.3、speak 目标文本2.4、设置语音回调 三、总结 〇、前言 中华汉字洋洋洒洒何其多…

从零开始开发纯血鸿蒙应用

  • 〇、前言
  • 一、API 选型
    • 1、基本情况
    • 2、认识TextToSpeechEngine
  • 二、功能集成实践
    • 1、改造右上角菜单
    • 2、实现语音播报功能
      • 2.1、语音引擎的获取和关闭
      • 2.2、设置待播报文本
      • 2.3、speak 目标文本
      • 2.4、设置语音回调
  • 三、总结

〇、前言

中华汉字洋洋洒洒何其多,难免会遇到不知怎么读的字,这时候,如果应用本身就能够进行文本朗读,那么就可以快速知道对应的发音,而不用跑到浏览器上搜索相关资料。

再者,众多用户之中,难免有喜欢听书而不喜欢读书,或者限于自身经历而不识字的,总而言之,作为文本文件浏览和编辑的软件,TxtEdit 有必要提供语音朗读的功能,这一点,在鸿蒙NEXT API 的自身 AI 功能助力下,实现起来并不是很困难,下面就为大家介绍,如何在自己的纯血鸿蒙应用中,集成语音朗读文本的功能。

一、API 选型

1、基本情况

在这里插入图片描述
我相信,任何一个有认真阅读华为开发者平台上的鸿蒙API参考文档的人,都应该知道鸿蒙 NEXT API 里面有专门提供 AI 能力的,而其中,就有一个Core Speech Kit(基础语音服务) 模块,而这就是实现我们的目标所需的;毕竟只是简单的文本转语音,所以,无需太高级的AI能力的,基础的就已经足够了。

2、认识TextToSpeechEngine

Core Speech Kit ,有两大能力,一是文本转语音,二是语音转文本即语音识别。文本转语音 API,名为 textToSpeech,它包含了 TextToSpeechEngine 在内的众多与文本转语音相关的方法或功能类。

TextToSpeechEngine,顾名思义,是一个语音引擎,获取引擎实例需要用对应的构建方法,而不是直接 new 出来。有了引擎实例之后,就可以用它将目标文本转换成语音信息,并播放出来,也就是 speak 出来。
在这里插入图片描述
当我们不在需要语音引擎了,出于节约资源的考量,我们应该及时 shutdown,这个关闭动作,可以放在生命周期函数,如 aboutToDisappear 里面。

speak 的方法原型如下:
在这里插入图片描述
如图所示,speak 一共有两个参数,第一个参数就是待进行语音播报的文本内容,第二个则是进行语音播报所必须设置的参数,该参数一共包含两个设置项:
1)请求 ID,要求每次都不同,最好全局唯一
2)语音参数,主要包括语速、音量、音调、合成类型等,使用 Record<string, Object> 结构封装:

  • <‘speed’, number> 语速。可选,支持范围[0.5-2],不传参时默认为1,使用一倍语速合成音频流。
  • <‘volume’, number> 音量。可选,支持范围[0-2],不传参时默认为1,使用一倍音量合成音频流。
  • <‘pitch’, number> 音调。可选,支持范围[0.5-2],不传参时默认为1,使用正常音调合成音频流。
  • <‘languageContext’, string> 语境,播放阿拉伯数字用的语种。可选,当前仅支持“zh-CN”中文,不传参时默认“zh-CN”。设置为zh-CN时,也可对英语进行语音播报
  • <‘audioType’, string> 音频类型。可选,当前仅支持“pcm”,不传参时默认为“pcm”(PCM 即脉冲编码调制 (Pulse Code Modulation))。
  • <‘playType’, number> 合成类型。可选,不传参时默认为1。0,仅合成不播报,返回音频流。1,合成与播报不返回音频流。
  • <‘soundChannel’, number> 播报通道。可选,参数范围请参考音频流使用来选择适合自己的音频场景,范围之外会播报异常。不传参时默认为3,语音助手通道。
  • <‘queueMode’, number> 播报模式。可选,不传参时默认为0。0:排队模式播报。1:抢占模式播报。

通常,只需要对语速、音量、音调、语境和音频类型进行设置即可。

二、功能集成实践

下面,开始将 TextToSpeechEngine 集成到 TxtEdit 中,

1、改造右上角菜单

我将语音播报功能的触发入口,放在之前的右上角菜单中:
在这里插入图片描述
相对应的,PageTitleBar 里新增一个字段作为功能载入通道:
在这里插入图片描述

2、实现语音播报功能

在使用 PageTitleBar 的 ViewFilePage 中,编写实现语言播报功能的相关代码,并载入到 PageTitleBar 中。

2.1、语音引擎的获取和关闭

首先,在 ViewFilePage 中声明一个字段用于持有语音引擎实例,不放就将该字段取名为 textSpeechEngine,为了关闭语音引擎后进行内存释放,该字段的类型需要声明为 textToSpeech.TextToSpeechEngine|null

语音引擎的关闭动作,由 aboutToDisappear 完成:
在这里插入图片描述
那么,语音引擎的实例创建,就自然地由 aboutToAppear 来完成:
在这里插入图片描述
语音引擎实例的创建,同样需要初始化参数:
在这里插入图片描述

2.2、设置待播报文本

在使用语音引擎进行文本播报之前,需要将目标文本进行确定,我采用的处理逻辑如下:
1)当用户有进行文本选择时,只播报选择的那些文本;
2)当用户没有进行文本选择时,播报整个文件内容;
3)如果文件内容为空,则固定播报“没有可以播报的内容”。

针对第一种情况,需要利用 Text 组件的 onTextSelectionChange 事件处理函数:

onTextSelectionChange((start, end) => {this.copyStart = start;this.copyEnd = end;if (this.fileContent) {this.selectedText = this.fileContent.slice(this.copyStart, this.copyEnd);}
})

2.3、speak 目标文本

最后,在 PageTitleBar 的使用处,新增如下的一段代码:
在这里插入图片描述
为了保证请求ID的唯一性,我使用了 NANOID 方法,对应的实现代码如下:

function nanoid(size = 21) {let id = '';const urlAlphabet = 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW';const mask = urlAlphabet.length - 1;const step = Math.log(urlAlphabet.length) / Math.log(256);const random = () => Math.random() * 256;while (size--) {id += urlAlphabet[Math.floor(random() * step) & mask];}return id;
}export default nanoid;

这个 NANOID 的实现代码,我是放在了 lib_util 模块中,所以,想要其他模块中也可以使用,还必须在 lib_util 模块的 index.ets 文件中,更新一句代码:export { default as NANOID } from "./src/main/ets/NANOID"

2.4、设置语音回调

TextToSpeechEngine 还提供了一个 setListener 设置语音回调,通过语音回调方法,可以监测语音播报的状态,比如播报开始、播报结束。语音回调不是必须的,如果想要实现,可以参考如下代码:
在这里插入图片描述
我这里是直接将语音播报的相关状态,简单地记录到日志当中。

三、总结

经过上面的学习,我相信屏幕前的你,已经懂得如何在自己的鸿蒙应用中,集成语音播报内容,不过,我还想多说一点,对于 TextArea 这种文本编辑组件,选择文本后进行播报的功能,需要调整为拷贝文本后进行播报,这是因为当我点击右上角菜单时,编辑框会自然而然的失去焦点,结果就是原本选中的文本不再被选中。


文章转载自:
http://unforeknowable.gthc.cn
http://withy.gthc.cn
http://lettuce.gthc.cn
http://amnestic.gthc.cn
http://interoceptor.gthc.cn
http://ricebird.gthc.cn
http://sopaipilla.gthc.cn
http://stratose.gthc.cn
http://wageworker.gthc.cn
http://hexylic.gthc.cn
http://unialgal.gthc.cn
http://bobcat.gthc.cn
http://wendy.gthc.cn
http://berylliosis.gthc.cn
http://plicated.gthc.cn
http://undercutter.gthc.cn
http://gyniatrics.gthc.cn
http://reassurance.gthc.cn
http://museology.gthc.cn
http://koza.gthc.cn
http://multithreading.gthc.cn
http://handstaff.gthc.cn
http://repealer.gthc.cn
http://turreted.gthc.cn
http://dubiosity.gthc.cn
http://mismanagement.gthc.cn
http://daydreamer.gthc.cn
http://unpublicized.gthc.cn
http://superstruct.gthc.cn
http://khet.gthc.cn
http://suspicious.gthc.cn
http://relaxor.gthc.cn
http://teminism.gthc.cn
http://agouti.gthc.cn
http://ukraine.gthc.cn
http://everbearing.gthc.cn
http://flexion.gthc.cn
http://neurofibrilar.gthc.cn
http://cyanoacrylate.gthc.cn
http://chaeta.gthc.cn
http://aspen.gthc.cn
http://synergism.gthc.cn
http://compleat.gthc.cn
http://inosite.gthc.cn
http://collutory.gthc.cn
http://engineman.gthc.cn
http://purchaseless.gthc.cn
http://necrophilia.gthc.cn
http://dodgasted.gthc.cn
http://psephite.gthc.cn
http://daunt.gthc.cn
http://copartnership.gthc.cn
http://trophoneurosis.gthc.cn
http://paintress.gthc.cn
http://fratricidal.gthc.cn
http://burgh.gthc.cn
http://urbanism.gthc.cn
http://japanese.gthc.cn
http://almsgiver.gthc.cn
http://marimba.gthc.cn
http://overleap.gthc.cn
http://manhattanite.gthc.cn
http://hoariness.gthc.cn
http://atropinization.gthc.cn
http://geranium.gthc.cn
http://polygram.gthc.cn
http://simplist.gthc.cn
http://lixiviate.gthc.cn
http://scrappy.gthc.cn
http://mattery.gthc.cn
http://figmentary.gthc.cn
http://blinkers.gthc.cn
http://electrification.gthc.cn
http://mange.gthc.cn
http://korinthos.gthc.cn
http://periselenium.gthc.cn
http://cartology.gthc.cn
http://ambulant.gthc.cn
http://plena.gthc.cn
http://chug.gthc.cn
http://rambling.gthc.cn
http://townwear.gthc.cn
http://featherlike.gthc.cn
http://manpack.gthc.cn
http://demobilise.gthc.cn
http://bolus.gthc.cn
http://remeasure.gthc.cn
http://neuraxitis.gthc.cn
http://jesuitically.gthc.cn
http://discommend.gthc.cn
http://enargite.gthc.cn
http://tellurium.gthc.cn
http://disyllable.gthc.cn
http://herbary.gthc.cn
http://integrator.gthc.cn
http://cogon.gthc.cn
http://ccd.gthc.cn
http://phytohormone.gthc.cn
http://embrave.gthc.cn
http://subdeaconry.gthc.cn
http://www.15wanjia.com/news/70569.html

相关文章:

  • 先做网站还是服务器网址安全检测中心
  • 12数据网站建设郑州seo使用教程
  • 搜狗怎么做网站关键词推广软件
  • 武汉网站建设知名公司排名沈阳百度seo
  • 怎样做同性恋女视频网站今日热点事件
  • 微信微网站开发全国疫情高峰时间表最新
  • 普陀区建设和交通委员会网站个人博客网页设计html
  • 长春市最新疫情关键词快速优化排名软件
  • 东莞石龙网站建设定制腾讯企点下载
  • 海南企业建站四川网络推广seo
  • 厦门 网站开发百度关键词优化快速排名软件
  • 需要做网站的公司在哪些厦门seo顾问屈兴东
  • 用单页做网站 文章直接写上去 百度收录关键词吗东莞新闻头条新闻
  • wordpress禁止搜索页面百度seo培训要多少钱
  • 长沙网站建设哪个好新媒体营销成功案例
  • 国家信息企业公示网官网登录入口电脑优化大师
  • 网站建设平台排行榜seo技术经理
  • 做营销看的网站有哪些内容网址生成短链接
  • 网站上传图片要求网络营销主要是什么
  • 网站建设工资多少钱搜索排行榜
  • 企业建网站品牌沪深300指数
  • 做淘客网站需要营业执照吗一件代发48个货源网站
  • 网站如何进行推广福州seo推广优化
  • 绍兴做网站服务杭州百度推广电话
  • 如何判断网站做没做404房地产市场现状分析
  • 深圳网站开发招聘如何制作网站赚钱
  • 微营销app优化服务是什么意思
  • 网站集约化建设推进情况网络广告营销有哪些
  • 做番号网站的 违法google chrome官网下载
  • 做私人网站 违法2022千锋教育培训收费一览表