ReactNative集成百度语音合成

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

目前计划采用的是百度云提供的语音合成技术: 有如下几个优势:

1.支持多种语言多种音色 支持中文、英文混读,男声、女声、童声、情感男声可供选择,更支持语速、音调、音量、音频码率设置,让应用拥有最甜美和最磁性的声音 2.支持离线在线融合模式 SDK可以根据当前网络状况及指令的类型,自动判断使用本地引擎还是云端引擎进行语音合成 3.合成效果流畅自然 语音合成技术业界领先,合成效果接近 真人发声,流畅自然,且极具表现力, 给你最舒适的听觉体验 4.免费额度高

image.png

好了,不给它打广告了,开始整干货,下面是集成步骤。 先贴上百度云官网文档地址:http://ai.baidu.com/docs#/TTS-Android-SDK/top 1.创建一个ReactNative工程,不会的自行百度吧;或者在已有项目中,总之你得有个RN项目 2.登录网址百度语音开发者平台注册账号并创建应用: 进入控制台-->选择产品服务-->选择人工智能-->创建应用-->填写有关应用信息 image.png

image.png

image.png

image.png

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

3.下载相关平台的SDK

image.png

4.解压后

image.png BaiduTtsSample:为一个模板代码,eclipse版本的,我就是借鉴里面稍微修改了一下。  data:为百度语音资源,声音文件,它为一个必须文件,中英文资源。最后使用是放在手机物理存储下的。  doc:为一个pdf的简介使用方法以及网络的使用Api文档说明。我们用不到,可以下去读一读的。  libs:为资源jar包和语音引擎文件.so库。也是我们集成必须使用到的。 5.接下来的步骤是,我们将语音资源和libs下的资源方法android studio我们的项目里面。将data里面的文件全部复制到Asserts文件夹下。将libs下的两个jar文件复制到项目的libs中,并添加Add As library关联。在项目中的main路径下新建一个jnilibs文件夹,用于放置剩余的libs下的文件。现在的工程目录是(Android)

image.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/article/details/54020505 --------------------------华丽的分割线---------------------------- 因为咱们的的项目是ReactNative,所以要进行原生和js的交互 1.创建一个原生模块是一个继承了ReactContextBaseJavaModule的Java类,它可以实现一些JavaScript所需的功能。

image.png

2.注册模块

image.png

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

image.png

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

image.png

5.使用

image.png

image.png

6.集成常见问题: 百度语音文档中心:http://yuyin.baidu.com/docs/tts/84

Oc 百度语音的ios集成:http://blog.csdn.net/qq_40691827/article/details/78333380 iOS 一行代码简单调用百度语音合成:http://www.jianshu.com/p/1c4a3f248098

ps:使用Android原生自带的语音合成: https://github.com/SolveBugs/Utils/blob/master/SpeechUtils.java https://blog.csdn.net/csdn_blog_lcl/article/details/52504323

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

语音合成数据为智能化语音应用赋能

在数字化时代,语音技术的应用越来越广泛,语音合成作为其中的重要组成部分,为智能化语音应用提供了强有力的支持。语音合成技术可以将文本转化为自然流畅的人工语音,使得机器能够通过语音与人进行交互,为用户带来更便捷和愉悦的体验。而要实现高质量的语音合成,数据定制服

车内语音识别数据在智能驾驶中的应用与挑战

一、引言随着智能驾驶技术的不断发展,车内语音识别数据在智能驾驶中的应用越来越广泛。车内语音识别技术为驾驶员提供了更加便捷和安全的驾驶体验,同时也为智能驾驶系统的智能化和个性化提供了有力支持。本文将详细介绍车内语音识别数据在智能驾驶中的应用、面临的挑战以及未

语音合成技术在智能驾驶中的应用与展望

一、引言随着科技的飞速发展,语音合成技术逐渐成为人机交互领域的重要分支。在智能驾驶环境中,语音合成技术更是发挥着不可或缺的作用。它不仅简化了人机交互过程,还为驾驶员提供了更加便捷、安全的驾驶体验。本文将探讨语音合成技术在智能驾驶中的应用、优势以及未来发展趋