科大讯飞语音合成实例

代码地址如下:
http://www.demodashi.com/demo/13209.html

前言

今天讲讲科大讯飞的语音合成功能吧

涉及以下内容:
1. 在科大讯飞平台上创建应用
2. 在androidstudio中的配置
3. 语音合成相关代码
4. 语音合成工具类SpeechHelper的调用
5. 使用过程中需要注意的问题
6. 项目结构图

一. 在科大讯飞平台上创建应用

先登录科大讯飞开发者平台,进入控制台,然后创建应用,创建的时候需要填写以下内容:

应用名称 -------------- 填写你应用的名称
应用分类 -------------- 选择你应用属于的行业
应用功能描述 -------- 写些对你应用的基本介绍
应用平台  ------------- 我们是android开发,就选择android

最后点击提交,就生成科大讯飞应用了,然后给你的应用添加新服务,选择“在线语音合成”

ok,此时在平台上一个具有在线语音合成功能的应用已经弄好了,请记下你这个应用的appId,在后面会用到。

二. 在androidstudio中的配置

先在科大讯飞你创建的应用下,将对应的sdk下载到本地,这个sdk有两个作用:
1. 里面的jar包和so文件是你的应用中需要用到的
2. 里面的samlpe可以给你在开发的时候提供参考

ok,在下载的sdk文件夹中,你可以看到libs文件夹下有以下东西:


打开你的项目,将标签切换到project,在app文件夹下建libs文件夹,然后将Msc.jar和Sunflower.jar复制到libs文件夹下(由于我只用到了Msc.jar,所以没有拷贝Sunflower.jar),如下图:

选中Msc.jar —> 右键 —>选择 add as Library ,用来导入Msc.jar包,Sunflower.jar的导入同理。

还是将你的项目切换到project标签下,在 app/src/main/ 文件夹下新建jniLibs文件夹,将 arm64-v8a,armeabi,armeabi-v7a,mips,mips64,x86,x86_64文件夹全部拷贝到 jniLbswen文件夹下,如下图:

至此,androidstudio中的配置完成。

三. 语音合成相关代码

注册语音合成功能,你可以这样:

SpeechUtility.createUtility(context, "appid=" + "xxxxxxxx");
//其中"xxxxxx"为你在语音开发平台上的appid

初始化语音合成对象:

private SpeechSynthesizer mTts;
mTts = SpeechSynthesizer.createSynthesizer(AppContext.getInstance(), mTtsInitListener);

监听初始化成功/失败:

    /*** 初始化监听。*/private InitListener mTtsInitListener = new InitListener() {@Overridepublic void onInit(int code) {LogUtil.i("InitListener init() code = " + code);if (code != ErrorCode.SUCCESS) {LogUtil.i("初始化失败,错误码: " + code);} else {// 初始化成功,之后可以调用startSpeaking方法// 注:有的开发者在onCreate方法中创建完合成对象之后马上就调用startSpeaking进行合成,// 正确的做法是将onCreate中的startSpeaking调用移至这里}}};

初始化成功之后,设置语音合成参数:

mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);// 设置在线合成发音人mTts.setParameter(SpeechConstant.VOICE_NAME, mVoicer);//设置合成语速mTts.setParameter(SpeechConstant.SPEED, COMPOUND_SPEED);//设置合成音调mTts.setParameter(SpeechConstant.PITCH, COMPOUND_TONES);//设置合成音量mTts.setParameter(SpeechConstant.VOLUME, COMPOUND_VOICE);
//设置播放器音频流类型mTts.setParameter(SpeechConstant.STREAM_TYPE,VOICE_STREAM_TYPE);// 设置播放合成音频打断音乐播放,默认为truemTts.setParameter(SpeechConstant.KEY_REQUEST_FOCUS, "true");

参数设置完后,开始合成:

int code=mTts.startSpeaking(message, mTtsListener);
//合成回调/*** 合成回调监听。*/private SynthesizerListener mTtsListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {
//            LogUtil.i("开始播放");}@Overridepublic void onSpeakPaused() {
//            LogUtil.i("暂停播放");}@Overridepublic void onSpeakResumed() {
//            LogUtil.i("继续播放");}@Overridepublic void onBufferProgress(int percent, int beginPos, int endPos,String info) {// 合成进度mPercentForBuffering = percent;
//            LogUtil.i("======合成进度======缓冲进度="+mPercentForBuffering+"   播放进度:"+mPercentForPlaying);}@Overridepublic void onSpeakProgress(int percent, int beginPos, int endPos) {// 播放进度mPercentForPlaying = percent;
//            LogUtil.i("======播放进度======缓冲进度="+mPercentForBuffering+"   播放进度:"+mPercentForPlaying);}@Overridepublic void onCompleted(SpeechError error) {if (error == null) {
//                LogUtil.i("播放完成");} else if (error != null) {LogUtil.i(error.getPlainDescription(true));}mSpeaking=false;}@Overridepublic void onEvent(int eventType, int arg1, int arg2, Bundle obj) {// 以下代码用于获取与云端的会话id,当业务出错时将会话id提供给技术支持人员,可用于查询会话日志,定位出错原因// 若使用本地能力,会话id为null//  if (SpeechEvent.EVENT_SESSION_ID == eventType) {//      String sid = obj.getString(SpeechEvent.KEY_EVENT_SESSION_ID);//      Log.d(TAG, "session id =" + sid);//  }}};

最后,使用完后,释放语音合成功能:

if( null != mTts ){mTts.stopSpeaking();// 退出时释放连接mTts.destroy();}

代码看着有些繁琐,所以我将语音合成所需要用到的方法封装成一个语音合成工具类SpeechHelper,带代码demo中有,下面讲讲工具类SpeechHelper的使用

四. 语音合成工具类SpeechHelper的调用

在线语音合成需要网络权限,因此你需要在你的mainfast.xml中添加网络权限:

<uses-permission android:name="android.permission.INTERNET"/>

在你应用自己的application中初始化语音合成

public class AppContext extends Application{@Overridepublic void onCreate() {super.onCreate();//语音合成SpeechHelper.getInstance().initSpeech(this);}

注意在initSpeech方法中有一行代码:

SpeechUtility.createUtility(context, "appid=" + "xxxxxxxx");

xxxxxxxx 为你自己应用的appid

在需要调用的地方使用语音合成:

SpeechHelper.getInstance().speak("大家好");

使用完后,需要注销语音合成服务:

SpeechHelper.getInstance().destroy();

五.使用过程中需要注意的问题

首先需要注意的是,在线语音合成,必须要在你的mainfast.xml中配置网络权限

当你调用以下代码:

SpeechHelper.getInstance().speak("130");

也许你希望它播报的是“一三零”,但遗憾的是它可能播报成“一百三十”,这是一件很尴尬的事,那么当你需要它播成“一三零”的话,你需要在“130”中做下处理,将每个数字间增加空格,及“130”写成“1 3 0”,这样就能播报“一三零”了。

在我们执行代码的时候,你可能会遇到以下问题:

组件未安装.(错误码:21002),couldn't find "libmsc.so"

这个是因为你没有将sdk中拷贝的所有文件夹方法你项目中的正确位置,也许你将这些文件夹放到 project的app/libs/ 下面了,如果是这样,请将文件夹全部剪切到project的app/src/main/jniLibs/ 文件夹下。

六.项目结构图

科大讯飞语音合成实例

代码地址如下:
http://www.demodashi.com/demo/13209.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/49753.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 科大讯飞离线语音识别

最近Boss让我开发一个离线语音听写功能 , 可是我发现科大讯飞的离线版本下架了 , 也看了很多地方如百度语音....... 都没发现有离线版本 , 然而今天突然发现科大讯飞的离线听写又上架了 这就让我很开心 . 我就立马把它下载了下来,集成到我的项目中去 . 然后经过一个小时的努力…

Python调用科大讯飞语音合成离线SDK

Python调用科大讯飞语音合成离线SDK 科大讯飞语音合成技术代码展示总结 科大讯飞语音合成技术 科大讯飞语音合成技术在国内是领先的&#xff0c;如果单纯想要Python语言对其进行编写&#xff0c;是不支持的。故我们可以采用对其离线C语言的SDK进行调用&#xff0c;从而达到我们…

科大讯飞SDK下载

科大讯飞SDK下载 科大讯飞作为中国最大的智能语音技术提供商&#xff0c;在智能语音技术领域有着长期的研究积累&#xff0c;并在中文语音合成、语音识别、口语评测等多项技术上拥有国际领先的成果。今天就带领大家初涉科大讯飞&#xff0c;成为科大讯飞语音开发者。 本文只介绍…

详解科大讯飞语音识别

公司的项目要用到一个语音识别所以就弄了一下&#xff0c;国内的科大讯飞的名气比较响一些所以就选用了科大讯飞&#xff0c;废话不多说直接开干 1&#xff0c;下载sdk&#xff0c;注册获取APPid&#xff0c;这都不废话&#xff0c;需要什么就下载什么 2&#xff0c;把下载的…

百度移动端和PC蜘蛛的区别

百度移动端和PC蜘蛛分别是什么&#xff0c;如何让百度做到针对性抓取 众所周知&#xff0c;百度蜘蛛大体上分为百度移动端蜘蛛和百度PC端蜘蛛&#xff0c;百度移动端和百度PC端蜘蛛又可分为百度高权重蜘蛛、百度低权重蜘蛛&#xff08;百度官方并没有承认的&#xff09;以及百…

百度蜘蛛的抓取方式有哪些

做seo的人都知道&#xff0c;百度蜘蛛对网站的抓取是间歇性的&#xff0c;需要根据网站的质量、网站的权重以及网站类型的大小&#xff0c;来决定抓取的频率。百度蜘蛛最喜欢的就是抓取网站文章了&#xff0c;所以网站需要保持每日的文章更新。那么百度蜘蛛的抓取方式有哪些呢&…

360浏览器模拟百度搜索引擎蜘蛛访问

一般用在网站被挂马以后&#xff0c;直接访问没有问题&#xff0c;可以通过模拟百度或其他搜索引擎来访问&#xff0c;即可发现问题。比如下面的例子&#xff0c;直接访问没问题&#xff0c;使用模拟搜索引擎访问即可发现问题。 比如访问一个针对搜索引擎挂马的网页&#xff1…

百度蜘蛛简介

百度蜘蛛简介 工作机制百度蜘蛛的工作要素百度蜘蛛原理的应用Baiduspider对一个网站服务器造成的访问压力如何&#xff1f;Baiduspider多长时间之后会重新抓取我的网页&#xff1f; 工作机制 百度蜘蛛的构建的原理。搜索引擎构建一个调度程序&#xff0c;来调度百度蜘蛛的工作…

百度蜘蛛IP段大全

百度蜘蛛(Baiduspider)爬取 进行网站日志分析的时候&#xff0c;常见到很多不同IP段的百度蜘蛛&#xff0c;为了方便大家更好的进行日志分析&#xff0c;下面列举了百度不同IP段常见蜘蛛的一些详情情况 121.14.89.*&#xff0c;此ip段为新站考察蜘蛛&#xff0c;通常有它光顾的…

元宇宙技术在几年后质变,迎来体验终端世界

京东集团高级副总裁、京东探索研究院院长陶大程京东集团高级副总裁、京东探索研究院院长陶大程是京东“产业元宇宙”的提出者和构建者。他谈到&#xff0c;希望通过构建元宇宙供应链降低实体经济参与数字经济的门槛&#xff0c;帮助实体经济完成数实融合的商业转型&#xff0c;…

元宇宙是怎样让虚拟与现实融合的?

在数字化不断推进的当下&#xff0c;如何将虚拟的数字世界和现实世界更好地融合&#xff0c;成为一个首要的目标。元宇宙正是这样一个利用多种信息技术&#xff0c;打造出了一个虚拟与现实高度融合的数字空间。在元宇宙中&#xff0c;用户不只是对数字内容的浏览、查看&#xf…

元宇宙的本质特征是五大融合

元宇宙的本质特征是五大融合&#xff1a;数字世界与物理世界的融合、数字经济与实体经济的融合、数字生活与社会生活的融合、数字资产与实物资产的融合、数字身份与现实身份的融合。元宇宙并非只是“虚拟空间”&#xff0c;发展元宇宙的关键是“融合”。 1.数字世界与物理世界…

chatgpt赋能python:Python界面表格:实现数据可视化的强大工具

Python界面表格&#xff1a;实现数据可视化的强大工具 在数据分析和可视化方面&#xff0c;表格一直是一个重要的工具。Python作为一种流行的编程语言&#xff0c;有着出色的表格处理和可视化能力。本文将介绍Python界面表格&#xff0c;并探索为什么它是一个强大的工具来实现…

GPT怎样教我用Python进行数据可视化

文章目录 GPT怎样教我用Python进行数据可视化matplotlibpyecharts总结 GPT怎样教我用Python进行数据可视化 &#x1f680;&#x1f680;首先&#xff0c;我们先看一下这段代码&#xff0c;这是我之前写来读取excel文件中xx大学在各个类别中的获奖情况&#xff0c;并保存在一个…

Tomcat-- 掌握汤姆猫,看这一篇文章就够了

文章目录 一、Tomcat是什么二、Tomcat下载安装三、Tomcat目录结构介绍四、启动Tomcat1.启动失败的原因 五、部署静态页面1.静态页面是什么2. 部署单个 HTML3.部署带有 CSS / JavaScript / 图片 的 HTML4.部署 HTML 到单独的目录中 六、感想 一、Tomcat是什么 百度百科是这样说…

android版会说话的汤姆猫游戏源码

这是一款高仿了android版会说话的汤姆猫游戏源码&#xff0c;大家可以看看吧&#xff0c;非常不错的。 游戏介绍&#xff1a; 是一款休闲游戏&#xff0c;汤姆猫回来了,还带来了全新的冒险旅程!汤姆是您的宠物猫,他可以在您触摸时作出反应,并且用滑稽的声音完整地复述您说的话。…

Tomcat运行不出来汤姆猫404异常

一.发现问题 今天真的是傻缺&#xff0c;运行Tomcat&#xff0c;半天汤姆猫的页面出不来&#xff0c;但是自己写的页面却可以加载出来&#xff0c;给我气的。 30minutes passed&#xff0c;无意间打开了ROOT目录&#xff0c;看到下面这个场景&#xff1a; 这拿头加载啊&…

用Html5制作 汤姆猫 小游戏

以下汤姆猫是用html5制作的小游戏&#xff1b; 建议火狐测试&#xff0c;然后把火狐调成 响应式设计模式&#xff08;以便模拟手机屏幕&#xff09;&#xff0c;设置--->开发者--->响应式设计模式&#xff1b; 如下图 以下是html文件&#xff1a; <!DOCTYPE htm…

汤姆猫炫跑鸿蒙,汤姆猫炫跑最新版下载|汤姆猫炫跑新版本下载 安卓版 v1.4.0.470- 游娱下载站...

汤姆猫炫跑最新版是汤姆猫系列的跑酷休闲手游。汤姆猫经典元素&#xff0c;带给你更多快乐&#xff01;精致流畅的画面&#xff0c;让你在跑酷过程中感受丝滑般的流畅。丰富玩法等你来体验&#xff0c;还有更多活动持续更新哦&#xff01;大家快来游娱下载站下载吧&#xff01;…

汤姆猫java下载手机版_汤姆猫编程星球app下载-汤姆猫编程星球下载v1.0.8-西西软件下载...

汤姆猫编程星球是一款少儿编程教育软件&#xff0c;帮助想学习编程少年快速学习&#xff0c;多彩多样的玩法&#xff0c;锻炼孩子的思维性&#xff0c;逻辑性&#xff0c;从小时候就加强大脑的锻炼&#xff0c;喜欢的朋友可以在西西下载使用。 软件介绍 汤姆猫编程星球介绍和汤…