ReactNative集成百度语音合成

简介: ReactNative集成百度语音合成

语音交互是现今应用最多的智能交互方式,在人工智能越来越火的当下应用十分广泛,所以特别针对车内环境,在驾驶员安心驾驶的时候,用语音可以安全的进行操控。恰好新版项目中要加入语音播报功能,因为我们的应用和司机有关,于是在网上搜索一些解决方案,目前有阿里云,百度云以及科大讯飞还有一些其他公司提供的相关解决方案。

不同方案之间的对比,可以参考下面的文章:

智能语音方案比对介绍

http://www.jianshu.com/p/95d9...

目前计划采用的是语音合成技术:

有如下几个优势:

1.支持多种语言多种音色

支持中文、英文混读,男声、女声、童声、情感男声可供选择,更支持语速、音调、音量、音频码率设置,让应用拥有最甜美和最磁性的声音

2.支持离线在线融合模式

SDK可以根据当前网络状况及指令的类型,自动判断使用本地引擎还是云端引擎进行语音合成

3.合成效果流畅自然

语音合成技术业界领先,合成效果接近

真人发声,流畅自然,且极具表现力,

给你最舒适的听觉体验

4.免费额度高

微信图片_20220609122337.png

好了,不给它打广告了,开始整干货,下面是集成步骤。


1.创建一个ReactNative工程,不会的自行百度吧;或者在已有项目中,总之你得有个RN项目


2.登录网址百度语音开发者平台注册账号并创建应用:

进入控制台-->选择产品服务-->选择人工智能-->创建应用-->填写有关应用信息微信图片_20220609122415.png微信图片_20220609122429.png微信图片_20220609122448.png微信图片_20220609122547.png微信图片_20220609122830.png微信图片_20220609122600.png

同理点击查看Key,查看当前应用的所需的主要三个参数 AppId APIKey SecretKey,后面会用得到.

3.下载相关平台的SDK


微信图片_20220609122911.png

4.解压后


微信图片_20220609122944.png

BaiduTtsSample:为一个模板代码,eclipse版本的,我就是借鉴里面稍微修改了一下。

 data:为百度语音资源,声音文件,它为一个必须文件,中英文资源。最后使用是放在手机物理存储下的。

 doc:为一个pdf的简介使用方法以及网络的使用Api文档说明。我们用不到,可以下去读一读的。

 libs:为资源jar包和语音引擎文件.so库。也是我们集成必须使用到的。

5.接下来的步骤是,我们将语音资源和libs下的资源方法android studio我们的项目里面。将data里面的文件全部复制到AssertAs library关联。在项目中的main路径下新建一个jnilibs文件夹,用于放置剩余的libs下的文件。现在的工程目录是(Android)

s文件夹下。将libs下的两个jar文件复制到项目的libs中,并添加Add 微信图片_20220609123018.png微信图片_20220609123039.png

微信图片_20220609123039.png

6.添加权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />

7.到此,集成就结束了,接下来就是如何使用。当然可以参照BaiduTtsSample文件夹下的src里面的一个MainActvity的写法。也可以按照下面的总结的工具类来直接使用,方便快捷省事。

参考文章:http://blog.csdn.net/bk120/ar...

--------------------------华丽的分割线----------------------------

因为咱们的的项目是ReactNative,所以要进行原生和js的交互

1.创建一个原生模块是一个继承了ReactContextBaseJavaModule的Java类,它可以实现一些JavaScript所需的功能。

微信图片_20220609123204.png

2.注册模块

微信图片_20220609123236.png

3.在这个package需要在MainApplication.java文件的getPackages方法中提供。这个文件位于你的react-native应用文件夹的android目录中。

微信图片_20220609123300.png

4.为了让你的功能从JavaScript端访问起来更为方便,通常我们都会把原生模块封装成一个JavaScript模块。这不是必须的,但省下了每次都从NativeModules中获取对应模块的步骤。这个JS文件也可以用于添加一些其他JavaScript端实现的功能。微信图片_20220609123322.png


5.使用


微信图片_20220609123347.png微信图片_20220609123358.png

6.集成常见问题:

百度语音文档中心:http://yuyin.baidu.com/docs/t...

Oc 百度语音的ios集成:http://blog.csdn.net/qq_40691...

iOS 一行代码简单调用百度语音合成:http://www.jianshu.com/p/1c4a...

ps:使用Android原生自带的语音合成:

https://github.com/SolveBugs/...

https://blog.csdn.net/csdn_bl...

目录
相关文章
|
7月前
|
前端开发 数据可视化 JavaScript
基于React的简易数据可视化图表库集成与应用
基于React的简易数据可视化图表库集成与应用
105 1
|
关系型数据库 MySQL 定位技术
Python web框架 之Django + Python3.7 + 集成百度地图【视频讲解】
python集成百度地图 介绍 python集成百度地图demo
608 0
Python web框架 之Django + Python3.7 + 集成百度地图【视频讲解】
|
3月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
58 3
|
5月前
|
JSON 前端开发 JavaScript
【amis低代码前端框架】vue2集成百度低代码前端框架amis
【amis低代码前端框架】vue2集成百度低代码前端框架amis
510 0
|
7月前
|
前端开发
【专栏】在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法
【4月更文挑战第29天】本文介绍了在 create-react-app 中集成 less/sass 预处理器和 react-css-modules 的方法。首先,通过 `npm` 安装 less 或 sass 依赖,然后修改 `config-overrides.js` 配置文件以支持 less/sass 编译。接着,详细阐述如何使用 less/sass 编写样式。再者,安装 react-css-modules 并配置 webpack,使能样式模块化。最后,展示了如何结合使用 less/sass 和 react-css-modules,以提升前端开发的效率和代码质量。
500 0
|
资源调度 JavaScript
vue项目:集成富文本编辑器 - 百度ueditor(vue-ueditor-wrap)
vue项目:集成富文本编辑器 - 百度ueditor(vue-ueditor-wrap)
607 0
|
存储 JSON 前端开发
React+node 图片剪裁上传,集成本地存储和阿里云OSS
最近一直在调研图片上传阿里云oss功能,上篇文章主要讲述了阿里云oss大文件分片、断点续传。这篇文章是在原有基础上,前端加了图片剪裁、后端加了本地存储功能。
305 0
React+node 图片剪裁上传,集成本地存储和阿里云OSS
|
Web App开发 编解码 移动开发
React 框架下如何集成 H.265 流媒体视频播放器 EasyPlayer.js?
H5 无插件流媒体播放器 EasyPlayer 属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持 H.264 与 H.265 编码格式,性能稳定、播放流畅,能支持 WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC 等格式的视频流。在功能上,EasyPlayer 支持直播、点播、录像、快照截图、MP4 播放、多屏播放、倍数播放、全屏播放等特性,并且已实现网页端实时录像、在 iOS 上实现低延时直播等功能,具备较高的可用性和稳定性
206 0
|
存储 前端开发 定位技术
Python FastApi集成百度地图并反显到地图
百度地图有海量api可进行调用,FastApi集成百度地图api调用
132 0
Python FastApi集成百度地图并反显到地图
|
定位技术
街道社区网格化信息管理Echarts集成百度地图bmap样式表冲突导致的无法显示地图的解决方案
街道社区网格化信息管理Echarts集成百度地图bmap样式表冲突导致的无法显示地图的解决方案
128 0