【虚幻引擎】UE4/UE5科大讯飞文字合成语音

一、链接地址

链接:https://pan.baidu.com/s/15Qoc48x3DLpw4eW1qHXInQ 
提取码:jqpx 

B站视频链接:https://space.bilibili.com/449549424?spm_id_from=333.1007.0.0 

二、案例介绍

第一步:首先进入讯飞开放平台注册一个账号,然后创建一个创建一个应用,命名按照你自己的想法来,会产生一个APPID,具体参考UE4如何接入科大讯飞的语音识别_ue4 科大讯飞的语音识别_飞起的猪的博客-CSDN博客

第二步:下载科大讯飞的语音转文字SDK,打开AndriodStudio运行

 参考以下代码写的

private static String TAG = "TtsDemo";  // 语音合成对象private SpeechSynthesizer mTts;// 默认发音人private String voicer="xiaoyan";private String[] cloudVoicersEntries;private String[] cloudVoicersValue ;//缓冲进度private int mPercentForBuffering = 0; //播放进度private int mPercentForPlaying = 0;// 云端/本地选择按钮private RadioGroup mRadioGroup;// 引擎类型private String mEngineType = SpeechConstant.TYPE_CLOUD;// 语音+安装助手类//ApkInstaller mInstaller ;private Toast mToast;private SharedPreferences mSharedPreferences;@SuppressLint("ShowToast")public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.ttsdemo);initLayout();// 初始化合成对象mTts = SpeechSynthesizer.createSynthesizer(this, mTtsInitListener);mSharedPreferences = getSharedPreferences("com.iflytek.setting", Activity.MODE_PRIVATE);mToast = Toast.makeText(this,"",Toast.LENGTH_SHORT);}/*** 初始化Layout。*/private void initLayout() {findViewById(R.id.tts_play).setOnClickListener(this);findViewById(R.id.tts_cancel).setOnClickListener(this);findViewById(R.id.tts_pause).setOnClickListener(this);findViewById(R.id.tts_resume).setOnClickListener(this);} @Overridepublic void onClick(View view) {switch(view.getId()) {// 开始合成case R.id.tts_play:String text = ((EditText) findViewById(R.id.tts_text)).getText().toString();// 设置参数setParam();int code = mTts.startSpeaking(text, mTtsListener);if (code != ErrorCode.SUCCESS) {if(code == ErrorCode.ERROR_COMPONENT_NOT_INSTALLED){//未安装则跳转到提示安装页面//mInstaller.install();}else {showTip("语音合成失败,错误码: " + code); }}break;// 取消合成case R.id.tts_cancel:mTts.stopSpeaking();break;// 暂停播放case R.id.tts_pause:mTts.pauseSpeaking();break;// 继续播放case R.id.tts_resume:mTts.resumeSpeaking();break;}}/*** 初期化监听。*/private InitListener mTtsInitListener = new InitListener() {@Overridepublic void onInit(int code) {Log.d(TAG, "InitListener init() code = " + code);if (code != ErrorCode.SUCCESS) {showTip("初始化失败,错误码:"+code);}  }};/*** 合成回调监听。*/private SynthesizerListener mTtsListener = new SynthesizerListener() {@Overridepublic void onSpeakBegin() {showTip("开始播放");}@Overridepublic void onSpeakPaused() {showTip("暂停播放");}@Overridepublic void onSpeakResumed() {showTip("继续播放");}@Overridepublic void onBufferProgress(int percent, int beginPos, int endPos,String info) {mPercentForBuffering = percent;mToast.setText(String.format(getString(R.string.tts_toast_format),mPercentForBuffering, mPercentForPlaying));mToast.show();}@Overridepublic void onSpeakProgress(int percent, int beginPos, int endPos) {mPercentForPlaying = percent;showTip(String.format(getString(R.string.tts_toast_format),mPercentForBuffering, mPercentForPlaying));}@Overridepublic void onCompleted(SpeechError error) {if(error == null){showTip("播放完成");}else if(error != null){showTip(error.getPlainDescription(true));}}@Overridepublic void onEvent(int eventType, int arg1, int arg2, Bundle obj) {}};private void showTip(final String str){runOnUiThread(new Runnable() {@Overridepublic void run() {mToast.setText(str);mToast.show();}});}/*** 参数设置* @param param* @return*/private void setParam(){//设置合成if(mEngineType.equals(SpeechConstant.TYPE_CLOUD)){mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);//设置发音人mTts.setParameter(SpeechConstant.VOICE_NAME,voicer);}else {mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_LOCAL);//设置发音人 voicer为空默认通过语音+界面指定发音人。mTts.setParameter(SpeechConstant.VOICE_NAME,"");}//设置语速mTts.setParameter(SpeechConstant.SPEED,mSharedPreferences.getString("speed_preference", "30"));//设置音调mTts.setParameter(SpeechConstant.PITCH,mSharedPreferences.getString("pitch_preference", "50"));//设置音量mTts.setParameter(SpeechConstant.VOLUME,mSharedPreferences.getString("volume_preference", "80"));//设置播放器音频流类型mTts.setParameter(SpeechConstant.STREAM_TYPE,mSharedPreferences.getString("stream_preference", "3"));}@Overrideprotected void onDestroy() {super.onDestroy();mTts.stopSpeaking();// 退出时释放连接mTts.destroy();}

第三步:将下载的SDK里面的lib,srcy文件替换

 第四步:在UE4里面创建插件,通过APL_xml来将UE4的代码和Java 代码相关联

 第五步:写C++和蓝图,在蓝图里面调用C++函数

 第六步:创建UMG,

 结果:

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

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

相关文章

虚幻引擎C++开发学习(三)

这一章,我们要实现一个俯视视角的坦克小游戏,玩家可以操作坦克在地图中移动。敌人是固定的,但是具备一定的AI,可以瞄准玩家,并且在玩家进入攻击范围后,对玩家进行攻击。如果玩家被摧毁,则游戏结…

在虚幻引擎中创建大气的HIMIL电影作品

今天瑞云渲染小编给大家带来了关于电影制片人Tiziano Fioriti展示了《H I M I L》项目背后的工作流程,解释了人工智能是如何用于细节的,并谈到了设置火光的问题。 介绍 大家好,我叫Tiziano Fioriti,是来自意大利的自由电影制作人…

颠覆游戏开发,虚幻引擎 UE5 正式发布

整理 | 章雨铭 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 4月6日,UE5正式发布! 体验完UE5的新功能后,3D游戏狂热爱好者感叹:“惊呆了,老铁!”美工直呼:”工作量…

虚幻4引擎将至!从虚幻看游戏引擎发展

3D游戏引擎是个什么玩意 泡泡网显卡频道5月23日 在某游戏中的一个场景中,玩家控制的角色躲藏在屋子里,敌人正在屋子外面搜索玩家。突然,玩家控制的是一个穿迷彩服的士兵,突然碰倒了桌子上的一个杯子,杯子坠地发出破碎…

UE DTMqtt 虚幻引擎 Mqtt 客户端插件说明

目录 CreateMqttClient Connect Subscribe UnSubscribe Publish Disconnect BindConnectedDelegate BindConnectionLostDelegate BindMessageDelegate CreateMqttClient 创建一个Mqtt客户端对象 Connect 链接Mqtt服务器Subscribe 订阅消息频道UnSubscribe 取消订阅频道…

Unreal Engine 虚幻引擎 接入第三方SDK

前言 虚幻引擎对SDK接入有着一套专门的方式,本文主要描述了如何给使用虚幻引擎开发的项目接入第三方SDK,并分享了接入微信SDK的分享等基础功能的实践过程,还涉及到调试和提高整合SDK效率的一些方法。 SDK意义 SDK 广义是指Software Development Kit 即 应…

虚幻引擎UE4中的Tick事件

虚幻引擎UE4中的Tick事件是程序运行中每一帧刷新一次,例如在通常每秒60帧的游戏运行中,Tick事件就每秒执行了60次。这个事件相当于Unity中的Update和LateUpdate函数一样的性质,(同理在JS中就是animate()函数)。 在UE4里…

虚幻与Unity引擎 之 ✨ 为什么国内那么多开发者喜欢用虚幻或者Unity?

为什么国内那么多开发者喜欢用虚幻或者Unity? 虚幻第一版1998年问世,Unity第一版2005年面世 简单介绍 首先,使用哪一款游戏引擎去制作一款游戏,并不是根据使用者的喜好来制定的。 开发者们的喜好千奇百怪,但最终能在技术选型中影响到结果的,往往是技术积累以及引擎本身的…

【唐老狮】Unity和UE4两大游戏引擎,你该如何选择?

经常被想进入游戏行业的同学问这样一个问题:Unity和UE4学哪个更好?当我面对这样的问题,往往都会先问清楚对方对哪个更感兴趣,然后就引导他学习哪个,投其所好的回答对方的问题! 你心里肯定在想,你…

UE4虚幻引擎开发手机游戏

该文章来自用户转载 点击阅读原文 UE4虚幻引擎作为游戏开发引擎之一,在很多项目中都会使用到。下面就给大家分享下如何使用UE4开发高品质的手机游戏。 作者介绍 大纲 •介绍 •UE4 针对3A级手游的渲染管线和特征集 •使用ES3.1, Vulkan, Meta…

虚幻引擎在游戏之外可以做什么呢?

虚幻引擎 4 的跨界表演获得了“家装”引擎,VR 引擎,电影引擎等众多称号,那么在这些新领域的正确玩法是什么? 不玩不知道,一玩吓一跳。 -------又玩到新玩具的老陶 一个趁手的工具在开发者手里,你永远不会猜…

学习虚幻引擎UMG的基础

内容概括 对于UMG,之前我没有相关的经验,今天学习了下其基础知识。因此记录了一些自己感兴趣的内容。 本篇主要参考的教程是:UMG UI设计器快速入门 | 虚幻引擎文档。 但是我排除了一些关联度不高的、过于基础的、重复的内容。增添了一些自己…

虚幻引擎4中的实时GI技术

video: http://v.youku.com/v_show/id_XNDEwMDEwNTg4.html UE4中的realtime GI是基于这个researcher: http://blog.icare3d.org/ 主要的paper: http://perso.telecom-paristech.fr/~eisemann/publications/Crassin2011VoxelGlobalPG/Vox…

用 UE 虚幻引擎做个捏脸小功能~~

最近在学习 UE 相关的使用,正好看到一篇文章讲解用 Control Rig 实现简单捏脸功能,这种小而美的完整案例挺适合来练手的,涉及到了 UI、蓝图、动画、骨骼等方面,值得推荐一下。 从这个小功能出发,在学习其他内容时如果有…

Unreal Engine 虚幻引擎,性能分析,优化(一)

目录 一、Frame 帧 二、理想情况下,做性能分析时,当寻找游戏存在的瓶颈时,游戏的运行环境越接近目标硬件和目标平台,获得的数据越准确。 三、线程 四、Analysis of a frame ,“CPU”线程,“Game”线程 怎…

UE4 虚幻引擎 GitSourceControl源码解析

效果功能图 背景与目标 资产的工作量很大,并不是个人在短时间内可以独自完成的,需要大量美术人员长时间的进行团队合作完成的,并且完成一版之后,后续也还有更新维护的需求。所以UE的Editor也提供了对资产版本管理的功能&#xff…

虚幻4与Unity: 哪个游戏引擎是开发者的最爱?

转自: http://www.narkii.com/club/thread-335184-1.html 虚幻4与Unity: 哪个游戏引擎是开发者的最爱? 虚幻4 (UE4) 和Unity是目前市场上最热门的游戏引擎,也各自拥有为数众多的开发者,虽然一些大型的游戏公…

【UE4】虚幻引擎运行流程

前言 当前版本:4.26.2 本文原创 说明:有些名词保持英文可能更容易理解 目录 游戏流程总览 各个平台启动引擎的入口函数 引擎入口函数 GuardedMain() EnginePreInit 引擎预初始化 EngineInit 引擎初始化 EngineLoop 引擎主循环 EngineExit 引擎退…

【虚幻引擎】UE4/UE5插件

一、插件分类 插件分为七大类 Blank:空白插件,可以从头开始自己定义想要的插件风格和内容,用此模板创建的插件不会有注册或者菜单输入。BlueprintLibrary:创建一个含有蓝图函数库的插件,此模板函数都是静态全局函数&…

虚幻引擎5 C++游戏开发教程

虚幻引擎5 C游戏开发教程 与 Epic Games 合作创建。从基础开始学习 C,同时在 Unreal 中制作您的前 5 个视频游戏 课程英文名:Unreal Engine 5 C Developer Learn C & Make Video Games 此视频教程共5.5小时,中英双语字幕,画…