日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2024/3/13 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【虚幻引擎】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,

?結果:

總結

以上是生活随笔為你收集整理的【虚幻引擎】UE4/UE5科大讯飞文字合成语音的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。