Android在線語音合成——訊飛開放平臺

第一步準備工作

1.訊飛賬戶注冊(這就不介紹了,看看步驟做就可以了)

訊飛開放平臺官網(wǎng)

2.創(chuàng)建應(yīng)用獲取應(yīng)用的Appid

(1)創(chuàng)建應(yīng)用

應(yīng)用創(chuàng)建

(2)獲取Appid(下面代碼會用到)

appid為箭頭的位置

3.下載訊飛在線語音SDK資源

sdk下載

第二步Android的資源以及權(quán)限配置

1.依賴jar包

首先把下載的jar包放到app下的libs下面

jar包位置

之后進行jar依賴

jar包依賴

2.so庫以及assets資源導入

在app\src\main文件夾下面放入so庫以及asstes文件

文件夾下內(nèi)容
so庫以及assets資源顯示位置

3.獲取相應(yīng)權(quán)限

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

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE">

<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE">

<uses-permission android:name="android.permission.READ_PHONE_STATE">

<uses-permission android:name="android.permission.READ_CONTACTS">

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE">

<uses-permission android:name="android.permission.WRITE_SETTINGS">

<uses-permission android:name="android.permission.CAMERA">

第三步語音合成使用代碼

1.進行第三方語音合成的注冊 (第二個參數(shù)appid就是的第一注冊的appid)

public static void intSpeech(Context context,String appid){

? SpeechUtility.createUtility(context, SpeechConstant.APPID+"="+appid);

}

2.在進行文件讀取位置的語音操作(speechText語音文字,speaker語音發(fā)音人可以為null為默認)

public static void speak( Context context,String speechText,String speaker) {

//1.創(chuàng)建SpeechSynthesizer對象, 第二個參數(shù):本地合成時傳InitListener

SpeechSynthesizer mTts = SpeechSynthesizer.createSynthesizer(context,newInitListener() {

@Override

public voidonInit(inti) {

Log.e("app","errorInfo"+i);

}

});

Log.e("app","isnull>"+(mTts==null));

//2.合成參數(shù)設(shè)置,詳見《科大訊飛MSC API手冊(Android)》SpeechSynthesizer 類

if(speaker==null){

mTts.setParameter(SpeechConstant.VOICE_NAME,"xiaoyan");//設(shè)置發(fā)音人

}else{

mTts.setParameter(SpeechConstant.VOICE_NAME, speaker);//設(shè)置發(fā)音人

}

mTts.setParameter(SpeechConstant.SPEED,"50");//設(shè)置語速

mTts.setParameter(SpeechConstant.VOLUME,"80");//設(shè)置音量,范圍0~100

mTts.setParameter(SpeechConstant.ENGINE_TYPE, SpeechConstant.TYPE_CLOUD);//設(shè)置云端

//設(shè)置合成音頻保存位置(可自定義保存位置),保存在“./sdcard/iflytek.pcm”

//保存在SD卡需要在AndroidManifest.xml添加寫SD卡權(quán)限

//如果不需要保存合成音頻,注釋該行代碼

mTts.setParameter(SpeechConstant.TTS_AUDIO_PATH,"./sdcard/iflytek.pcm");

//3.開始合成

mTts.startSpeaking(""+speechText,newcom.iflytek.cloud.SynthesizerListener() {

//開始播放

@Override

public voidonSpeakBegin() {

}

//緩沖進度回調(diào)

//percent為緩沖進度0~100,beginPos為緩沖音頻在文本中開始位置,endPos表示緩沖音頻在文本中結(jié)束位置,info為附加信息。

@Override

public voidonBufferProgress(inti,inti1,inti2, String s) {

}

//暫停播放

@Override

public voidonSpeakPaused() {

}

//恢復播放回調(diào)接口

@Override

public voidonSpeakResumed() {

}

//播放進度回調(diào)

//percent為播放進度0~100,beginPos為播放音頻在文本中開始位置,endPos表示播放音頻在文本中結(jié)束位置.

@Override

public voidonSpeakProgress(inti,inti1,inti2) {

}

//會話結(jié)束回調(diào)接口,沒有錯誤時,error為null

@Override

public voidonCompleted(SpeechError speechError) {

}

//會話事件回調(diào)接口

@Override

public voidonEvent(inti,inti1,inti2, Bundle bundle) {

}

});

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容