Android TTS语音播报实践 ai语音播报小程序

您所在的位置:网站首页 redmim2007j17c Android TTS语音播报实践 ai语音播报小程序

Android TTS语音播报实践 ai语音播报小程序

2024-05-26 11:51| 来源: 网络整理| 查看: 265

Android TTS语音播报实践 ai语音播报小程序 发表时间:2023-07-14 20:05:21 Android TTS语音播报实践

「这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战」。

在工作中遇到了语音播报的需求,在收到push后,用语音播报push携带的播报内容。类似于微信支付宝的收款信息一样。调研后主要的语音播报方案有一下几种:

基于第三方的TTSSDK,如百度、思必驰、讯飞等;自研Native的TTS引擎+模型;基于云端的TTS方案;使用手机自带的TTS引擎。

无外乎就是自研或者采购,本地或者云端。

先来点废话,介绍下TTS的发展。

TTS现状及发展

语音合成又称文语转换(TexttoSpeech,TTS)技术,是语音处理领域的一个重要的研究方向,旨在让机器生成自然动听的人类语音。

TTS技术主要分为两种:

通用TTS:适用于导航、语音播报、智能客服和大多数语音交互场景;个性化TTS:主要应用于对声音质量较高的教育、长音频、直播以及影视游戏配音等场景中。

语音合成模型经过长时间的发展,由最初的基于拼接合成,到参数合成,逐渐达到了现阶段感情充沛的基于端到端合成,最新一代端到端合成降低了对语言学知识的要求,可批量实现多语种的合成系统,语音自然程度高。

语音合成技术内部分为前端和后端。

前端主要负责文本的语音解析和处理,其处理内容主要包括语种、分词、词性预测、多音字处理、韵律预测、情感等。把文本上的发音的这些信息都预测出来之后,将信息送给TTS后端系统,后台声学系统融合这些信息后,将内容转换为语音。后端声学系统从第一代的语音拼接合成,到第二代的语音参数合成,到第三代端到端合成,后端声学系统的智能化程度逐步增加,训练素材需要标记的详细程度和难度也在逐步减弱。

TTS在语音交互场景里的应用:

基于拼接合成

为了更好的拟合人声,拼接合成技术需要一个大规模的真人音库,音库内容按照音素和不同特征进行标注,合成时根据语言学特征寻找符合的音素,拼接起来完成合成。

优点:效果接近真人,运算量低缺点:拼接而成,语音不连贯,依赖音库,需要人工介入制定很多挑选规则和参数,制作成本高。基于参数合成

通过深度学习构建文本特征和音库之间的映射关系,构建参数合成模型,当输入一个语言学特征时,基于神经网络给出音频特征,后通过声码器合成语音波形。

优点:音库数量需求不多,合成语音连接平稳,质量高;缺点:对声码器依赖程度高,同时,由于传统参数系统建模时存在信息损失,限制了合成语音表现力的进一步提升。基于端到端(Tactron为例)

端到端语音合成一定程度上解决了拼接合成和参数合成存在的缺陷。端到端合成系统直接输入文本或者注音字符,通过文本或者文本特征和语音直接建模,跳过声码器阶段,减少对声码器的依赖,弱化前端概念。

优点:降低对语音学知识的要求,可方便的在不同语种上复制,批量实现几十种甚至更多语种的合成系统,语音自然程度高;缺点:运算量大,无法人工调优,实时性低。方案选择

做这个功能的时候公司已经有团队在自研TTS引擎了,而且云端TTS服务已经跑起来了,并且之前也在外部采购了些云端TTS服务。但是由于我们的Push推送量级很大,不管是外采还是自研云端引擎的成本都很高,出于成本考虑,我们选择只能考虑使用端上的方案。

客户端实现有三种方案:

外采:出于成本考虑,淘汰;自研引擎:语音团队基于参数的合成引擎已完成开发,但是没有人力支撑后续的调试,而播报的话术比较固定,并且对合成声音的音质要求不是特别高,所以选择了一种基于拼接的合成方案作为备选,语句的前部分和后部分使用完整的语音,中间变换部分通过逐字方式合成;手机自带TTS引擎:Android系统已自带了TTS引擎,但是并不是所有的手机都带了中文引擎。AndroidTTS引擎使用初始化TTS引擎classTTSListenerimplementsTextToSpeech.OnInitListener{@OverridepublicvoidonInit(intstatus){if(mSpeech!=null){intisSupportChinese=mSpeech.isLanguageAvailable(Locale.CHINESE);//是否支持中文mSpeech.getMaxSpeechInputLength();//最大播报文本长度if(isSupportChinese==TextToSpeech.LANG_AVAILABLE){intsetLanRet=mSpeech.setLanguage(Locale.CHINESE);//设置语言intsetSpeechRateRet=mSpeech.setSpeechRate(1.0f);//设置语intsetPitchRet=mSpeech.setPitch(1.0f);//设置音量StringdefaultEngine=mSpeech.getDefaultEngine();//默认引擎if(status==TextToSpeech.SUCCESS){//初始化TextToSpeech引擎成功,初始化成功后才可以play等}}}else{//初始化TextToSpeech引擎失败}}}TextToSpeechmSpeech=newTextToSpeech(ContextHolder.appContext(),newTTSListener());复制代码设置播报状态回调mSpeech.setOnUtteranceProgressListener(newUtteranceProgressListener(){@OverridepublicvoidonStart(StringutteranceId){//播报开始}@OverridepublicvoidonDone(StringutteranceId){//播报结束}@OverridepublicvoidonError(StringutteranceId){//播报出错}});复制代码开始播报longutteranceId=System.currentTimeMillis();HashMapttsOptions=newHashMap();ttsOptions.put(TextToSpeech.Engine.KEY_PARAM_UTTERANCE_ID,String.valueOf(utteranceId));//utterance,这个参数随便写,用于监听播报完成的回调中ttsOptions.put(TextToSpeech.Engine.KEY_PARAM_VOLUME,String.valueOf(1));//音量ttsOptions.put(TextToSpeech.Engine.KEY_PARAM_STREAM,String.valueOf(AudioManager.STREAM_NOTIFICATION));//播放类型intret=mSpeech.speak(tts,TextToSpeech.QUEUE_FLUSH,ttsOptions);if(ret==TextToSpeech.SUCCESS){//播报成功}复制代码文本转换为语音文件longutteranceId=System.currentTimeMillis();Filefile=newFile("/sdcard/audio_"+utteranceId+".wav");intret=synthesizeToFile("xxxxx",null,file,String.valueOf(utteranceId));if(ret==TextToSpeech.SUCCESS){//合成文件成功}复制代码停止播放

调用mSpeech.stop();此时会触发UtteranceProgressListener的onDone回调。

销毁引擎mSpeech.shutdown();复制代码Android11适配

为兼容Android11系统手机,我们需要在应用程序AndroidManifest.xml文件中增加如下声明:

复制代码

3.5.x版本Gradle需要使用3.5.4以上版本才能识别queries属性。

TextToSpeech手机兼容性问题

系统自带TextToSpeechAPI使用很方便,但是有些不支持中文引擎的手机就很头疼,而且市面上哪些手机支持哪些手机不支持我们没有底,所以线上跑了一波以后拿到了目前市面手机TextToSpeech中文引擎的支持情况。收集了694款手机,有90款不支持的手机。具体型号如下:

+--------------------------------------+|XiaomiMI+9+Transparent+Edition||XiaomiMI+8||OnePlusGM1900||OnePlusGM1910||RedmiM2006C3LC||OnePlusIN2020||meizu16T||XiaomiMI+MAX+3||OnePlusONEPLUS+A6010||OnePlusONEPLUS+A5010||meizumeizu+17||RedmiRedmi+K30||OnePlusKB2000||OnePlusHD1900||OnePlusONEPLUS+A6000||meizu16s||XiaomiM2102K1C||XiaomiM2002J9E||RedmiM2007J17C||OnePlusIN2010||meizumeizu+17+Pro||nubiaNX659J||meizu16s+Pro||meizumeizu+16Xs||XiaomiMi+10||LenovoLenovo+L78051||meizuMEIZU+18||OnePlusHD1910||HisenseHLTE226T||xiaomiRedmi+Note+8||RedmiRedmi+K30i+5G||RedmiM2007J3SC||RedmiM2004J19C||RedmiRedmi+Note+8+Pro||RedmiM2104K10AC||xiaomiRedmi+Note+7||RedmiM2003J15SC||XiaomiMIX+2S||RedmiRedmi+K30+Pro||nubiaNX627J||XiaomiMI+CC9+Pro||RedmiRedmi+K30+5G||meizuMEIZU+18+Pro||XiaomiMI+9||XiaomiM2102K1AC||XiaomiMI+8+UD||blacksharkAWM-A0||XiaomiM2011K2C||XiaomiMI+8+Lite||SonyXQ-AT72||XiaomiMi+10+Pro||XiaomiM2102J2SC||OnePlusONEPLUS+A5000||XiaomiM2101K9C||RedmiM2103K19C||xiaomiRedmi+Note+7+Pro||nubiaNX616J||RedmiM2012K10C||XiaomiMIX+3||RedmiM2004J7AC||XiaomiMI+CC9+Pro+Premium+Edition||nubiaNX619J||XiaomiM2007J1SC||koobeeX60+Pro||XiaomiRedmi+K20+Pro||SMARTISANDT1901A||RedmiM2004J7BC||asusASUS_I001DA||HONORHLK-AL00a||RedmiM2006J10C||RedmiM2012K11AC||blacksharkSHARK+PRS-A0||HONORBKL-AL20||SMARTISANDT1902A||ZTEZTE+A2322||RedmiM2007J22C||blacksharkSKW-A0||NokiaNokia+X7||RedmiM2012K11C||HUAWEIMAR-AL00||RedmiRedmi+K30+Pro+Zoom+Edition||nubiaNX669J||Meizu16+X||XiaomiRedmi+K20+Pro+Premium+Edition||asusASUS_I005DA||blacksharkSHARK+KLE-A0||XiaomiMI+6||motorolaXT2125-4||GIONEE20190619G||HUAWEIART-AL00m|+--------------------------------------+复制代码

因为大部分手机使用了手机系统TTS服务,对于少量不支持的手机我们可以通过走云端TTS合成,因为已经在我们的成本访问。也可以牺牲包体积和音质,通过拼接合成的方式在不支持的手机上提供TTS服务。

有些支持比较好的,如华为,可以在设置中选择发音音色。在系统设置---辅助功能---无障碍---文本转语音路径下可以选择引擎,调节语速音调:

并且点击引擎选项可以安装引擎提供的发音人语音包,并选择发音人:

总结

本文总结了TTS的现状及发展,并介绍了移动端实现TTS的几种方式以及如何系统提供的TextToSpeechAPI、系统API的局限、如何做兼容性等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至[email protected]举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了

相关文章

人工智能专业适合女生学吗 人工智能类专业适合女生学吗知乎文章

人工智能专业适合女生学吗人工智能领域投资活跃随着我国对人工智能的日益关注,带动着投资行业也开始关注这一热门。2016年以来,我国人工智能投融资活跃。2020年投融资事件663起,投融资金额1415.21亿元,近三年投融资金额均超1000亿元...

576 2023-07-15 16:10:58

自然语言处理(4)——语料库和语言知识库 自然语言处理的应用技术有哪些内容和方法

自然语言处理(4)——语料库和语言知识库NLP学习笔记(4)——语料库和语言知识库1.基础知识2.语料库技术的发展第一个阶段:早期,20世纪五十年代中期之前二个阶段:沉寂时期,1957-20世纪八十年代初第三个阶段:复苏与发展时期,20世纪...

689 2023-07-15 16:10:58

硬盘分区时GPT和MBR的区别/选择 硬盘分区类型gpt和mbr的区别在哪

硬盘分区时GPT和MBR的区别/选择最明显的区别是MBR最大支持2T的硬盘,而GPT则更大。1、最先出现在Windows8中设置新磁盘,系统会询问你是想要使用MBR还是GPT分区,GPT是一种新的硬盘分区标准。GPT带来了很多新特性,最大支...

1454 2023-07-15 16:11:42

学术不端行为典型案例警示 人工智能典型案例与教学方法研究

学术不端行为典型案例警示学风是高等学校的立校之本,学术诚信是学术创新的基石,学术不端行为是对学术诚信的严重背离和对学风的重大伤害。长期以来,教育部和各地、各高校高度重视学风建设,积极推进学术诚信宣传教育,并建立健全有关制度。教育部曾在201...

277 2023-07-15 16:11:51

AI图形怎么添加纹理 AI快速给图形添加纹理并填充颜色教程 ai画图形怎么填充颜色

AI图形怎么添加纹理AI快速给图形添加纹理并填充颜色教程AI图形怎么快速添加纹理?有好多小伙伴给图形添加纹理之后,却不知道怎么给基本图形纹理填充上颜色?今天,小编为大家带来了AI快速给图形添加纹理教程。感兴趣的朋友快来了解一下吧。矢量图形软...

287 2023-07-15 16:12:01

2023,人工智能进入爆发年 关于人工智能电影近3年的新闻

2023,人工智能进入爆发年春节假期后的首个交易日,国内二级市场迎来了开门红,上证指数盘中放量一度突破了3300点。特别是包含AIGC(人工智能生成内容)、AI视觉影像等在内的人工智能相关概念板块,纷纷迎来上涨。拓尔思、科大讯飞、视觉中国、...

469 2023-07-15 16:12:22

广西螺蛳粉厂研发全自动机器人包装生产线 供货翻倍 全自动机器人生产

广西螺蛳粉厂研发全自动机器人包装生产线供货翻倍原标题:广西螺蛳粉厂研发全自动机器人包装生产线供货翻倍广西螺蛳粉厂研发全自动包装生产线机器人助力“618”供货翻倍中新网柳州6月7日电(林馨)日前,“618”电商购物节到来,袋装螺蛳粉订单激增。...

900 2023-07-15 16:12:39

人工智能连线杂志(人工智能连环画) 人工智能绘画作品一等奖

人工智能连线杂志(人工智能连环画)导读人工智能连环画舒发是武汉舒发儿童用品有限公司,是一家新成立的专营儿童用品的公司。现自主研发的“舒发”牌儿童洗头椅是一款针对儿童洗头难和孩子洗头时不配合、…人工智能连环画舒发是武汉舒发儿童用品有限公司,是...

1446 2023-07-15 16:12:51

汽车空调系统工作原理(图解)了解这一篇就够了 什么是ai技术的工作原理图解视频

汽车空调系统工作原理(图解)了解这一篇就够了提到汽车空调,相信大多数人首先会想到汽车空调的制冷系统。炎炎夏日,身处阵阵凉风下,如此惬意。(画面自行脑补哦)今天我们就来全面的给大家讲一下汽车空调。汽车空调主要由制冷系统、暖风系统、通风和空气净...

387 2023-07-15 16:13:03

AI 图像识别 ai 图像识别

AI图像识别AIVisionOracleCloudInfrastructure(OCI)Vision是一个可规模化执行基于深度学习的图像分析的AI服务。利用现成可用的预构建模型,开发人员无需具备机器学习(ML)专业知识即可轻松将图像识别和文...

1657 2023-07-15 16:13:53



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3