AndroidStudio->Jar->unity3d實現訊飛語音接入

來源:互聯網
上載者:User

標籤:obj   產生   分享圖片   href   vat   代碼   ima   name   into   

一.引用

[MemoryC] Unity3D調用Android功能與組件(八)——訊飛語音辨識與合成

二.成功匯出Jar

1.mylibrary中的目錄結構

 

2.匯出jar

task makeJar(type: Copy) {
//刪除存在的
delete ‘build/libs/mytest.jar‘
//設定拷貝的檔案
from(‘build/intermediates/packaged-classes/release/‘)
//打進jar包後的檔案目錄
into(‘build/libs/‘)
//將classes.jar放入build/libs/目錄下
//include ,exclude參數來設定過濾
//(我們只關心classes.jar這個檔案)
include(‘classes.jar‘)
//重新命名
rename (‘classes.jar‘, ‘mytest.jar‘)
}
            makeJar.dependsOn(build)

注意:是mylibrary中的gradle.

3.將產生的Jar檔案匯入u3d中,測試TestU2A()->成功!

三.添加並改寫IflyVoicejava的代碼

1.匯入相關libs

2.複製IfyVoiceJava.class中代碼到mylibrary1.java中並改寫相關函數

3.重新makeJar並匯入U3D中

四.實現更改訊飛語音voicer

 1.棄用VoiceStatic.cs,重新封裝T2VStatic.CS

using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class T2VStatic{    public static readonly T2VStatic instance = (T2VStatic)Activator.CreateInstance(typeof(T2VStatic));    //AndroidJavaClass    AndroidJavaClass jc;    AndroidJavaObject jo;    AndroidJavaObject jo1;    public T2VStatic()    {#if UNITY_ANDROID                //Initialize AndroidJavaClass(Please do not delete the commended codes for that those code are for test and check)        jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");        jo = jc.GetStatic<AndroidJavaObject>("currentActivity");        jo1 = new AndroidJavaObject("com.unity3d.player.mylibrary1", "5b508fb6", jo);        //string str = SetVoicer(VoI);        jo1.Call("setInitListener", new XfInitListener());        jo1.Call("setTtsListener", new XfSynthesizerListener());        //jo1.Call(methodName: "setRecognizerListener", args: new xfRecognizerListener());        jo1.Call("initVoice");                //startRecognize();        //startSpeaking("你好,小鬼,,,哈哈哈哈!Good morning! Congratulations! HOooray!");#endif        }    public void startSpeaking(int VoI,string text)    {        jo1.Call("setTtsParam", SetVoicer(VoI));        jo1.Call("startSpeak", new AndroidJavaObject("java.lang.String", text));    }    public void startRecognize()    {        jo1.Call("startRecognize");    }    private string SetVoicer(int i)    {        string str = "";        switch (i)        {            case 0:                str = "xiaoyan";//青年女聲,,中英文普通話                break;            case 1:                str = "xiaoyu";//青年男聲,,中英文普通話                break;            case 2:                str = "catherine";//青年女生,,英文                break;            case 3:                str = "henry";//青年男聲,,英文                break;            case 4:                str = "xiaofeng";//青年男生,,中英文普通話                break;            case 5:                str = "xiaoxin";//童年男聲,漢語普通話                break;            case 6:                str = "nannan";//同年女聲,漢語普通話                break;            case 7:                str = "vils";//老年男聲,漢語普通話                break;            default:                str = "xiaoyan";                break;        }        return str;    }}

2.調用樣本:

string str = "歡迎來到XX樂園!";        T2VStatic.instance.startSpeaking(6, str);

 完畢,謝謝!

AndroidStudio->Jar->unity3d實現訊飛語音接入

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.